[Groonga-commit] groonga/groonga at 0f9061f [master] mrb: bind Expression#codes

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Jun 10 22:39:02 JST 2014


Kouhei Sutou	2014-06-10 22:39:02 +0900 (Tue, 10 Jun 2014)

  New Revision: 0f9061f057d32b001e3dd892c447e5f3374eb77a
  https://github.com/groonga/groonga/commit/0f9061f057d32b001e3dd892c447e5f3374eb77a

  Message:
    mrb: bind Expression#codes

  Modified files:
    lib/mrb/mrb_expr.c

  Modified: lib/mrb/mrb_expr.c (+20 -0)
===================================================================
--- lib/mrb/mrb_expr.c    2014-06-10 22:24:16 +0900 (c10edbc)
+++ lib/mrb/mrb_expr.c    2014-06-10 22:39:02 +0900 (1e9bde1)
@@ -23,6 +23,7 @@
 #include <mruby/class.h>
 #include <mruby/variable.h>
 #include <mruby/data.h>
+#include <mruby/array.h>
 
 #include "../expr.h"
 #include "../util.h"
@@ -523,6 +524,23 @@ mrb_grn_expression_initialize(mrb_state *mrb, mrb_value self)
   return self;
 }
 
+static mrb_value
+mrb_grn_expression_codes(mrb_state *mrb, mrb_value self)
+{
+  grn_expr *expr;
+  mrb_value mrb_codes;
+  int i;
+
+  expr = DATA_PTR(self);
+  mrb_codes = mrb_ary_new_capa(mrb, expr->codes_curr);
+  for (i = 0; i < expr->codes_curr; i++) {
+    grn_expr_code *code = expr->codes + i;
+    mrb_ary_push(mrb, mrb_codes, mrb_grn_expr_code_new(mrb, code));
+  }
+
+  return mrb_codes;
+}
+
 void
 grn_mrb_expr_init(grn_ctx *ctx)
 {
@@ -567,6 +585,8 @@ grn_mrb_expr_init(grn_ctx *ctx)
   MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA);
   mrb_define_method(mrb, klass, "initialize",
                     mrb_grn_expression_initialize, MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "codes",
+                    mrb_grn_expression_codes, MRB_ARGS_NONE());
 
   grn_mrb_load(ctx, "expression.rb");
   grn_mrb_load(ctx, "scan_info.rb");
-------------- next part --------------
HTML����������������������������...
Download 



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