rroonga 2.0.5 → 2.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/Rakefile +5 -1
  2. data/ext/groonga/extconf.rb +36 -4
  3. data/ext/groonga/rb-grn-accessor.c +8 -10
  4. data/ext/groonga/rb-grn-array-cursor.c +2 -2
  5. data/ext/groonga/rb-grn-array.c +35 -59
  6. data/ext/groonga/rb-grn-column.c +105 -192
  7. data/ext/groonga/rb-grn-context.c +60 -63
  8. data/ext/groonga/rb-grn-database.c +27 -37
  9. data/ext/groonga/rb-grn-double-array-trie-cursor.c +3 -3
  10. data/ext/groonga/rb-grn-double-array-trie.c +75 -126
  11. data/ext/groonga/rb-grn-encoding.c +27 -27
  12. data/ext/groonga/rb-grn-expression.c +29 -24
  13. data/ext/groonga/rb-grn-fix-size-column.c +7 -9
  14. data/ext/groonga/rb-grn-hash-cursor.c +3 -3
  15. data/ext/groonga/rb-grn-hash.c +57 -108
  16. data/ext/groonga/rb-grn-index-column.c +17 -29
  17. data/ext/groonga/rb-grn-logger.c +11 -14
  18. data/ext/groonga/rb-grn-object.c +51 -94
  19. data/ext/groonga/rb-grn-patricia-trie-cursor.c +2 -2
  20. data/ext/groonga/rb-grn-patricia-trie.c +161 -276
  21. data/ext/groonga/rb-grn-plugin.c +6 -10
  22. data/ext/groonga/rb-grn-table-cursor.c +14 -21
  23. data/ext/groonga/rb-grn-table-key-support.c +32 -35
  24. data/ext/groonga/rb-grn-table.c +149 -252
  25. data/ext/groonga/rb-grn-variable.c +6 -7
  26. data/ext/groonga/rb-grn-view-accessor.c +1 -1
  27. data/ext/groonga/rb-grn-view-cursor.c +2 -2
  28. data/ext/groonga/rb-grn-view.c +28 -45
  29. data/ext/groonga/rb-grn.h +1 -1
  30. data/ext/groonga/rb-groonga.c +6 -6
  31. data/lib/groonga/database.rb +1 -1
  32. data/lib/groonga/dumper.rb +109 -33
  33. data/lib/groonga/expression-builder.rb +24 -0
  34. data/lib/groonga/pagination.rb +30 -24
  35. data/lib/groonga/record.rb +21 -18
  36. data/lib/groonga/schema.rb +156 -140
  37. data/test/test-command-select.rb +66 -1
  38. data/test/test-database-dumper.rb +50 -10
  39. data/test/test-expression-builder.rb +41 -0
  40. metadata +4 -4
@@ -121,13 +121,11 @@ rb_grn_plugin_s_register (int argc, VALUE *argv, VALUE klass)
121
121
  return Qnil;
122
122
  }
123
123
 
124
- /**
125
- * call-seq:
126
- * Groonga::Plugin.system_plugins_dir
127
- *
124
+ /*
128
125
  * Returns the system plugins directory.
129
126
  *
130
- * @return The system plugins directory.
127
+ * @overload system_plugins_dir
128
+ * @return [String]
131
129
  */
132
130
  static VALUE
133
131
  rb_grn_plugin_s_system_plugins_dir (VALUE klass)
@@ -135,13 +133,11 @@ rb_grn_plugin_s_system_plugins_dir (VALUE klass)
135
133
  return rb_str_new2(grn_plugin_get_system_plugins_dir());
136
134
  }
137
135
 
138
- /**
139
- * call-seq:
140
- * Groonga::Plugin.suffix
141
- *
136
+ /*
142
137
  * Returns the plugin file suffix. (e.g. ".so", ".dll" and so on.)
143
138
  *
144
- * @return The plugin file suffix.
139
+ * @overload suffix
140
+ * @return [String]
145
141
  */
146
142
  static VALUE
147
143
  rb_grn_plugin_s_suffix (VALUE klass)
@@ -26,7 +26,7 @@ VALUE rb_cGrnTableCursor;
26
26
  * Document-class: Groonga::TableCursor
27
27
  *
28
28
  * テーブルに登録されているレコードを順番に取り出すための
29
- * オブジェクト。Groonga::Table#open_cursorで生成できる。
29
+ * オブジェクト。 {Groonga::Table#open_cursor} で生成できる。
30
30
  */
31
31
 
32
32
  grn_table_cursor *
@@ -128,7 +128,7 @@ rb_grn_table_cursor_order_by_to_flag (unsigned char table_type,
128
128
  * カレントレコードの値を返す。
129
129
  *
130
130
  * @overload value
131
- * @return [String] カレントレコードの値
131
+ * @return [String] カレントレコードの値
132
132
  */
133
133
  static VALUE
134
134
  rb_grn_table_cursor_get_value (VALUE self)
@@ -178,10 +178,9 @@ rb_grn_table_cursor_set_value (VALUE self, VALUE value)
178
178
  }
179
179
 
180
180
  /*
181
- * call-seq:
182
- * table_cursor.delete
183
- *
184
181
  * カレントレコードを削除する。
182
+ *
183
+ * @overload delete
185
184
  */
186
185
  static VALUE
187
186
  rb_grn_table_cursor_delete (VALUE self)
@@ -202,10 +201,10 @@ rb_grn_table_cursor_delete (VALUE self)
202
201
  }
203
202
 
204
203
  /*
205
- * call-seq:
206
- * table_cursor.next -> Groonga::Record
207
- *
208
204
  * カレントレコードを一件進めてそのレコードを返す。
205
+ *
206
+ * @overload next
207
+ * @return [Groonga::Record]
209
208
  */
210
209
  static VALUE
211
210
  rb_grn_table_cursor_next (VALUE self)
@@ -229,10 +228,10 @@ rb_grn_table_cursor_next (VALUE self)
229
228
  }
230
229
 
231
230
  /*
232
- * call-seq:
233
- * table_cursor.each {|record| ...}
234
- *
235
231
  * カーソルの範囲内にあるレコードを順番にブロックに渡す。
232
+ *
233
+ * @overload each
234
+ * @yield [record]
236
235
  */
237
236
  static VALUE
238
237
  rb_grn_table_cursor_each (VALUE self)
@@ -257,23 +256,17 @@ rb_grn_table_cursor_each (VALUE self)
257
256
  }
258
257
 
259
258
  /*
260
- * Document-method: close
261
- *
262
- * call-seq:
263
- * cursor.close
264
- *
265
259
  * カーソルが使用しているリソースを開放する。これ以降カーソルを
266
260
  * 使うことはできない。
261
+ *
262
+ * @overload close
267
263
  */
268
264
 
269
265
  /*
270
- * Document-method: closed?
271
- *
272
- * call-seq:
273
- * cursor.closed? -> true/false
274
- *
275
266
  * カーソルが開放済みの場合は +true+ を返し、そうでない場合は
276
267
  * +false+ を返す。
268
+ *
269
+ * @overload closed?
277
270
  */
278
271
 
279
272
  void
@@ -25,8 +25,8 @@ VALUE rb_mGrnTableKeySupport;
25
25
  /*
26
26
  * Document-module: Groonga::Table::KeySupport
27
27
  *
28
- * 主キーを持つテーブルであるGroonga::Hashと
29
- * Groonga::PatriciaTrieに主キーの機能を提供するモジュール。
28
+ * 主キーを持つテーブルである {Groonga::Hash}
29
+ * {Groonga::PatriciaTrie} に主キーの機能を提供するモジュール。
30
30
  */
31
31
 
32
32
  void
@@ -110,21 +110,21 @@ rb_grn_table_key_support_add_raw (VALUE self, VALUE rb_key, int *added)
110
110
  }
111
111
 
112
112
  /*
113
- * call-seq:
114
- * table.add(key, values=nil) -> Groonga::Recordまたはnil
115
- *
116
113
  * 主キーが _key_ のレコード追加し、追加したレコードを返す。レ
117
114
  * コードの追加に失敗した場合は +nil+ を返す。
118
115
  *
119
116
  * すでに同じキーのレコードが存在する場合は追加せずに同じレ
120
117
  * コードを返す。追加されたかどうかは
121
- * +Groonga::Record#added?+ で調べることができる。 +true+ を返
118
+ * {Groonga::Record#added?} で調べることができる。 +true+ を返
122
119
  * したら追加されたということを示す。
123
120
  *
124
121
  * _values_ にはレコードのカラムに設定する値を指定する。省略
125
122
  * した場合または +nil+ を指定した場合はカラムは設定しない。カ
126
- * ラムの値は<tt>{:カラム名1 => 値1, :カラム名2 => 値2,
127
- * ...}</tt>と指定する。
123
+ * ラムの値は @{:カラム名1 => 値1, :カラム名2 => 値2,
124
+ * ...}@ と指定する。
125
+ *
126
+ * @overload add(key, values=nil)
127
+ * @return [Groonga::Recordまたはnil]
128
128
  */
129
129
  static VALUE
130
130
  rb_grn_table_key_support_add (int argc, VALUE *argv, VALUE self)
@@ -168,14 +168,15 @@ rb_grn_table_key_support_get (VALUE self, VALUE rb_key)
168
168
  }
169
169
 
170
170
  /*
171
- * call-seq:
172
- * table.id -> テーブルID
173
- * table.id(key) -> レコードID
174
- *
175
171
  * _key_ を指定しない場合はテーブルのIDを返す。
176
172
  *
177
173
  * _key_ を指定した場合はテーブルの _key_ に対応するレコードの
178
174
  * IDを返す。
175
+ *
176
+ * @overload id
177
+ * @return [テーブルID]
178
+ * @overload id(key)
179
+ * @return [レコードID]
179
180
  */
180
181
  static VALUE
181
182
  rb_grn_table_key_support_get_id (int argc, VALUE *argv, VALUE self)
@@ -198,10 +199,10 @@ rb_grn_table_key_support_get_id (int argc, VALUE *argv, VALUE self)
198
199
  }
199
200
 
200
201
  /*
201
- * call-seq:
202
- * table.key(id) -> 主キー
203
- *
204
202
  * テーブルの _id_ に対応する主キーを返す。
203
+ *
204
+ * @overload key(id)
205
+ * @return [主キー]
205
206
  */
206
207
  static VALUE
207
208
  rb_grn_table_key_support_get_key (VALUE self, VALUE rb_id)
@@ -234,10 +235,9 @@ rb_grn_table_key_support_get_key (VALUE self, VALUE rb_id)
234
235
  }
235
236
 
236
237
  /*
237
- * call-seq:
238
- * table.has_key?(key) -> true/false
239
- *
240
238
  * テーブルに主キーが _key_ のレコードがあるならtrueを返す。
239
+ *
240
+ * @overload has_key?(key)
241
241
  */
242
242
  static VALUE
243
243
  rb_grn_table_key_support_has_key (VALUE self, VALUE rb_key)
@@ -283,11 +283,10 @@ rb_grn_table_key_support_delete_by_key (VALUE self, VALUE rb_key)
283
283
  }
284
284
 
285
285
  /*
286
- * call-seq:
287
- * table.delete(id)
288
- * table.delete(key)
289
- *
290
286
  * テーブルの _id_ または _key_ に対応するレコードを削除する。
287
+ *
288
+ * @overload delete(id)
289
+ * @overload delete(key)
291
290
  */
292
291
  static VALUE
293
292
  rb_grn_table_key_support_delete (VALUE self, VALUE rb_id_or_key)
@@ -300,9 +299,9 @@ rb_grn_table_key_support_delete (VALUE self, VALUE rb_id_or_key)
300
299
  }
301
300
 
302
301
  /*
303
- * _table_ の _key_ に対応するGroonga::Recordを返す。
302
+ * _table_ の _key_ に対応する {Groonga::Record} を返す。
304
303
  *
305
- * 0.9.0から値ではなくGroonga::Recordを返すようになった。
304
+ * 0.9.0から値ではなく {Groonga::Record} を返すようになった。
306
305
  *
307
306
  * @overload [](key)
308
307
  * @return [Groonga::Record]
@@ -592,10 +591,10 @@ rb_grn_table_key_support_set_value (int argc, VALUE *argv, VALUE self)
592
591
  }
593
592
 
594
593
  /*
595
- * call-seq:
596
- * table.default_tokenizer -> nilまたはGroonga::Procedure
594
+ * {Groonga::IndexColumn} で使用するトークナイザを返す。
597
595
  *
598
- * Groonga::IndexColumnで使用するトークナイザを返す。
596
+ * @overload default_tokenizer
597
+ * @return [nilまたはGroonga::Procedure]
599
598
  */
600
599
  static VALUE
601
600
  rb_grn_table_key_support_get_default_tokenizer (VALUE self)
@@ -617,7 +616,7 @@ rb_grn_table_key_support_get_default_tokenizer (VALUE self)
617
616
  }
618
617
 
619
618
  /*
620
- * Groonga::IndexColumnで使用するトークナイザを設定する。
619
+ * {Groonga::IndexColumn} で使用するトークナイザを設定する。
621
620
  *
622
621
  * @example
623
622
  * # 2-gramを使用。
@@ -660,11 +659,10 @@ rb_grn_table_key_support_set_default_tokenizer (VALUE self, VALUE rb_tokenizer)
660
659
  }
661
660
 
662
661
  /*
663
- * call-seq:
664
- * table.normalize_key? -> true/false
665
- *
666
662
  * キーを正規化する場合は +true+ 、正規化しない場合は +false+ を返
667
663
  * す。
664
+ *
665
+ * @overload normalize_key?
668
666
  */
669
667
  static VALUE
670
668
  rb_grn_table_key_normalize_key_p (VALUE self)
@@ -679,11 +677,10 @@ rb_grn_table_key_normalize_key_p (VALUE self)
679
677
  }
680
678
 
681
679
  /*
682
- * call-seq:
683
- * table.support_key? -> true/false
684
- *
685
680
  * テーブルでキーを使えるなら +true+ 、使えないなら +false+ を返
686
- * す。キーを使えないテーブルはGroonga::Arrayだけ。
681
+ * す。キーを使えないテーブルは {Groonga::Array} だけ。
682
+ *
683
+ * @overload support_key?
687
684
  */
688
685
  static VALUE
689
686
  rb_grn_table_key_support_support_key_p (VALUE self)
@@ -35,7 +35,7 @@ static ID id_array_set;
35
35
  * Document-class: Groonga::Table < Groonga::Object
36
36
  *
37
37
  * rroongaが提供するテーブルのベースとなるクラス。このクラス
38
- * からGroonga::Array, Groonga::Hash, Groonga::PatriciaTrie
38
+ * から {Groonga::Array} , {Groonga::Hash} , {Groonga::PatriciaTrie}
39
39
  * が継承されている。
40
40
  */
41
41
 
@@ -204,10 +204,10 @@ rb_grn_table_inspect_content (VALUE self, VALUE inspected)
204
204
  }
205
205
 
206
206
  /*
207
- * call-seq:
208
- * table.inspect -> String
209
- *
210
207
  * テーブルの中身を人に見やすい文字列で返す。
208
+ *
209
+ * @overload inspect
210
+ * @return [String]
211
211
  */
212
212
  static VALUE
213
213
  rb_grn_table_inspect (VALUE self)
@@ -240,13 +240,13 @@ rb_grn_table_inspect (VALUE self)
240
240
  * カラムの値の格納方法について指定する。省略した場合は、
241
241
  * +:scalar+ になる。
242
242
  *
243
- * [+:scalar+] スカラ値(単独の値)を格納する。
244
- * [+:vector+] 値の配列を格納する。
243
+ * - +:scalar+ := スカラ値(単独の値)を格納する。
244
+ * - +:vector+ := 値の配列を格納する。
245
245
  * @option options :compress
246
246
  * 値の圧縮方法を指定する。省略した場合は、圧縮しない。
247
247
  *
248
- * [+:zlib+] 値をzlib圧縮して格納する。
249
- * [+:lzo+] 値をlzo圧縮して格納する。
248
+ * - +:zlib+ := 値をzlib圧縮して格納する。
249
+ * - +:lzo+ := 値をlzo圧縮して格納する。
250
250
  *
251
251
  * @return [Groonga::FixSizeColumn or Groonga::VariableSizeColumn]
252
252
  */
@@ -508,11 +508,11 @@ ruby_object_to_column_name (VALUE rb_name,
508
508
  }
509
509
 
510
510
  /*
511
- * call-seq:
512
- * table.column(name) -> Groonga::Column or nil
513
- *
514
511
  * テーブルの _name_ に対応するカラムを返す。カラムが存在しな
515
512
  * い場合は +nil+ を返す。
513
+ *
514
+ * @overload column(name)
515
+ * @return [Groonga::Column or nil]
516
516
  */
517
517
  VALUE
518
518
  rb_grn_table_get_column (VALUE self, VALUE rb_name)
@@ -589,11 +589,11 @@ rb_grn_table_get_column_surely (VALUE self, VALUE rb_name)
589
589
  }
590
590
 
591
591
  /*
592
- * call-seq:
593
- * table.columns(name=nil) -> Groonga::Columnの配列
594
- *
595
592
  * テーブルの全てのカラムを返す。 _name_ が指定された場合はカ
596
593
  * ラム名の先頭が _name_ で始まるカラムを返す。
594
+ *
595
+ * @overload columns(name=nil)
596
+ * @return [Groonga::Columnの配列]
597
597
  */
598
598
  static VALUE
599
599
  rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
@@ -665,10 +665,9 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
665
665
  }
666
666
 
667
667
  /*
668
- * call-seq:
669
- * table.have_column?(name) -> true/false
670
- *
671
668
  * テーブルが _name_ カラムを持っている場合は +true+ を返す。
669
+ *
670
+ * @overload have_column?(name)
672
671
  */
673
672
  static VALUE
674
673
  rb_grn_table_have_column (VALUE self, VALUE rb_name)
@@ -788,7 +787,7 @@ rb_grn_table_open_grn_cursor (int argc, VALUE *argv, VALUE self,
788
787
  * +:key+ 指定するとキー順にレコードを取り出す。ただし、
789
788
  * Groonga::PatriciaTrieにしか使えない。(PatriciaTrieのデ
790
789
  * フォルト)
791
- * @option options :greater_than The greater_than
790
+ * @option options :greater_than
792
791
  * +true+ を指定すると +:min+ で指定した値に一致した [ +key+ ] を
793
792
  * 範囲に含まない。
794
793
  * @option options :less_than
@@ -820,7 +819,7 @@ rb_grn_table_open_grn_cursor (int argc, VALUE *argv, VALUE self,
820
819
  * +:key+ 指定するとキー順にレコードを取り出す。ただし、
821
820
  * Groonga::PatriciaTrieにしか使えない。(PatriciaTrieのデ
822
821
  * フォルト)
823
- * @option options :greater_than The greater_than
822
+ * @option options :greater_than
824
823
  * +true+ を指定すると +:min+ で指定した値に一致した [ +key+ ] を
825
824
  * 範囲に含まない。
826
825
  * @option options :less_than
@@ -844,11 +843,11 @@ rb_grn_table_open_cursor (int argc, VALUE *argv, VALUE self)
844
843
  }
845
844
 
846
845
  /*
847
- * call-seq:
848
- * table.records -> Groonga::Recordの配列
849
- *
850
846
  * テーブルに登録されている全てのレコードが入っている配列を
851
847
  * 返す。
848
+ *
849
+ * @overload records
850
+ * @return [Groonga::Recordの配列]
852
851
  */
853
852
  static VALUE
854
853
  rb_grn_table_get_records (int argc, VALUE *argv, VALUE self)
@@ -872,7 +871,7 @@ rb_grn_table_get_records (int argc, VALUE *argv, VALUE self)
872
871
  * テーブルに登録されているレコード数を返す。
873
872
  *
874
873
  * @overload size
875
- * @return [Integer] レコード数
874
+ * @return [Integer]
876
875
  */
877
876
  static VALUE
878
877
  rb_grn_table_get_size (VALUE self)
@@ -890,10 +889,9 @@ rb_grn_table_get_size (VALUE self)
890
889
  }
891
890
 
892
891
  /*
893
- * call-seq:
894
- * table.empty? -> true/false
895
- *
896
892
  * テーブルにレコードが登録されていなければ +true+ を返す。
893
+ *
894
+ * @overload empty?
897
895
  */
898
896
  static VALUE
899
897
  rb_grn_table_empty_p (VALUE self)
@@ -911,10 +909,9 @@ rb_grn_table_empty_p (VALUE self)
911
909
  }
912
910
 
913
911
  /*
914
- * call-seq:
915
- * table.truncate
916
- *
917
912
  * テーブルの全レコードを一括して削除する。
913
+ *
914
+ * @overload truncate
918
915
  */
919
916
  static VALUE
920
917
  rb_grn_table_truncate (VALUE self)
@@ -934,13 +931,17 @@ rb_grn_table_truncate (VALUE self)
934
931
  }
935
932
 
936
933
  /*
937
- * call-seq:
938
- * table.each {|record| } -> nil
939
- * table.each(options={}) {|record| } -> nil
940
- *
941
934
  * テーブルに登録されているレコードを順番にブロックに渡す。
942
935
  *
943
- * _options_ is the same as #open_cursor's one.
936
+ * _options_ is the same as {#open_cursor} 's one.
937
+ *
938
+ * @overload each
939
+ * @!macro [new] table.each.metadata
940
+ * @yield [record]
941
+ * @return [nil]
942
+ * @!macro table.each.metadata
943
+ * @overload each(options={})
944
+ * @!macro table.each.metadata
944
945
  */
945
946
  static VALUE
946
947
  rb_grn_table_each (int argc, VALUE *argv, VALUE self)
@@ -969,10 +970,9 @@ rb_grn_table_each (int argc, VALUE *argv, VALUE self)
969
970
  }
970
971
 
971
972
  /*
972
- * call-seq:
973
- * table.delete(id)
974
- *
975
973
  * テーブルの _id_ に対応するレコードを削除する。
974
+ *
975
+ * @overload delete(id)
976
976
  */
977
977
  VALUE
978
978
  rb_grn_table_delete (VALUE self, VALUE rb_id)
@@ -1168,13 +1168,14 @@ rb_grn_table_sort (int argc, VALUE *argv, VALUE self)
1168
1168
  }
1169
1169
 
1170
1170
  /*
1171
- * call-seq:
1172
- * table.group([key1, key2, ...], options={}) -> [Groonga::Hash, ...]
1173
- * table.group(key, options={}) -> Groonga::Hash
1174
- *
1175
1171
  * _table_ のレコードを _key1_ , _key2_ , _..._ で指定したキーの
1176
1172
  * 値でグループ化する。多くの場合、キーにはカラムを指定する。
1177
1173
  * カラムはカラム名(文字列)でも指定可能。
1174
+ *
1175
+ * @overload group([key1, key2, ...], options={})
1176
+ * @return [[Groonga::Hash, ...]]
1177
+ * @overload group(key, options={})
1178
+ * @return [Groonga::Hash]
1178
1179
  */
1179
1180
  static VALUE
1180
1181
  rb_grn_table_group (int argc, VALUE *argv, VALUE self)
@@ -1268,14 +1269,12 @@ rb_grn_table_group (int argc, VALUE *argv, VALUE self)
1268
1269
  }
1269
1270
 
1270
1271
  /*
1271
- * Document-method: []
1272
- *
1273
- * call-seq:
1274
- * table[id] -> Groonga::Record
1272
+ * _table_ の _id_ に対応する {Groonga::Record} を返す。
1275
1273
  *
1276
- * _table_ の _id_ に対応するGroonga::Recordを返す。
1274
+ * 0.9.0から値ではなく {Groonga::Record} を返すようになった。
1277
1275
  *
1278
- * 0.9.0から値ではなくGroonga::Recordを返すようになった。
1276
+ * @overload [](id)
1277
+ * @return [Groonga::Record]
1279
1278
  */
1280
1279
  VALUE
1281
1280
  rb_grn_table_array_reference (VALUE self, VALUE rb_id)
@@ -1310,17 +1309,16 @@ rb_grn_table_get_value (VALUE self, VALUE rb_id)
1310
1309
  }
1311
1310
 
1312
1311
  /*
1313
- * Document-method: value
1314
- *
1315
- * call-seq:
1316
- * table.value(id) -> 値
1317
- * table.value(id, :id => true) -> 値
1318
- *
1319
1312
  * _table_ の _id_ に対応する値を返す。
1320
1313
  *
1321
- * <tt>:id => true</tt>が指定できるのは利便性のため。
1322
- * Groonga::ArrayでもGroonga::HashやGroonga::PatriciaTrieと
1314
+ * @:id => true@ が指定できるのは利便性のため。
1315
+ * {Groonga::Array} でも {Groonga::Hash} {Groonga::PatriciaTrie}
1323
1316
  * 同じ引数で動くようになる。
1317
+ *
1318
+ * @overload value(id)
1319
+ * @return [値]
1320
+ * @overload value(id, :id => true)
1321
+ * @return [値]
1324
1322
  */
1325
1323
  static VALUE
1326
1324
  rb_grn_table_get_value_convenience (int argc, VALUE *argv, VALUE self)
@@ -1370,18 +1368,15 @@ rb_grn_table_set_value (VALUE self, VALUE rb_id, VALUE rb_value)
1370
1368
  }
1371
1369
 
1372
1370
  /*
1373
- * Document-method: set_value
1374
- *
1375
- * call-seq:
1376
- * table.set_value(id, value)
1377
- * table.set_value(id, value, :id => true)
1378
- *
1379
1371
  * _table_ の _id_ に対応する値として _value_ 設定する。既存の値は
1380
1372
  * 上書きされる。
1381
1373
  *
1382
- * <tt>:id => true</tt>が指定できるのは利便性のため。
1383
- * Groonga::ArrayでもGroonga::HashやGroonga::PatriciaTrieと
1374
+ * @:id => true@ が指定できるのは利便性のため。
1375
+ * {Groonga::Array} でも {Groonga::Hash} {Groonga::PatriciaTrie}
1384
1376
  * 同じ引数で動くようになる。
1377
+ *
1378
+ * @overload set_value(id, value)
1379
+ * @overload set_value(id, value, :id => true)
1385
1380
  */
1386
1381
  static VALUE
1387
1382
  rb_grn_table_set_value_convenience (int argc, VALUE *argv, VALUE self)
@@ -1423,17 +1418,16 @@ rb_grn_table_get_column_value (VALUE self, VALUE rb_id, VALUE rb_name)
1423
1418
  }
1424
1419
 
1425
1420
  /*
1426
- * Document-method: column_value
1427
- *
1428
- * call-seq:
1429
- * table.column_value(id, name) -> 値
1430
- * table.column_value(id, name, :id => true) -> 値
1431
- *
1432
1421
  * _table_ の _id_ に対応するカラム _name_ の値を返す。
1433
1422
  *
1434
- * <tt>:id => true</tt>が指定できるのは利便性のため。
1435
- * Groonga::ArrayでもGroonga::HashやGroonga::PatriciaTrieと
1423
+ * @:id => true@ が指定できるのは利便性のため。
1424
+ * {Groonga::Array} でも {Groonga::Hash} {Groonga::PatriciaTrie}
1436
1425
  * 同じ引数で動くようになる。
1426
+ *
1427
+ * @overload column_value(id, name)
1428
+ * @return [値]
1429
+ * @overload column_value(id, name, :id => true)
1430
+ * @return [値]
1437
1431
  */
1438
1432
  static VALUE
1439
1433
  rb_grn_table_get_column_value_convenience (int argc, VALUE *argv, VALUE self)
@@ -1479,18 +1473,15 @@ rb_grn_table_set_column_value (VALUE self, VALUE rb_id,
1479
1473
  }
1480
1474
 
1481
1475
  /*
1482
- * Document-method: set_column_value
1483
- *
1484
- * call-seq:
1485
- * table.set_column_value(id, name, value)
1486
- * table.set_column_value(id, name, value, :id => true)
1487
- *
1488
1476
  * _table_ の _id_ に対応するカラム _name_ の値として _value_ 設定す
1489
1477
  * る。既存の値は上書きされる。
1490
1478
  *
1491
- * <tt>:id => true</tt>が指定できるのは利便性のため。
1492
- * Groonga::ArrayでもGroonga::HashやGroonga::PatriciaTrieと
1479
+ * @:id => true@ が指定できるのは利便性のため。
1480
+ * {Groonga::Array} でも {Groonga::Hash} {Groonga::PatriciaTrie}
1493
1481
  * 同じ引数で動くようになる。
1482
+ *
1483
+ * @overload set_column_value(id, name, value)
1484
+ * @overload set_column_value(id, name, valuf, :id => true)
1494
1485
  */
1495
1486
  static VALUE
1496
1487
  rb_grn_table_set_column_value_convenience (int argc, VALUE *argv, VALUE self)
@@ -1516,18 +1507,14 @@ rb_grn_table_set_column_value_convenience (int argc, VALUE *argv, VALUE self)
1516
1507
  }
1517
1508
 
1518
1509
  /*
1519
- * Document-method: unlock
1520
- *
1521
- * call-seq:
1522
- * table.unlock(options={})
1523
- *
1524
1510
  * _table_ のロックを解除する。
1525
1511
  *
1526
- * 利用可能なオプションは以下の通り。
1527
- *
1528
- * [ _:id_ ]
1529
- * _:id_ で指定したレコードのロックを解除する。(注:
1530
- * groonga側が未実装のため、現在は無視される)
1512
+ * @overload unlock(options={})
1513
+ * @param options [::Hash] The name and value
1514
+ * pairs. Omitted names are initialized as the default value.
1515
+ * @option options :id
1516
+ * _:id_ で指定したレコードのロックを解除する。(注:
1517
+ * groonga側が未実装のため、現在は無視される)
1531
1518
  */
1532
1519
  static VALUE
1533
1520
  rb_grn_table_unlock (int argc, VALUE *argv, VALUE self)
@@ -1567,7 +1554,7 @@ rb_grn_table_unlock_ensure (VALUE self)
1567
1554
 
1568
1555
  /*
1569
1556
  * _table_ をロックする。ロックに失敗した場合は
1570
- * Groonga::ResourceDeadlockAvoided例外が発生する。
1557
+ * {Groonga::ResourceDeadlockAvoided} 例外が発生する。
1571
1558
  *
1572
1559
  * ブロックを指定した場合はブロックを抜けたときにunlockする。
1573
1560
  *
@@ -1712,8 +1699,8 @@ rb_grn_table_is_locked (int argc, VALUE *argv, VALUE self)
1712
1699
  * _table_ からブロックまたは文字列で指定した条件にマッチする
1713
1700
  * レコードを返す。返されたテーブルには +expression+ という特
1714
1701
  * 異メソッドがあり、指定した条件を表している
1715
- * Groonga::Expressionを取得できる。
1716
- * Groonga::Expression#snippetを使うことにより、指定した条件
1702
+ * {Groonga::Expression} を取得できる。
1703
+ * {Groonga::Expression#snippet} を使うことにより、指定した条件
1717
1704
  * 用のスニペットを簡単に生成できる。
1718
1705
  *
1719
1706
  * <pre>
@@ -1765,49 +1752,53 @@ rb_grn_table_is_locked (int argc, VALUE *argv, VALUE self)
1765
1752
  * # => ["Hello Good-bye!", "Hello World"]
1766
1753
  * </pre>
1767
1754
  *
1768
- * @param options [::Hash] The name and value
1769
- * pairs. Omitted names are initialized as the default value.
1770
- * @option options :default_column
1771
- * "column_name:hoge"ではなく"hoge"のようにcolumn_nameが指
1772
- * 定されない条件の検索対象となるカラムを指定する。
1773
- * @option options :operator (Groonga::Operator::OR)
1774
- * マッチしたレコードをどのように扱うか。指定可能な値は以
1775
- * 下の通り。省略した場合はGroonga::Operator::OR。
1776
- *
1777
- * [Groonga::Operator::OR] マッチしたレコードを追加。すで
1778
- * にレコードが追加されている場合
1779
- * は何もしない。
1780
- * [Groonga::Operator::AND] マッチしたレコードのスコアを増
1781
- * 加。マッチしなかったレコード
1782
- * を削除。
1783
- * [Groonga::Operator::BUT] マッチしたレコードを削除。
1784
- * [Groonga::Operator::ADJUST] マッチしたレコードのスコア
1785
- * を増加。
1786
- *
1787
- * @option options :result
1788
- * 検索結果を格納するテーブル。マッチしたレコードが追加さ
1789
- * れていく。省略した場合は新しくテーブルを作成して返す。
1790
- * @option options :name
1791
- * 条件の名前。省略した場合は名前を付けない。
1792
- * @option options :syntax
1793
- * _query_ の構文。省略した場合は +:query+ 。
1794
- *
1795
- * 参考: Groonga::Expression#parse.
1796
- * @option options :allow_pragma
1797
- * query構文時にプラグマを利用するかどうか。省略した場合は
1798
- * 利用する。
1799
- *
1800
- * 参考: Groonga::Expression#parse.
1801
- * @option options :allow_column
1802
- * query構文時にカラム指定を利用するかどうか。省略した場合
1803
- * は利用する。
1804
- *
1805
- * 参考: Groonga::Expression#parse.
1806
- * @option options :allow_update
1807
- * script構文時に更新操作を利用するかどうか。省略した場合
1808
- * は利用する。
1809
- *
1810
- * 参考: Groonga::Expression#parse.
1755
+ * @!macro [new] table.select.options
1756
+ * @param options [::Hash] The name and value
1757
+ * pairs. Omitted names are initialized as the default value.
1758
+ * @option options :default_column
1759
+ * "column_name:hoge"ではなく"hoge"のようにcolumn_nameが指
1760
+ * 定されない条件の検索対象となるカラムを指定する。
1761
+ * @option options :operator (Groonga::Operator::OR)
1762
+ * マッチしたレコードをどのように扱うか。指定可能な値は以
1763
+ * 下の通り。省略した場合はGroonga::Operator::OR。
1764
+ *
1765
+ * - Groonga::Operator::OR :=
1766
+ * マッチしたレコードを追加。すでにレコードが追加されている場合
1767
+ * は何もしない。 =:
1768
+ * - Groonga::Operator::AND :=
1769
+ * マッチしたレコードのスコアを増加。マッチしなかったレコードを削除。 =:
1770
+ * - Groonga::Operator::BUT :=
1771
+ * マッチしたレコードを削除。 =:
1772
+ * - Groonga::Operator::ADJUST :=
1773
+ * マッチしたレコードのスコアを増加。 =:
1774
+ *
1775
+ * @option options :result
1776
+ * 検索結果を格納するテーブル。マッチしたレコードが追加さ
1777
+ * れていく。省略した場合は新しくテーブルを作成して返す。
1778
+ * @option options :name
1779
+ * 条件の名前。省略した場合は名前を付けない。
1780
+ * @option options :syntax
1781
+ * _query_ の構文。省略した場合は +:query+ 。
1782
+ *
1783
+ * 参考: {Groonga::Expression#parse} .
1784
+ *
1785
+ * @option options :allow_pragma
1786
+ * query構文時にプラグマを利用するかどうか。省略した場合は
1787
+ * 利用する。
1788
+ *
1789
+ * 参考: {Groonga::Expression#parse} .
1790
+ *
1791
+ * @option options :allow_column
1792
+ * query構文時にカラム指定を利用するかどうか。省略した場合
1793
+ * は利用する。
1794
+ *
1795
+ * 参考: {Groonga::Expression#parse} .
1796
+ *
1797
+ * @option options :allow_update
1798
+ * script構文時に更新操作を利用するかどうか。省略した場合
1799
+ * は利用する。
1800
+ *
1801
+ * 参考: {Groonga::Expression#parse} .
1811
1802
  *
1812
1803
  * @overload select(query, options)
1813
1804
  * _query_ には「[カラム名]:[演算子][値]」という書式で条件を
@@ -1830,96 +1821,11 @@ rb_grn_table_is_locked (int argc, VALUE *argv, VALUE self)
1830
1821
  * # "groonga"を含んでいるレコードにマッチ
1831
1822
  * </pre>
1832
1823
  *
1833
- * @param options [::Hash] The name and value
1834
- * pairs. Omitted names are initialized as the default value.
1835
- * @option options :default_column
1836
- * "column_name:hoge"ではなく"hoge"のようにcolumn_nameが指
1837
- * 定されない条件の検索対象となるカラムを指定する。
1838
- * @option options :operator (Groonga::Operator::OR)
1839
- * マッチしたレコードをどのように扱うか。指定可能な値は以
1840
- * 下の通り。省略した場合はGroonga::Operator::OR。
1841
- *
1842
- * [Groonga::Operator::OR] マッチしたレコードを追加。すで
1843
- * にレコードが追加されている場合
1844
- * は何もしない。
1845
- * [Groonga::Operator::AND] マッチしたレコードのスコアを増
1846
- * 加。マッチしなかったレコード
1847
- * を削除。
1848
- * [Groonga::Operator::BUT] マッチしたレコードを削除。
1849
- * [Groonga::Operator::ADJUST] マッチしたレコードのスコア
1850
- * を増加。
1851
- *
1852
- * @option options :result
1853
- * 検索結果を格納するテーブル。マッチしたレコードが追加さ
1854
- * れていく。省略した場合は新しくテーブルを作成して返す。
1855
- * @option options :name
1856
- * 条件の名前。省略した場合は名前を付けない。
1857
- * @option options :syntax
1858
- * _query_ の構文。省略した場合は +:query+ 。
1859
- *
1860
- * 参考: Groonga::Expression#parse.
1861
- * @option options :allow_pragma
1862
- * query構文時にプラグマを利用するかどうか。省略した場合は
1863
- * 利用する。
1864
- *
1865
- * 参考: Groonga::Expression#parse.
1866
- * @option options :allow_column
1867
- * query構文時にカラム指定を利用するかどうか。省略した場合
1868
- * は利用する。
1869
- *
1870
- * 参考: Groonga::Expression#parse.
1871
- * @option options :allow_update
1872
- * script構文時に更新操作を利用するかどうか。省略した場合
1873
- * は利用する。
1874
- *
1875
- * 参考: Groonga::Expression#parse.
1876
- *
1824
+ * @!macro table.select.options
1877
1825
  * @overload select(expression, options)
1878
- * _expression_ には既に作成済みのGroonga::Expressionを渡す
1826
+ * _expression_ には既に作成済みの {Groonga::Expression} を渡す。
1879
1827
  *
1880
- * @param options [::Hash] The name and value
1881
- * pairs. Omitted names are initialized as the default value.
1882
- * @option options :default_column
1883
- * "column_name:hoge"ではなく"hoge"のようにcolumn_nameが指
1884
- * 定されない条件の検索対象となるカラムを指定する。
1885
- * @option options :operator (Groonga::Operator::OR)
1886
- * マッチしたレコードをどのように扱うか。指定可能な値は以
1887
- * 下の通り。省略した場合はGroonga::Operator::OR。
1888
- *
1889
- * [Groonga::Operator::OR] マッチしたレコードを追加。すで
1890
- * にレコードが追加されている場合
1891
- * は何もしない。
1892
- * [Groonga::Operator::AND] マッチしたレコードのスコアを増
1893
- * 加。マッチしなかったレコード
1894
- * を削除。
1895
- * [Groonga::Operator::BUT] マッチしたレコードを削除。
1896
- * [Groonga::Operator::ADJUST] マッチしたレコードのスコア
1897
- * を増加。
1898
- *
1899
- * @option options :result
1900
- * 検索結果を格納するテーブル。マッチしたレコードが追加さ
1901
- * れていく。省略した場合は新しくテーブルを作成して返す。
1902
- * @option options :name
1903
- * 条件の名前。省略した場合は名前を付けない。
1904
- * @option options :syntax
1905
- * _query_ の構文。省略した場合は +:query+ 。
1906
- *
1907
- * 参考: Groonga::Expression#parse.
1908
- * @option options :allow_pragma
1909
- * query構文時にプラグマを利用するかどうか。省略した場合は
1910
- * 利用する。
1911
- *
1912
- * 参考: Groonga::Expression#parse.
1913
- * @option options :allow_column
1914
- * query構文時にカラム指定を利用するかどうか。省略した場合
1915
- * は利用する。
1916
- *
1917
- * 参考: Groonga::Expression#parse.
1918
- * @option options :allow_update
1919
- * script構文時に更新操作を利用するかどうか。省略した場合
1920
- * は利用する。
1921
- *
1922
- * 参考: Groonga::Expression#parse.
1828
+ * @!macro table.select.options
1923
1829
  * @return [Groonga::Hash]
1924
1830
  */
1925
1831
  static VALUE
@@ -1930,7 +1836,7 @@ rb_grn_table_select (int argc, VALUE *argv, VALUE self)
1930
1836
  grn_operator operator = GRN_OP_OR;
1931
1837
  VALUE rb_query = Qnil, condition_or_options, options;
1932
1838
  VALUE rb_name, rb_operator, rb_result, rb_syntax;
1933
- VALUE rb_allow_pragma, rb_allow_column, rb_allow_update;
1839
+ VALUE rb_allow_pragma, rb_allow_column, rb_allow_update, rb_allow_leading_not;
1934
1840
  VALUE rb_default_column;
1935
1841
  VALUE rb_expression = Qnil, builder;
1936
1842
 
@@ -1964,6 +1870,7 @@ rb_grn_table_select (int argc, VALUE *argv, VALUE self)
1964
1870
  "allow_pragma", &rb_allow_pragma,
1965
1871
  "allow_column", &rb_allow_column,
1966
1872
  "allow_update", &rb_allow_update,
1873
+ "allow_leading_not", &rb_allow_leading_not,
1967
1874
  "default_column", &rb_default_column,
1968
1875
  NULL);
1969
1876
 
@@ -1987,6 +1894,7 @@ rb_grn_table_select (int argc, VALUE *argv, VALUE self)
1987
1894
  rb_funcall(builder, rb_intern("allow_pragma="), 1, rb_allow_pragma);
1988
1895
  rb_funcall(builder, rb_intern("allow_column="), 1, rb_allow_column);
1989
1896
  rb_funcall(builder, rb_intern("allow_update="), 1, rb_allow_update);
1897
+ rb_funcall(builder, rb_intern("allow_leading_not="), 1, rb_allow_leading_not);
1990
1898
  rb_funcall(builder, rb_intern("default_column="), 1, rb_default_column);
1991
1899
  rb_expression = rb_grn_record_expression_builder_build(builder);
1992
1900
  }
@@ -2030,12 +1938,11 @@ rb_grn_table_set_operation_bang (VALUE self, VALUE rb_other,
2030
1938
  }
2031
1939
 
2032
1940
  /*
2033
- * call-seq:
2034
- * table.union!(other) -> Groonga::Table
2035
- *
2036
1941
  * キーを比較し、 _table_ には登録されていない _other_ のレコー
2037
1942
  * ドを _table_ に作成する。
2038
1943
  *
1944
+ * @overload union!(other)
1945
+ * @return [Groonga::Table]
2039
1946
  */
2040
1947
  static VALUE
2041
1948
  rb_grn_table_union_bang (VALUE self, VALUE rb_other)
@@ -2045,12 +1952,11 @@ rb_grn_table_union_bang (VALUE self, VALUE rb_other)
2045
1952
 
2046
1953
 
2047
1954
  /*
2048
- * call-seq:
2049
- * table.intersection!(other) -> Groonga::Table
2050
- *
2051
1955
  * キーを比較し、 _other_ には登録されていないレコードを
2052
1956
  * _table_ から削除する。
2053
1957
  *
1958
+ * @overload intersection!(other)
1959
+ * @return [Groonga::Table]
2054
1960
  */
2055
1961
  static VALUE
2056
1962
  rb_grn_table_intersection_bang (VALUE self, VALUE rb_other)
@@ -2059,12 +1965,11 @@ rb_grn_table_intersection_bang (VALUE self, VALUE rb_other)
2059
1965
  }
2060
1966
 
2061
1967
  /*
2062
- * call-seq:
2063
- * table.difference!(other) -> Groonga::Table
2064
- *
2065
1968
  * キーを比較し、 _other_ にも登録されているレコードを _table_
2066
1969
  * から削除する。
2067
1970
  *
1971
+ * @overload difference!(other)
1972
+ * @return [Groonga::Table]
2068
1973
  */
2069
1974
  static VALUE
2070
1975
  rb_grn_table_difference_bang (VALUE self, VALUE rb_other)
@@ -2073,12 +1978,11 @@ rb_grn_table_difference_bang (VALUE self, VALUE rb_other)
2073
1978
  }
2074
1979
 
2075
1980
  /*
2076
- * call-seq:
2077
- * table.merge!(other) -> Groonga::Table
2078
- *
2079
1981
  * キーを比較し、 _other_ にも登録されている _table_ のレコード
2080
1982
  * のスコアを _other_ のスコアと同値にする。
2081
1983
  *
1984
+ * @overload merge!(other)
1985
+ * @return [Groonga::Table]
2082
1986
  */
2083
1987
  static VALUE
2084
1988
  rb_grn_table_merge_bang (VALUE self, VALUE rb_other)
@@ -2087,11 +1991,10 @@ rb_grn_table_merge_bang (VALUE self, VALUE rb_other)
2087
1991
  }
2088
1992
 
2089
1993
  /*
2090
- * call-seq:
2091
- * table.support_key? -> true/false
2092
- *
2093
1994
  * _table_ に主キーが設定されていれば +true+ 、されていなければ
2094
1995
  * +false+ を返す。
1996
+ *
1997
+ * @overload support_key?
2095
1998
  */
2096
1999
  static VALUE
2097
2000
  rb_grn_table_support_key_p (VALUE self)
@@ -2100,12 +2003,11 @@ rb_grn_table_support_key_p (VALUE self)
2100
2003
  }
2101
2004
 
2102
2005
  /*
2103
- * call-seq:
2104
- * table.support_sub_records? -> true/false
2105
- *
2106
2006
  * グループ化したとき、テーブルにグループに含まれるレコード
2107
2007
  * 数を格納できる場合は +true+ 、格納できない場合は +false+ を返
2108
2008
  * す。
2009
+ *
2010
+ * @overload support_sub_records?
2109
2011
  */
2110
2012
  static VALUE
2111
2013
  rb_grn_table_support_sub_records_p (VALUE self)
@@ -2120,14 +2022,13 @@ rb_grn_table_support_sub_records_p (VALUE self)
2120
2022
  }
2121
2023
 
2122
2024
  /*
2123
- * call-seq:
2124
- * table.exist?(id) -> true/false
2125
- *
2126
2025
  * _table_ に _id_ で指定したIDのレコードが存在する場合は +true+ 、
2127
2026
  * 存在しない場合は +false+ を返す。
2128
2027
  *
2129
2028
  * 注意: 実行には相応のコストがかかるのであまり頻繁に呼ばな
2130
2029
  * いようにして下さい。
2030
+ *
2031
+ * @overload exist?(id)
2131
2032
  */
2132
2033
  static VALUE
2133
2034
  rb_grn_table_exist_p (VALUE self, VALUE id)
@@ -2183,15 +2084,11 @@ rb_grn_table_defrag (int argc, VALUE *argv, VALUE self)
2183
2084
  }
2184
2085
 
2185
2086
  /*
2186
- * Document-method: rename
2187
- *
2188
- * call-seq:
2189
- * table.rename(name)
2190
- *
2191
2087
  * Renames the table to name.
2192
2088
  *
2193
- * @param name [String] the new name
2194
- * @since 1.3.0
2089
+ * @overload rename(name)
2090
+ * @param name [String] the new name
2091
+ * @since 1.3.0
2195
2092
  */
2196
2093
  static VALUE
2197
2094
  rb_grn_table_rename (VALUE self, VALUE rb_name)