Class: ActionHandler::ArgsMaker

Inherits:
Object
  • Object
show all
Defined in:
lib/action_handler/args_maker.rb

Instance Method Summary collapse

Instance Method Details

#make_args(parameters, supplier, context: nil) ⇒ Object

TODO: Support optional arguments and keyword arguments.



7
8
9
10
11
12
13
14
15
16
# File 'lib/action_handler/args_maker.rb', line 7

def make_args(parameters, supplier, context: nil)
  supplier_args = [context].compact
  parameters.inject([]) do |values, (_, name)|
    unless supplier.respond_to?(name)
      raise ArgumentError, "parameter #{name} is not defined in #{supplier}"
    end

    values << supplier.send(name, *supplier_args)
  end
end