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����������������������������...다운로드