[Groonga-commit] groonga/groonga at 32c31f7 [master] mrb: define Groonga::Object#name

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Dec 4 00:20:50 JST 2013


Kouhei Sutou	2013-12-04 00:20:50 +0900 (Wed, 04 Dec 2013)

  New Revision: 32c31f7e40c1803933f95c7f7dce6823d1066872
  https://github.com/groonga/groonga/commit/32c31f7e40c1803933f95c7f7dce6823d1066872

  Message:
    mrb: define Groonga::Object#name

  Modified files:
    lib/mrb/mrb_obj.c

  Modified: lib/mrb/mrb_obj.c (+17 -0)
===================================================================
--- lib/mrb/mrb_obj.c    2013-12-03 23:38:01 +0900 (c28eb1c)
+++ lib/mrb/mrb_obj.c    2013-12-04 00:20:50 +0900 (92583f3)
@@ -21,9 +21,24 @@
 #ifdef GRN_WITH_MRUBY
 #include <mruby.h>
 #include <mruby/class.h>
+#include <mruby/data.h>
 
 #include "mrb_obj.h"
 
+static mrb_value
+object_get_name(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  grn_obj *object;
+  char name[GRN_TABLE_MAX_KEY_SIZE];
+  int name_length;
+
+  object = DATA_PTR(self);
+  name_length = grn_obj_name(ctx, object, name, GRN_TABLE_MAX_KEY_SIZE);
+
+  return mrb_str_new(mrb, name, name_length);
+}
+
 void
 grn_mrb_obj_init(grn_ctx *ctx)
 {
@@ -35,5 +50,7 @@ grn_mrb_obj_init(grn_ctx *ctx)
   klass = mrb_define_class_under(mrb, module, "Object", mrb->object_class);
   MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA);
   data->object_class = klass;
+
+  mrb_define_method(mrb, klass, "name", object_get_name, MRB_ARGS_NONE());
 }
 #endif
-------------- next part --------------
HTML����������������������������...
Download 



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