From 7137b14fe5fca55604d7bd64ff478e49ba880c16 Mon Sep 17 00:00:00 2001 From: Fedor Yudanov Date: Fri, 22 Mar 2013 15:03:21 +0700 Subject: [PATCH] #50 - module rename + first working test --- .idea/modules.xml | 2 +- rbejdb/Makefile | 16 ++++++++++++++++ {rubejdb => rbejdb}/README.md | 0 {rubejdb => rbejdb}/extconf.rb | 7 ++++++- rubejdb/rubejdb.iml => rbejdb/rbejdb.iml | 0 rubejdb/src/rubejdb.c => rbejdb/src/rbejdb.c | 23 ++++++++++++++--------- rbejdb/test/Makefile | 7 +++++++ rbejdb/test/t1.rb | 8 ++++++++ rubejdb/Makefile | 16 ---------------- 9 files changed, 52 insertions(+), 27 deletions(-) create mode 100644 rbejdb/Makefile rename {rubejdb => rbejdb}/README.md (100%) rename {rubejdb => rbejdb}/extconf.rb (50%) rename rubejdb/rubejdb.iml => rbejdb/rbejdb.iml (100%) rename rubejdb/src/rubejdb.c => rbejdb/src/rbejdb.c (83%) create mode 100644 rbejdb/test/Makefile create mode 100644 rbejdb/test/t1.rb delete mode 100644 rubejdb/Makefile diff --git a/.idea/modules.xml b/.idea/modules.xml index af332ad..9962a9f 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -4,7 +4,7 @@ - + diff --git a/rbejdb/Makefile b/rbejdb/Makefile new file mode 100644 index 0000000..ec6de8e --- /dev/null +++ b/rbejdb/Makefile @@ -0,0 +1,16 @@ + +all: build check + +build: + ruby extconf.rb + make -C ./build + make install -C ./build + +check: + make -C ./test + +doc: + +clean: + +.PHONY: all build check clean doc diff --git a/rubejdb/README.md b/rbejdb/README.md similarity index 100% rename from rubejdb/README.md rename to rbejdb/README.md diff --git a/rubejdb/extconf.rb b/rbejdb/extconf.rb similarity index 50% rename from rubejdb/extconf.rb rename to rbejdb/extconf.rb index fc725c9..0ae8b9b 100644 --- a/rubejdb/extconf.rb +++ b/rbejdb/extconf.rb @@ -1,5 +1,9 @@ require "mkmf" +unless have_library('tcejdb') + raise "EJDB C library is not installed!" +end + BUILD_DIR = 'build' unless File.exists?(BUILD_DIR) @@ -7,4 +11,5 @@ unless File.exists?(BUILD_DIR) end Dir.chdir BUILD_DIR -create_makefile("rubejdb", '../src') \ No newline at end of file + +create_makefile("rbejdb", '../src') \ No newline at end of file diff --git a/rubejdb/rubejdb.iml b/rbejdb/rbejdb.iml similarity index 100% rename from rubejdb/rubejdb.iml rename to rbejdb/rbejdb.iml diff --git a/rubejdb/src/rubejdb.c b/rbejdb/src/rbejdb.c similarity index 83% rename from rubejdb/src/rubejdb.c rename to rbejdb/src/rbejdb.c index c0e2360..b77fffe 100644 --- a/rubejdb/src/rubejdb.c +++ b/rbejdb/src/rbejdb.c @@ -17,17 +17,19 @@ #include #include +#define DEFAULT_OPEN_MODE (JBOWRITER | JBOCREAT | JBOTSYNC) + typedef struct { EJDB* ejdb; -} RUBEJDB; +} RBEJDB; EJDB* getEJDB(VALUE self) { - RUBEJDB* rejdb; - Data_Get_Struct(self, RUBEJDB, rejdb); + RBEJDB* rejdb; + Data_Get_Struct(self, RBEJDB, rejdb); return rejdb->ejdb; } -void EJDB_free(RUBEJDB* rejdb) { +void EJDB_free(RBEJDB* rejdb) { if (!rejdb->ejdb) { ejdbdel(rejdb->ejdb); } @@ -35,12 +37,12 @@ void EJDB_free(RUBEJDB* rejdb) { } VALUE EJDB_alloc(VALUE klass) { - return Data_Wrap_Struct(klass, NULL, EJDB_free, ruby_xmalloc(sizeof(RUBEJDB))); + return Data_Wrap_Struct(klass, NULL, EJDB_free, ruby_xmalloc(sizeof(RBEJDB))); } VALUE EJDB_init(VALUE self) { - RUBEJDB* rejdb; - Data_Get_Struct(self, RUBEJDB, rejdb); + RBEJDB* rejdb; + Data_Get_Struct(self, RBEJDB, rejdb); rejdb->ejdb = ejdbnew(); if (!rejdb->ejdb) { @@ -64,10 +66,13 @@ VALUE EJDB_is_open(VALUE self) { } -Init_rubejdb() { +Init_rbejdb() { VALUE ejdbClass = rb_define_class("EJDB", rb_cObject); rb_define_alloc_func(ejdbClass, EJDB_alloc); rb_define_private_method(ejdbClass, "initialize", RUBY_METHOD_FUNC(EJDB_init), 0); + + rb_define_const(ejdbClass, "DEFAULT_OPEN_MODE", INT2FIX(DEFAULT_OPEN_MODE)); + rb_define_method(ejdbClass, "open", RUBY_METHOD_FUNC(EJDB_open), 2); - rb_define_method(ejdbClass, "is_open", RUBY_METHOD_FUNC(EJDB_is_open), 0); + rb_define_method(ejdbClass, "is_open?", RUBY_METHOD_FUNC(EJDB_is_open), 0); } \ No newline at end of file diff --git a/rbejdb/test/Makefile b/rbejdb/test/Makefile new file mode 100644 index 0000000..32cbb5f --- /dev/null +++ b/rbejdb/test/Makefile @@ -0,0 +1,7 @@ + +all: check + +check: + ruby t1.rb + +.PHONY: all check diff --git a/rbejdb/test/t1.rb b/rbejdb/test/t1.rb new file mode 100644 index 0000000..b2260af --- /dev/null +++ b/rbejdb/test/t1.rb @@ -0,0 +1,8 @@ +require "rbejdb" + +ejdb = EJDB.new() +ejdb.open("zoo", EJDB::DEFAULT_OPEN_MODE) + +raise "Failed to open ejdb" unless ejdb.is_open? + +puts "CONGRATULATIONS!!! EJDB tests has passed completely!" \ No newline at end of file diff --git a/rubejdb/Makefile b/rubejdb/Makefile deleted file mode 100644 index 304184e..0000000 --- a/rubejdb/Makefile +++ /dev/null @@ -1,16 +0,0 @@ - -all: doc build - -build: - ruby extconf.rb - make -C ./build - -build-dbg: - -check: build-dbg - -doc: - -clean: - -.PHONY: all build build-dbg check clean doc -- 2.7.4