Class: Rinda::Tuple

Inherits:
Object
  • Object
show all
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

Template

Instance Method Summary collapse

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

#eachObject

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

#sizeObject

The number of elements in the tuple.



64
65
66
# File 'lib/rinda/rinda.rb', line 64

def size
  @tuple.size
end

#valueObject

Return the tuple itself



96
97
98
# File 'lib/rinda/rinda.rb', line 96

def value
  @tuple
end