Method: ActiveOperation::Base#initialize
- Defined in:
- lib/active_operation/base.rb
#initialize(*args) ⇒ Base
Returns a new instance of Base.
99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/active_operation/base.rb', line 99 def initialize(*args) arity = self.class.inputs.count(&:positional?) arguments = args.shift(arity) attributes = args.last.kind_of?(Hash) ? args.pop : {} raise ArgumentError, "wrong number of arguments #{arguments.length + args.length} for #{arity}" unless args.empty? self.class.inputs.select(&:positional?).each_with_index do |input, index| attributes[input.name] = arguments[index] end super(attributes) end |