/* 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;