Kouhei Sutou
null+****@clear*****
Mon Jun 16 22:48:32 JST 2014
Kouhei Sutou 2014-06-16 22:48:32 +0900 (Mon, 16 Jun 2014) New Revision: 230ed7c4112922bf427eecff4fa06cec69364d28 https://github.com/groonga/groonga/commit/230ed7c4112922bf427eecff4fa06cec69364d28 Message: mrb: support mruby Symbol -> Groonga bulk conversion Added files: test/command/suite/ruby/eval/symbol.expected test/command/suite/ruby/eval/symbol.test Modified files: lib/mrb.c Modified: lib/mrb.c (+14 -0) =================================================================== --- lib/mrb.c 2014-06-16 17:20:41 +0900 (5fe7d89) +++ lib/mrb.c 2014-06-16 22:48:32 +0900 (519d33c) @@ -175,6 +175,8 @@ grn_rc grn_mrb_to_grn(grn_ctx *ctx, mrb_value mrb_object, grn_obj *grn_object) { grn_rc rc = GRN_SUCCESS; + grn_mrb_data *data = &(ctx->impl->mrb); + mrb_state *mrb = data->state; switch (mrb_type(mrb_object)) { case MRB_TT_FALSE : @@ -199,6 +201,18 @@ grn_mrb_to_grn(grn_ctx *ctx, mrb_value mrb_object, grn_obj *grn_object) RSTRING_PTR(mrb_object), RSTRING_LEN(mrb_object)); break; + case MRB_TT_SYMBOL : + { + const char *name; + int name_length; + + grn_obj_reinit(ctx, grn_object, GRN_DB_TEXT, 0); + GRN_BULK_REWIND(grn_object); + GRN_TEXT_PUTC(ctx, grn_object, ':'); + name = mrb_sym2name_len(mrb, mrb_symbol(mrb_object), &name_length); + GRN_TEXT_PUT(ctx, grn_object, name, name_length); + } + break; default : rc = GRN_INVALID_ARGUMENT; break; Added: test/command/suite/ruby/eval/symbol.expected (+4 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/ruby/eval/symbol.expected 2014-06-16 22:48:32 +0900 (c7c53e4) @@ -0,0 +1,4 @@ +register ruby/eval +[[0,0.0,0.0],true] +ruby_eval ":symbol" +[[0,0.0,0.0],{"value":":symbol"}] Added: test/command/suite/ruby/eval/symbol.test (+5 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/ruby/eval/symbol.test 2014-06-16 22:48:32 +0900 (927eda0) @@ -0,0 +1,5 @@ +#@on-error omit +register ruby/eval +#@on-error default + +ruby_eval ":symbol" -------------- next part -------------- HTML����������������������������...Download