Class: Rinda::Tuple
- Inherits:
-
Object
- Object
- Rinda::Tuple
- Defined in:
- lib/rinda/rinda.rb
Overview
A tuple is the elementary object in Rinda programming. Tuples may be matched against templates if the tuple and the template are the same size.
Direct Known Subclasses
Instance Method Summary collapse
-
#[](k) ⇒ Object
Accessor method for elements of the tuple.
-
#each ⇒ Object
Iterate through the tuple, yielding the index or key, and the value, thus ensuring arrays are iterated similarly to hashes.
-
#fetch(k) ⇒ Object
Fetches item
k
from the tuple. -
#initialize(ary_or_hash) ⇒ Tuple
constructor
Creates a new Tuple from
ary_or_hash
which must be an Array or Hash. -
#size ⇒ Object
The number of elements in the tuple.
-
#value ⇒ Object
Return the tuple itself.
Constructor Details
#initialize(ary_or_hash) ⇒ Tuple
Creates a new Tuple from ary_or_hash
which must be an Array or Hash.
53 54 55 56 57 58 59 |
# File 'lib/rinda/rinda.rb', line 53 def initialize(ary_or_hash) if hash?(ary_or_hash) init_with_hash(ary_or_hash) else init_with_ary(ary_or_hash) end end |
Instance Method Details
#[](k) ⇒ Object
Accessor method for elements of the tuple.
71 72 73 |
# File 'lib/rinda/rinda.rb', line 71 def [](k) @tuple[k] end |
#each ⇒ Object
Iterate through the tuple, yielding the index or key, and the value, thus ensuring arrays are iterated similarly to hashes.
86 87 88 89 90 91 92 |
# File 'lib/rinda/rinda.rb', line 86 def each # FIXME if Hash === @tuple @tuple.each { |k, v| yield(k, v) } else @tuple.each_with_index { |v, k| yield(k, v) } end end |
#fetch(k) ⇒ Object
Fetches item k
from the tuple.
78 79 80 |
# File 'lib/rinda/rinda.rb', line 78 def fetch(k) @tuple.fetch(k) end |
#size ⇒ Object
The number of elements in the tuple.
64 65 66 |
# File 'lib/rinda/rinda.rb', line 64 def size @tuple.size end |
#value ⇒ Object
Return the tuple itself
96 97 98 |
# File 'lib/rinda/rinda.rb', line 96 def value @tuple end |