[Groonga-commit] groonga/groonga at a794517 [master] mrb: add Table#id?

Back to archive index

Kouhei Sutou null+****@clear*****
Thu Feb 16 17:01:11 JST 2017


Kouhei Sutou	2017-02-16 17:01:11 +0900 (Thu, 16 Feb 2017)

  New Revision: a794517dd1765ba3784114e863525022e694324b
  https://github.com/groonga/groonga/commit/a794517dd1765ba3784114e863525022e694324b

  Message:
    mrb: add Table#id?

  Modified files:
    lib/mrb/mrb_table.c

  Modified: lib/mrb/mrb_table.c (+24 -1)
===================================================================
--- lib/mrb/mrb_table.c    2017-02-16 16:10:41 +0900 (05eb6ec)
+++ lib/mrb/mrb_table.c    2017-02-16 17:01:11 +0900 (5b17b3d)
@@ -1,6 +1,6 @@
 /* -*- c-basic-offset: 2 -*- */
 /*
-  Copyright(C) 2014-2015 Brazil
+  Copyright(C) 2014-2017 Brazil
 
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
@@ -67,6 +67,27 @@ mrb_grn_table_array_reference(mrb_state *mrb, mrb_value self)
 }
 
 static mrb_value
+mrb_grn_table_is_id(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  grn_obj *table;
+  mrb_int mrb_record_id;
+  grn_id record_id;
+  grn_id real_record_id;
+
+  mrb_get_args(mrb, "i", &mrb_record_id);
+
+  table = DATA_PTR(self);
+  record_id = (grn_id)mrb_record_id;
+  real_record_id = grn_table_at(ctx, table, record_id);
+  if (real_record_id == record_id) {
+    return mrb_true_value();
+  } else {
+    return mrb_false_value();
+  }
+}
+
+static mrb_value
 mrb_grn_table_find_column(mrb_state *mrb, mrb_value self)
 {
   grn_ctx *ctx = (grn_ctx *)mrb->ud;
@@ -342,6 +363,8 @@ grn_mrb_table_init(grn_ctx *ctx)
 
   mrb_define_method(mrb, klass, "[]",
                     mrb_grn_table_array_reference, MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "id?",
+                    mrb_grn_table_is_id, MRB_ARGS_REQ(1));
 
   mrb_define_method(mrb, klass, "find_column",
                     mrb_grn_table_find_column, MRB_ARGS_REQ(1));
-------------- next part --------------
HTML����������������������������...
Download 



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