ext/groonga/rb-grn-column.c in rroonga-2.0.4 vs ext/groonga/rb-grn-column.c in rroonga-2.0.5
- old
+ new
@@ -165,117 +165,213 @@
xfree(name);
return rb_name;
}
-/*
- * call-seq:
- * column.select(options) {|record| ...} -> Groonga::Hash
- * column.select(query, options) -> Groonga::Hash
- * column.select(expression, options) -> Groonga::Hash
- *
+ /*
* カラムが所属するテーブルからブロックまたは文字列で指定し
* た条件にマッチするレコードを返す。返されたテーブルには
* +expression+ という特異メソッドがあり、指定した条件を表し
* ているGroonga::Expressionを取得できる。
* Groonga::Expression#snippetを使うことにより、指定した条件
* 用のスニペットを簡単に生成できる。
*
* bc. !!!ruby
- * results = description_column.select do |column|
- * column =~ "groonga"
- * end
- * snippet = results.expression.snippet([["<em>", "</em>"]])
- * results.each do |record|
- * puts "#{record['name']}の説明文の中で「groonga」が含まれる部分"
- * snippet.execute(record["description"]).each do |snippet|
- * puts "---"
- * puts "#{snippet}..."
- * puts "---"
+ * results = description_column.select do |column|
+ * column =~ "groonga"
* end
- * end
+ * snippet = results.expression.snippet([["<em>", "</em>"]])
+ * results.each do |record|
+ * puts "#{record['name']}の説明文の中で「groonga」が含まれる部分"
+ * snippet.execute(record["description"]).each do |snippet|
+ * puts "---"
+ * puts "#{snippet}..."
+ * puts "---"
+ * end
+ * end
*
* 出力例
+ * <pre>
+ * rroongaの説明文の中で「groonga」が含まれる部分
+ * ---
+ * rroongaは<em>groonga</em>のいわゆるDB-APIの層の...
+ * ---
*
- * pre. rroongaの説明文の中で「groonga」が含まれる部分
- * ---
- * rroongaは<em>groonga</em>のいわゆるDB-APIの層の...
- * ---
+ * @return [Groonga::Hash] 検索結果
+ * @overload select(options)
+ * @yieldparam [Groonga::Record] record
+ * @param [::Hash] options The name and value
+ * pairs. Omitted names are initialized as the default value.
+ * @option options :operator (Groonga::Operator::OR)
+ * マッチしたレコードをどのように扱うか。指定可能な値は以
+ * 下の通り。
*
- * _query_ には「[カラム名]:[演算子][値]」という書式で条件を
- * 指定する。演算子は以下の通り。
+ * [Groonga::Operator::OR]
+ * マッチしたレコードを追加。すでにレコードが追加され
+ * ている場合は何もしない。
+ * [Groonga::Operator::AND]
+ * マッチしたレコードのスコアを増加。マッチしなかった
+ * レコードを削除。
+ * [Groonga::Operator::BUT]
+ * マッチしたレコードを削除。
+ * [Groonga::Operator::ADJUST]
+ * マッチしたレコードのスコアを増加。
*
- * - なし := [カラム値] == [値]
- * - @!@ := [カラム値] != [値]
- * - @<@ := [カラム値] < [値]
- * - @>@ := [カラム値] > [値]
- * - @<=@ := [カラム値] <= [値]
- * - @>=@ := [カラム値] >= [値]
- * - @@@ := [カラム値]が[値]を含んでいるかどうか
+ * @option options :result
+ * 検索結果を格納するテーブル。マッチしたレコードが追加さ
+ * れていく。省略した場合は新しくテーブルを作成して返す。
*
- * 例:
+ * @option options :name
+ * 条件の名前。省略した場合は名前を付けない。
*
- * - @"groonga"@ := _column_ カラムの値が @"groonga"@ のレコードにマッチ
- * - @"name:daijiro"@ :=
- * _column_ カラムが属しているテーブルの @"name"@ カラムの値が
- * @"daijiro"@ のレコードにマッチ =:
- * - @"description:@@@groonga"@ :=
- * _column_ カラムが属しているテーブルの @"description"@ カラムが
- * @"groonga"@ を含んでいるレコードにマッチ =:
+ * @option options :syntax (:query)
+ * _query_ の構文。
*
- * _expression_ には既に作成済みのGroonga::Expressionを渡す
+ * 参考: Groonga::Expression#parse.
*
- * ブロックで条件を指定する場合は
- * {Groonga::ColumnExpressionBuilder} を参照。
+ * @option options :allow_pragma
+ * query構文時にプラグマを利用するかどうか。省略した場合は
+ * 利用する。
*
- * _options_ に指定可能な値は以下の通り。
- * @param [::Hash] options The name and value
- * pairs. Omitted names are initialized as the default value.
- * @option options :operator (Groonga::Operator::OR) The operator
- * マッチしたレコードをどのように扱うか。指定可能な値は以
- * 下の通り。
+ * 参考: Groonga::Expression#parse.
*
- * [Groonga::Operator::OR]
+ * @option options :allow_column The allow_column
+ * query構文時にカラム指定を利用するかどうか。省略した場合
+ * は利用する。
+ *
+ * 参考: Groonga::Expression#parse.
+ *
+ * @option options :allow_update
+ * script構文時に更新操作を利用するかどうか。省略した場合
+ * は利用する。
+ *
+ * 参考: Groonga::Expression#parse.
+ *
+ * @overload select(query, options)
+ * @param [String] query 条件の指定
+ * _query_ には「[カラム名]:[演算子][値]」という書式で条件を
+ * 指定する。演算子は以下の通り。
+ *
+ * - なし := [カラム値] == [値]
+ * - @!@ := [カラム値] != [値]
+ * - @<@ := [カラム値] < [値]
+ * - @>@ := [カラム値] > [値]
+ * - @<=@ := [カラム値] <= [値]
+ * - @>=@ := [カラム値] >= [値]
+ * - @@@ := [カラム値]が[値]を含んでいるかどうか
+ *
+ * 例:
+ *
+ * - @"groonga"@ := _column_ カラムの値が @"groonga"@ のレコードにマッチ
+ * - @"name:daijiro"@ :=
+ * _column_ カラムが属しているテーブルの @"name"@ カラムの値が
+ * @"daijiro"@ のレコードにマッチ =:
+ * - @"description:@@@groonga"@ :=
+ * _column_ カラムが属しているテーブルの @"description"@ カラムが
+ * @"groonga"@ を含んでいるレコードにマッチ =:
+ *
+ * @param [::Hash] options The name and value
+ * pairs. Omitted names are initialized as the default value.
+ * @option options :operator (Groonga::Operator::OR)
+ * マッチしたレコードをどのように扱うか。指定可能な値は以
+ * 下の通り。
+ *
+ * [Groonga::Operator::OR]
* マッチしたレコードを追加。すでにレコードが追加され
* ている場合は何もしない。
- * [Groonga::Operator::AND]
+ * [Groonga::Operator::AND]
* マッチしたレコードのスコアを増加。マッチしなかった
* レコードを削除。
- * [Groonga::Operator::BUT]
+ * [Groonga::Operator::BUT]
* マッチしたレコードを削除。
- * [Groonga::Operator::ADJUST]
+ * [Groonga::Operator::ADJUST]
* マッチしたレコードのスコアを増加。
*
- * @option options :result The result
- * 検索結果を格納するテーブル。マッチしたレコードが追加さ
- * れていく。省略した場合は新しくテーブルを作成して返す。
+ * @option options :result
+ * 検索結果を格納するテーブル。マッチしたレコードが追加さ
+ * れていく。省略した場合は新しくテーブルを作成して返す。
*
- * @option options :name The name
- * 条件の名前。省略した場合は名前を付けない。
+ * @option options :name
+ * 条件の名前。省略した場合は名前を付けない。
*
- * @option options :syntax (:query) The syntax
- * _query_の構文。
+ * @option options :syntax (:query)
+ * _query_ の構文。
*
- * 参考: Groonga::Expression#parse.
+ * 参考: Groonga::Expression#parse.
*
- * @option options :allow_pragma The allow_pragma
- * query構文時にプラグマを利用するかどうか。省略した場合は
- * 利用する。
+ * @option options :allow_pragma
+ * query構文時にプラグマを利用するかどうか。省略した場合は
+ * 利用する。
*
- * 参考: Groonga::Expression#parse.
+ * 参考: Groonga::Expression#parse.
*
- * @option options :allow_column The allow_column
- * query構文時にカラム指定を利用するかどうか。省略した場合
- * は利用する。
+ * @option options :allow_column The allow_column
+ * query構文時にカラム指定を利用するかどうか。省略した場合
+ * は利用する。
*
- * 参考: Groonga::Expression#parse.
+ * 参考: Groonga::Expression#parse.
*
- * @option options :allow_update
- * script構文時に更新操作を利用するかどうか。省略した場合
- * は利用する。
+ * @option options :allow_update
+ * script構文時に更新操作を利用するかどうか。省略した場合
+ * は利用する。
*
- * 参考: Groonga::Expression#parse.
+ * 参考: Groonga::Expression#parse.
+ *
+ * @overload select(expression, options)
+ * @param [Groonga::Expression] expression 条件を表すオブジェクト
+ * _expression_ には既に作成済みのGroonga::Expressionを渡す
+ *
+ * ブロックで条件を指定する場合は
+ * {Groonga::ColumnExpressionBuilder} を参照。
+ *
+ * @param [::Hash] options The name and value
+ * pairs. Omitted names are initialized as the default value.
+ * @option options :operator (Groonga::Operator::OR)
+ * マッチしたレコードをどのように扱うか。指定可能な値は以
+ * 下の通り。
+ *
+ * [Groonga::Operator::OR]
+ * マッチしたレコードを追加。すでにレコードが追加され
+ * ている場合は何もしない。
+ * [Groonga::Operator::AND]
+ * マッチしたレコードのスコアを増加。マッチしなかった
+ * レコードを削除。
+ * [Groonga::Operator::BUT]
+ * マッチしたレコードを削除。
+ * [Groonga::Operator::ADJUST]
+ * マッチしたレコードのスコアを増加。
+ *
+ * @option options :result
+ * 検索結果を格納するテーブル。マッチしたレコードが追加さ
+ * れていく。省略した場合は新しくテーブルを作成して返す。
+ *
+ * @option options :name
+ * 条件の名前。省略した場合は名前を付けない。
+ *
+ * @option options :syntax (:query)
+ * _query_ の構文。
+ *
+ * 参考: Groonga::Expression#parse.
+ *
+ * @option options :allow_pragma
+ * query構文時にプラグマを利用するかどうか。省略した場合は
+ * 利用する。
+ *
+ * 参考: Groonga::Expression#parse.
+ *
+ * @option options :allow_column The allow_column
+ * query構文時にカラム指定を利用するかどうか。省略した場合
+ * は利用する。
+ *
+ * 参考: Groonga::Expression#parse.
+ *
+ * @option options :allow_update
+ * script構文時に更新操作を利用するかどうか。省略した場合
+ * は利用する。
+ *
+ * 参考: Groonga::Expression#parse.
+ *
*/
static VALUE
rb_grn_column_select (int argc, VALUE *argv, VALUE self)
{
grn_ctx *context;
@@ -357,22 +453,16 @@
return rb_result;
}
/*
- * Document-method: unlock
- *
- * call-seq:
- * column.unlock(options={})
- *
* _column_ のロックを解除する。
- *
- * 利用可能なオプションは以下の通り。
- *
- * [_:id_]
- * _:id_ で指定したレコードのロックを解除する。
- * (注: groonga側が未実装のため、現在は無視される)
+ * @overload unlock(options={})
+ * @param [::Hash] options 利用可能なオプションは以下の通り。
+ * @option options :id
+ * _:id_ で指定したレコードのロックを解除する。
+ * (注: groonga側が未実装のため、現在は無視される)
*/
static VALUE
rb_grn_column_unlock (int argc, VALUE *argv, VALUE self)
{
grn_id id = GRN_ID_NIL;
@@ -406,30 +496,32 @@
{
return rb_grn_column_unlock(0, NULL, self);
}
/*
- * Document-method: lock
- *
- * call-seq:
- * column.lock(options={})
- * column.lock(options={}) {...}
- *
* _column_ をロックする。ロックに失敗した場合は
* Groonga::ResourceDeadlockAvoided例外が発生する。
*
- * ブロックを指定した場合はブロックを抜けたときにunlockする。
- *
- * 利用可能なオプションは以下の通り。
- *
- * [_:timeout_]
- * ロックを獲得できなかった場合は_:timeout_秒間ロックの獲
- * 得を試みる。_:timeout_秒以内にロックを獲得できなかった
- * 場合は例外が発生する。
- * [_:id_]
- * _:id_で指定したレコードをロックする。(注: groonga側が
- * 未実装のため、現在は無視される)
+ * @overload lock(options={})
+ * @param [::Hash] options 利用可能なオプションは以下の通り。
+ * @option options :timeout
+ * ロックを獲得できなかった場合は _:timeout_ 秒間ロックの獲
+ * 得を試みる。 _:timeout_ 秒以内にロックを獲得できなかった
+ * 場合は例外が発生する。
+ * @option options :id
+ * _:id_で指定したレコードをロックする。(注: groonga側が
+ * 未実装のため、現在は無視される)
+ * @overload lock(options={})
+ * @yield ブロックを指定した場合はブロックを抜けたときにunlockする。
+ * @param [::Hash] options 利用可能なオプションは以下の通り。
+ * @option options :timeout
+ * ロックを獲得できなかった場合は _:timeout_秒間ロックの獲
+ * 得を試みる。 _:timeout_秒以内にロックを獲得できなかった
+ * 場合は例外が発生する。
+ * @option options :id
+ * _:id_で指定したレコードをロックする。(注: groonga側が
+ * 未実装のため、現在は無視される)
*/
static VALUE
rb_grn_column_lock (int argc, VALUE *argv, VALUE self)
{
grn_id id = GRN_ID_NIL;
@@ -466,24 +558,18 @@
return Qnil;
}
}
/*
- * Document-method: clear_lock
- *
- * call-seq:
- * column.clear_lock(options={})
- *
- * _column_のロックを強制的に解除する。
- *
- * 利用可能なオプションは以下の通り。
- *
- * [_:id_]
- * _:id_で指定したレコードのロックを強制的に解除する。
- * (注: groonga側が未実装のため、現在は無視される。実装さ
- * れるのではないかと思っているが、実装されないかもしれな
- * い。)
+ * _column_ のロックを強制的に解除する。
+ * @overload clear_lock(options={})
+ * @param [::Hash] options 利用可能なオプションは以下の通り。
+ * @option options :id
+ * _:id_で指定したレコードのロックを強制的に解除する。
+ * (注: groonga側が未実装のため、現在は無視される。実装さ
+ * れるのではないかと思っているが、実装されないかもしれな
+ * い。)
*/
static VALUE
rb_grn_column_clear_lock (int argc, VALUE *argv, VALUE self)
{
grn_id id = GRN_ID_NIL;
@@ -508,24 +594,18 @@
return Qnil;
}
/*
- * Document-method: locked?
- *
- * call-seq:
- * column.locked?(options={})
- *
* _column_ がロックされていれば +true+ を返す。
- *
- * 利用可能なオプションは以下の通り。
- *
- * [_:id_]
- * _:id_で指定したレコードがロックされていれば +true+ を返す。
- * (注: groonga側が未実装のため、現在は無視される。実装さ
- * れるのではないかと思っているが、実装されないかもしれな
- * い。)
+ * @overload locked?(options={})
+ * @param [::Hash] options 利用可能なオプションは以下の通り。
+ * @option options :id
+ * _:id_で指定したレコードがロックされていれば +true+ を返す。
+ * (注: groonga側が未実装のため、現在は無視される。実装さ
+ * れるのではないかと思っているが、実装されないかもしれな
+ * い。)
*/
static VALUE
rb_grn_column_is_locked (int argc, VALUE *argv, VALUE self)
{
grn_id id = GRN_ID_NIL;
@@ -680,18 +760,15 @@
return Qfalse;
}
}
/*
- * Document-method: indexes
- *
- * call-seq:
- * column.indexes(operator=Groonga::Operator::MATCH) -> [index_column, ...]
- *
- * _operation_ を実行できる _column_ のインデックスを返す。
- *
+ * _operator_ を実行できる _column_ のインデックスを返す。
* @since 1.0.9
+ * @return [Array<index_column>] _operator_ を実行できる _column_ のインデックス
+ * @overload indexes(operator=Groonga::Operator::MATCH)
+ * @param [Groonga::Operator::XXX] operator
*/
static VALUE
rb_grn_column_get_indexes (int argc, VALUE *argv, VALUE self)
{
grn_ctx *context;
@@ -729,18 +806,13 @@
xfree(indexes);
return rb_indexes;
}
/*
- * Document-method: rename
- *
- * call-seq:
- * table.rename(name)
- *
* Renames the table to name.
- *
- * @param name [String] the new name
* @since 1.3.0
+ * @overload rename(name)
+ * @param name [String] the new name
*/
static VALUE
rb_grn_column_rename (VALUE self, VALUE rb_name)
{
int rc;