class ParamsReady::Parameter::TupleParameter

Constants

ORDINALS

Public Instance Methods

method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/params_ready/parameter/tuple_parameter.rb, line 24
def method_missing(name, *args)
  integer = ordinal_to_integer(name)
  if integer.nil?
    super
  else
    self[integer - 1]
  end
end
respond_to_missing?(name, include_private = false) click to toggle source
Calls superclass method
# File lib/params_ready/parameter/tuple_parameter.rb, line 33
def respond_to_missing?(name, include_private = false)
  return true unless ordinal_to_integer(name).nil?
  super
end

Protected Instance Methods

element(index) click to toggle source
# File lib/params_ready/parameter/tuple_parameter.rb, line 40
def element(index)
  return nil if is_nil?

  value = bare_value
  if index < 0 || index >= value.length
    raise ParamsReadyError, "Index out of bounds: #{index}"
  else
    value[index]
  end
end
init_value() click to toggle source
# File lib/params_ready/parameter/tuple_parameter.rb, line 65
def init_value
  @value = []
  fields.each do |definition|
    @value << definition.create
  end
end
ordinal_to_integer(name) click to toggle source
# File lib/params_ready/parameter/tuple_parameter.rb, line 57
def ordinal_to_integer(name)
  integer = ORDINALS[name]
  return nil if integer.nil?
  return nil if definition.arity < integer

  integer
end