return Data_Wrap_Notmuch_Object (klass, ¬much_rb_database_type, NULL);
}
+/*
+ * call-seq: DB.destroy => nil
+ *
+ * Destroys the database, freeing all resources allocated for it.
+ */
+VALUE
+notmuch_rb_database_destroy (VALUE self)
+{
+ notmuch_rb_object_destroy (self, ¬much_rb_database_type);
+
+ return Qnil;
+}
+
/*
* call-seq: Notmuch::Database.new(path [, {:create => false, :mode => Notmuch::MODE_READ_ONLY}]) => DB
*
notmuch_status_t ret;
/* Check arguments */
- rb_scan_args (argc, argv, "11", &pathv, &hashv);
+ rb_scan_args (argc, argv, "02", &pathv, &hashv);
- SafeStringValue (pathv);
- path = RSTRING_PTR (pathv);
+ if (!NIL_P (pathv)) {
+ SafeStringValue (pathv);
+ path = RSTRING_PTR (pathv);
+ } else {
+ path = NULL;
+ }
if (!NIL_P (hashv)) {
Check_Type (hashv, T_HASH);
if (create)
ret = notmuch_database_create (path, &database);
else
- ret = notmuch_database_open (path, mode, &database);
+ ret = notmuch_database_open_with_config (path, mode, NULL, NULL, &database, NULL);
notmuch_rb_status_raise (ret);
DATA_PTR (self) = notmuch_rb_object_create (database, "notmuch_rb_database");
VALUE
notmuch_rb_database_close (VALUE self)
{
+ notmuch_database_t *db;
notmuch_status_t ret;
- ret = notmuch_rb_object_destroy (self, ¬much_rb_database_type);
+
+ Data_Get_Notmuch_Database (self, db);
+
+ ret = notmuch_database_close (db);
notmuch_rb_status_raise (ret);
return Qnil;
rb_raise (notmuch_rb_eBaseError, "%s", msg);
}
- return Data_Wrap_Notmuch_Object (notmuch_rb_cTags, ¬much_rb_tags_type, tags);
+ return notmuch_rb_tags_get (tags);
}
/*