[Groonga-commit] groonga/groonga at 4210316 [master] mrb: improve inspect

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Jun 9 22:48:07 JST 2014


Kouhei Sutou	2014-06-09 22:48:07 +0900 (Mon, 09 Jun 2014)

  New Revision: 4210316c2cb7cbfb462b2aad02b28f9fad52987b
  https://github.com/groonga/groonga/commit/4210316c2cb7cbfb462b2aad02b28f9fad52987b

  Message:
    mrb: improve inspect

  Added files:
    lib/mrb/scripts/object.rb
  Modified files:
    lib/mrb/mrb_obj.c

  Modified: lib/mrb/mrb_obj.c (+19 -0)
===================================================================
--- lib/mrb/mrb_obj.c    2014-06-09 22:47:27 +0900 (e4bd3fd)
+++ lib/mrb/mrb_obj.c    2014-06-09 22:48:07 +0900 (de3bf67)
@@ -17,9 +17,11 @@
 */
 
 #include "../ctx_impl.h"
+#include "../util.h"
 
 #ifdef GRN_WITH_MRUBY
 #include <mruby.h>
+#include <mruby/string.h>
 #include <mruby/class.h>
 #include <mruby/data.h>
 
@@ -74,6 +76,21 @@ object_find_index(mrb_state *mrb, mrb_value self)
   }
 }
 
+static mrb_value
+object_grn_inspect(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  grn_obj buffer;
+  mrb_value inspected;
+
+  GRN_TEXT_INIT(&buffer, 0);
+  grn_inspect(ctx, &buffer, DATA_PTR(self));
+  inspected = mrb_str_new(mrb, GRN_TEXT_VALUE(&buffer), GRN_TEXT_LEN(&buffer));
+  GRN_OBJ_FIN(ctx, &buffer);
+
+  return inspected;
+}
+
 void
 grn_mrb_obj_init(grn_ctx *ctx)
 {
@@ -89,6 +106,8 @@ grn_mrb_obj_init(grn_ctx *ctx)
   mrb_define_method(mrb, klass, "name", object_get_name, MRB_ARGS_NONE());
   mrb_define_method(mrb, klass, "find_index",
                     object_find_index, MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "grn_inspect",
+                    object_grn_inspect, MRB_ARGS_NONE());
 
   grn_mrb_load(ctx, "index_info.rb");
 }

  Added: lib/mrb/scripts/object.rb (+7 -0) 100644
===================================================================
--- /dev/null
+++ lib/mrb/scripts/object.rb    2014-06-09 22:48:07 +0900 (f1cc1a6)
@@ -0,0 +1,7 @@
+module Groonga
+  class Object
+    def inspect
+      super[0..-2] + ": #{grn_inspect}>"
+    end
+  end
+end
-------------- next part --------------
HTML����������������������������...
下载 



More information about the Groonga-commit mailing list
Back to archive index