Naoya Murakami
null+****@clear*****
Tue Oct 25 19:12:22 JST 2016
Naoya Murakami 2016-10-25 19:12:22 +0900 (Tue, 25 Oct 2016) New Revision: 5e7ea7d9a64c08f81f1f23684df2633362f8069f https://github.com/groonga/groonga/commit/5e7ea7d9a64c08f81f1f23684df2633362f8069f Merged 4bc8da9: Merge pull request #607 from naoa/mruby-value-to-bulk-time Message: mrb: support to convert time of mrb_value to grn_bulk Modified files: lib/mrb/mrb_bulk.c Modified: lib/mrb/mrb_bulk.c (+19 -3) =================================================================== --- lib/mrb/mrb_bulk.c 2016-10-24 15:51:25 +0900 (f833c5d) +++ lib/mrb/mrb_bulk.c 2016-10-25 19:12:22 +0900 (6fa4258) @@ -78,9 +78,25 @@ grn_mrb_value_to_bulk(mrb_state *mrb, mrb_value mrb_value_, grn_obj *bulk) GRN_TEXT_SET(ctx, bulk, RSTRING_PTR(mrb_value_), RSTRING_LEN(mrb_value_)); break; default : - mrb_raisef(mrb, E_ARGUMENT_ERROR, - "unsupported object to convert to bulk: %S", - mrb_value_); + { + struct RClass *klass; + + klass = mrb_class(mrb, mrb_value_); + if (klass == ctx->impl->mrb.builtin.time_class) { + mrb_value mrb_sec; + mrb_value mrb_usec; + + mrb_sec = mrb_funcall(mrb, mrb_value_, "to_i", 0); + mrb_usec = mrb_funcall(mrb, mrb_value_, "usec", 0); + grn_obj_reinit(ctx, bulk, GRN_DB_TIME, 0); + GRN_TIME_SET(ctx, bulk, + GRN_TIME_PACK(mrb_fixnum(mrb_sec), mrb_fixnum(mrb_usec))); + } else { + mrb_raisef(mrb, E_ARGUMENT_ERROR, + "unsupported object to convert to bulk: %S", + mrb_value_); + } + } break; } -------------- next part -------------- HTML����������������������������...Download