Class: Groonga::TableCursor
- Inherits:
-
Object
- Object
- Groonga::TableCursor
- Includes:
- Enumerable
- Defined in:
- ext/rb-grn-table-cursor.c,
ext/rb-grn-table-cursor.c
Overview
テーブルに登録されているレコードを順番に取り出すためのオブジェクト。Groonga::Table#open_cursorで生成できる。
Direct Known Subclasses
Defined Under Namespace
Modules: KeySupport
Instance Method Summary collapse
-
#close ⇒ Object
call-seq: object.close.
-
#closed? ⇒ Boolean
call-seq: object.closed? -> true/false.
-
#delete ⇒ Object
カレントレコードを削除する。.
-
#each {|record| ... } ⇒ Object
カーソルの範囲内にあるレコードを順番にブロックに渡す。.
-
#next ⇒ Groonga::Record
カレントレコードを一件進めてそのレコードを返す。.
-
#value ⇒ Object
カレントレコードの値を返す。.
-
#value= ⇒ Object
カレントレコードの値を設定する。既存の値は上書きされる。.
Instance Method Details
#close ⇒ Object
call-seq:
object.close
objectが使用しているリソースを開放する。これ以降objectを使うことはできない。
462 463 464 465 466 467 468 469 470 471 472 473 |
# File 'ext/rb-grn-object.c', line 462 VALUE rb_grn_object_close (VALUE self) { grn_obj *object; grn_ctx *context; rb_grn_object_deconstruct(SELF(self), &object, &context, NULL, NULL, NULL, NULL); if (object && context) grn_obj_close(context, object); return Qnil; } |
#closed? ⇒ Boolean
call-seq:
object.closed? -> true/false
objectが開放済みの場合はtrueを返し、そうでない場合はfalseを返す。
484 485 486 487 488 489 490 491 492 493 494 495 |
# File 'ext/rb-grn-object.c', line 484 VALUE rb_grn_object_closed_p (VALUE self) { RbGrnObject *rb_grn_object; rb_grn_object = SELF(self); if (rb_grn_object->context && rb_grn_object->object) { return Qfalse; } else { return Qtrue; } } |
#delete ⇒ Object
カレントレコードを削除する。
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'ext/rb-grn-table-cursor.c', line 126 static VALUE rb_grn_table_cursor_delete (VALUE self) { grn_ctx *context; grn_table_cursor *cursor; rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context, NULL, NULL, NULL, NULL); if (context && cursor) { grn_rc rc; rc = grn_table_cursor_delete(context, cursor); rb_grn_rc_check(rc, self); } return Qnil; } |
#each {|record| ... } ⇒ Object
カーソルの範囲内にあるレコードを順番にブロックに渡す。
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'ext/rb-grn-table-cursor.c', line 177 static VALUE rb_grn_table_cursor_each (VALUE self) { grn_id record_id; grn_ctx *context; grn_table_cursor *cursor; rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context, NULL, NULL, NULL, NULL); if (context && cursor) { while ((record_id = grn_table_cursor_next(context, cursor))) { rb_yield(rb_grn_record_new(rb_iv_get(self, "@table"), record_id, Qnil)); } } return Qnil; } |
#next ⇒ Groonga::Record
カレントレコードを一件進めてそのレコードを返す。
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'ext/rb-grn-table-cursor.c', line 150 static VALUE rb_grn_table_cursor_next (VALUE self) { VALUE rb_record = Qnil; grn_ctx *context; grn_table_cursor *cursor; rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context, NULL, NULL, NULL, NULL); if (context && cursor) { grn_id record_id; record_id = grn_table_cursor_next(context, cursor); if (record_id != GRN_ID_NIL) /* FIXME: use grn_table_cursor_table */ rb_record = rb_grn_record_new(rb_iv_get(self, "@table"), record_id, Qnil); } return rb_record; } |
#value ⇒ Object
カレントレコードの値を返す。
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'ext/rb-grn-table-cursor.c', line 73 static VALUE rb_grn_table_cursor_get_value (VALUE self) { grn_ctx *context; grn_table_cursor *cursor; VALUE rb_value = Qnil; rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context, NULL, NULL, NULL, NULL); if (context && cursor) { int n; void *value; n = grn_table_cursor_get_value(context, cursor, &value); rb_value = rb_str_new(value, n); } return rb_value; } |
#value= ⇒ Object
カレントレコードの値を設定する。既存の値は上書きされる。
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'ext/rb-grn-table-cursor.c', line 99 static VALUE rb_grn_table_cursor_set_value (VALUE self, VALUE value) { grn_ctx *context; grn_table_cursor *cursor; rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context, NULL, NULL, NULL, NULL); if (context && cursor) { grn_rc rc; rc = grn_table_cursor_set_value(context, cursor, StringValuePtr(value), GRN_OBJ_SET); rb_grn_rc_check(rc, self); } return Qnil; } |