Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > rinda/rindaライブラリ > Rinda::Templateクラス

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