class Rinda::Template + Rinda::Tuple
クラスの継承リスト: Rinda::Template < Rinda::Tuple < Object < Kernel < BasicObject
要約
タプルのマッチングのためのクラスです。 ユーザがこのクラスを直接使うことはありません。
例
require 'rinda/rinda' template = Rinda::Template.new(['abc', nil, nil]) template.match(['abc', 2, 5]) # => true template.match(['hoge', 2, 5]) # => false template = Rinda::Template.new([String, Integer, nil]) template.match(['abc', 2, 5]) # => true template.match(['abcd', 2, 5]) # => true template = Rinda::Template.new([/^abc/, Integer, nil]) template.match([/^abc/, Integer, nil]) # => true template.match(['abc', 2, 5]) # => true template.match(['def', 2, 5]) # => false template = Rinda::Template.new({'name' => String, 'age' => Integer}) template.match({'name' => 'seki', 'age' => 0x20}) # => true template.match({'name' => :seki, 'age' => 0x20}) # => false
特異メソッド
new(ah)
-
[TODO]
Tuple オブジェクトを生成します。 ah には Array オブジェクトか Hash オブジェクトを与えます。 Hash オブジェクトを与える場合、 キーはすべて文字列でなければいけません。
インスタンスメソッド
self === tuple
match(tuple)
-
[TODO]
self と tuple のサイズが同じで、 self の各要素が tuple にマッチする場合は真を返します。 マッチングの検査には Rinda::Tuple#== と Rinda::Tuple#=== を用います。 nil はワイルドカードです。
self[key]
-
[TODO]
ハッシュキー key に対応する要素を返します。 self が Array オブジェクトから生成された場合は、 整数 key を与えるとそのインデックスに対応する要素を返します。
each {|key, value| ... }
-
[TODO]
各ハッシュキー key と値 value のペアを引数としてブロックを評価します。 self が Array オブジェクトから生成された場合は、 インデックスと値のペアを引数としてブロックを評価します。
fetch(key)
-
[TODO]
ハッシュキー key に対応する要素を返します。
size
-
[TODO]
サイズを整数で返します。
value
-
[TODO]
自身が保持しているハッシュか配列を返します。
class Rinda::Template