return rejdb->ejdb;
}
-
-Init_rubejdb() {
- 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_method(ejdbClass, "open", EJDB_open, 2);
- rb_define_method(ejdbClass, "is_open", EJDB_is_open, 2);
+void EJDB_free(RUBEJDB* rejdb) {
+ if (!rejdb->ejdb) {
+ ejdbdel(rejdb->ejdb);
+ }
+ ruby_xfree(rejdb);
}
VALUE EJDB_alloc(VALUE klass) {
return Data_Wrap_Struct(klass, NULL, EJDB_free, ruby_xmalloc(sizeof(RUBEJDB)));
}
-VALUE EJDB_alloc(VALUE klass) {
+VALUE EJDB_init(VALUE self) {
RUBEJDB* rejdb;
Data_Get_Struct(self, RUBEJDB, rejdb);
rejdb->ejdb = ejdbnew();
if (!rejdb->ejdb) {
- rb_raise("Failed to init ejdb!");
+ rb_raise(rb_eRuntimeError, "Failed to init ejdb!");
}
}
-void EJDB_free(RUBEJDB* rejdb) {
- if (!rejdb->ejdb) {
- ejdbdel(rejdb->ejdb);
- }
- ruby_xfree(rejdb);
-}
-
VALUE EJDB_open(VALUE self, VALUE path, VALUE mode) {
Check_Type(path, T_STRING);
- Check_Type(mode, T_STRING);
+ Check_Type(mode, T_FIXNUM);
EJDB* ejdb = getEJDB(self);
- if (!ejdbopen(ejdb, StringValuePtr(path), StringValuePtr(mode))) {
+ if (!ejdbopen(ejdb, StringValuePtr(path), FIX2INT(mode))) {
return set_ejdb_error(ejdb);
}
return Qnil;
VALUE EJDB_is_open(VALUE self) {
EJDB* ejdb = getEJDB(self);
return ejdb && ejdbisopen(ejdb) ? Qtrue : Qfalse;
+}
+
+
+Init_rubejdb() {
+ 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_method(ejdbClass, "open", RUBY_METHOD_FUNC(EJDB_open), 2);
+ rb_define_method(ejdbClass, "is_open", RUBY_METHOD_FUNC(EJDB_is_open), 0);
}
\ No newline at end of file