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