class Quarrel::Controller

Attributes

args[R]
data[R]

Public Class Methods

new(data, *args) click to toggle source
# File lib/quarrel.rb, line 22
def initialize data, *args
  raise ArgumentError,
    "Must provide one or more specifications for named parameters." if args.empty?
  @data, @args = data, args
end

Public Instance Methods

pairs() click to toggle source
# File lib/quarrel.rb, line 36
def pairs
  params.each_with_object(data).map do |param, data|
    [param.name, param.apply(data)]
  end
end
params() click to toggle source
# File lib/quarrel.rb, line 28
def params
  Quarrel::Parser.parse(args, Quarrel::Parameter)
end
set_instance_variables(target) click to toggle source
# File lib/quarrel.rb, line 42
def set_instance_variables target
  pairs.each do |(name, value)|
    target.instance_variable_set :"@#{name}", value
  end
end
values() click to toggle source
# File lib/quarrel.rb, line 32
def values
  params.each_with_object(data).map &:apply
end