]> git.notmuchmail.org Git - notmuch/blobdiff - bindings/ruby/tags.c
Use https instead of http where possible
[notmuch] / bindings / ruby / tags.c
index d0a5054ad002940a86263332f33f68bd14f8117c..db8b4cfc86f0b3eaa818ce0d7876862158826862 100644 (file)
@@ -1,6 +1,6 @@
 /* The Ruby interface to the notmuch mail library
  *
- * Copyright © 2010 Ali Polatel
+ * Copyright © 2010, 2011 Ali Polatel
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see http://www.gnu.org/licenses/ .
+ * along with this program.  If not, see https://www.gnu.org/licenses/ .
  *
  * Author: Ali Polatel <alip@exherbo.org>
  */
 
 #include "defs.h"
 
+/*
+ * call-seq: TAGS.destroy! => nil
+ *
+ * Destroys the tags, freeing all resources allocated for it.
+ */
+VALUE
+notmuch_rb_tags_destroy (VALUE self)
+{
+    notmuch_tags_t *tags;
+
+    Data_Get_Notmuch_Tags (self, tags);
+
+    notmuch_tags_destroy (tags);
+    DATA_PTR (self) = NULL;
+
+    return Qnil;
+}
+
 /*
  * call-seq: TAGS.each {|item| block } => TAGS
  *
  * parameter.
  */
 VALUE
-notmuch_rb_tags_each(VALUE self)
+notmuch_rb_tags_each (VALUE self)
 {
     const char *tag;
-    notmuch_rb_tags_t *tags;
+    notmuch_tags_t *tags;
 
-    Data_Get_Struct(self, notmuch_rb_tags_t, tags);
-    if (!tags->nm_tags)
-        return self;
+    Data_Get_Notmuch_Tags (self, tags);
 
-    for (; notmuch_tags_valid(tags->nm_tags);
-            notmuch_tags_move_to_next(tags->nm_tags)) {
-        tag = notmuch_tags_get(tags->nm_tags);
-        rb_yield(tag ? rb_str_new2(tag) : Qnil);
+    for (; notmuch_tags_valid (tags); notmuch_tags_move_to_next (tags)) {
+       tag = notmuch_tags_get (tags);
+       rb_yield (rb_str_new2 (tag));
     }
 
     return self;