From ed38940323ba80d0136688405cbd923fa088d706 Mon Sep 17 00:00:00 2001
From: Ali Polatel <alip@exherbo.org>
Date: Mon, 10 Jan 2011 15:59:18 +0200
Subject: [PATCH] ruby: Add wrappers for query_get_s{ort,tring}

New wrappers:
notmuch_query_get_sort(): QUERY.sort
notmuch_query_get_query_string(): QUERY.to_s
---
 bindings/ruby/defs.h  |  6 ++++++
 bindings/ruby/init.c  |  2 ++
 bindings/ruby/query.c | 30 ++++++++++++++++++++++++++++++
 3 files changed, 38 insertions(+)

diff --git a/bindings/ruby/defs.h b/bindings/ruby/defs.h
index b1be5a30..db530968 100644
--- a/bindings/ruby/defs.h
+++ b/bindings/ruby/defs.h
@@ -189,9 +189,15 @@ notmuch_rb_filenames_each(VALUE self);
 VALUE
 notmuch_rb_query_destroy(VALUE self);
 
+VALUE
+notmuch_rb_query_get_sort(VALUE self);
+
 VALUE
 notmuch_rb_query_set_sort(VALUE self, VALUE sortv);
 
+VALUE
+notmuch_rb_query_get_string(VALUE self);
+
 VALUE
 notmuch_rb_query_search_threads(VALUE self);
 
diff --git a/bindings/ruby/init.c b/bindings/ruby/init.c
index e19b0356..63ab205e 100644
--- a/bindings/ruby/init.c
+++ b/bindings/ruby/init.c
@@ -224,7 +224,9 @@ Init_notmuch(void)
     notmuch_rb_cQuery = rb_define_class_under(mod, "Query", rb_cData);
     rb_undef_method(notmuch_rb_cQuery, "initialize");
     rb_define_method(notmuch_rb_cQuery, "destroy", notmuch_rb_query_destroy, 0);
+    rb_define_method(notmuch_rb_cQuery, "sort", notmuch_rb_query_get_sort, 0);
     rb_define_method(notmuch_rb_cQuery, "sort=", notmuch_rb_query_set_sort, 1);
+    rb_define_method(notmuch_rb_cQuery, "to_s", notmuch_rb_query_get_string, 0);
     rb_define_method(notmuch_rb_cQuery, "search_threads", notmuch_rb_query_search_threads, 0);
     rb_define_method(notmuch_rb_cQuery, "search_messages", notmuch_rb_query_search_messages, 0);
 
diff --git a/bindings/ruby/query.c b/bindings/ruby/query.c
index c5b8a4cc..ef9e1a07 100644
--- a/bindings/ruby/query.c
+++ b/bindings/ruby/query.c
@@ -38,6 +38,21 @@ notmuch_rb_query_destroy(VALUE self)
     return Qnil;
 }
 
+/*
+ * call-seq: QUERY.sort => fixnum
+ *
+ * Get sort type of the +QUERY+
+ */
+VALUE
+notmuch_rb_query_get_sort(VALUE self)
+{
+    notmuch_query_t *query;
+
+    Data_Get_Notmuch_Query(self, query);
+
+    return FIX2INT(notmuch_query_get_sort(query));
+}
+
 /*
  * call-seq: QUERY.sort=(fixnum) => nil
  *
@@ -58,6 +73,21 @@ notmuch_rb_query_set_sort(VALUE self, VALUE sortv)
     return Qnil;
 }
 
+/*
+ * call-seq: QUERY.to_s => string
+ *
+ * Get query string of the +QUERY+
+ */
+VALUE
+notmuch_rb_query_get_string(VALUE self)
+{
+    notmuch_query_t *query;
+
+    Data_Get_Notmuch_Query(self, query);
+
+    return rb_str_new2(notmuch_query_get_query_string(query));
+}
+
 /*
  * call-seq: QUERY.search_threads => THREADS
  *
-- 
2.45.2