[Groonga-commit] groonga/groonga at 230ed7c [master] mrb: support mruby Symbol -> Groonga bulk conversion

Back to archive index

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 



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