class TupleList

Attributes

keys[R]

Public Class Methods

new(required_keys, args = {}) click to toggle source
# File lib/tuplelist.rb, line 6
def initialize(required_keys, args = {})
  @keys = required_keys
  @current_tuple = {}
  @tuple_list = []

  @ignore = (args.delete :ignore) || false
end

Public Instance Methods

[]=(key, value) click to toggle source
# File lib/tuplelist.rb, line 14
def []=(key, value)
  if @keys.include? key
    @current_tuple[key] = value
  else
    raise "Unspecified key '#{key}' entered" unless @ignore
  end
end
each() { |values_at(*keys)| ... } click to toggle source
# File lib/tuplelist.rb, line 28
def each
  @tuple_list.each do |tuple_hash|
    yield tuple_hash.values_at(*@keys)
  end
end
next() click to toggle source
# File lib/tuplelist.rb, line 22
def next
  raise "No keys for #{@current_tuple.keys | @keys} specified" unless @current_tuple.length == @keys.length
  @tuple_list << @current_tuple
  @current_tuple = {}
end