]> git.notmuchmail.org Git - notmuch/blobdiff - bindings/ruby/database.c
ruby: add bindings for `notmuch_database_get_all_tags`
[notmuch] / bindings / ruby / database.c
index c03d7011f8406931045183a02eeb0d1395eb0107..6deda5751df0d1c69fb264f17a4f04243f7dab7d 100644 (file)
@@ -374,6 +374,30 @@ notmuch_rb_database_find_message_by_filename (VALUE self, VALUE pathv)
     return Qnil;
 }
 
+/*
+ * call-seq: DB.get_all_tags() => TAGS
+ *
+ * Returns a list of all tags found in the database.
+ */
+VALUE
+notmuch_rb_database_get_all_tags (VALUE self)
+{
+    notmuch_database_t *db;
+    notmuch_tags_t *tags;
+
+    Data_Get_Notmuch_Database (self, db);
+
+    tags = notmuch_database_get_all_tags (db);
+    if (!tags) {
+       const char *msg = notmuch_database_status_string (db);
+       if (!msg)
+           msg = "Unknown notmuch error";
+
+       rb_raise (notmuch_rb_eBaseError, "%s", msg);
+    }
+    return Data_Wrap_Struct (notmuch_rb_cTags, NULL, NULL, tags);
+}
+
 /*
  * call-seq: DB.query(query) => QUERY
  *