Class: Composed::Positional::OverrideStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/composed/positional.rb

Instance Method Summary collapse

Instance Method Details

#call(args, injected) ⇒ Object

Raises:

  • (ArgumentError)


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/composed/positional.rb', line 33

def call(args, injected)
  missing = 0
  injected.each do |idx,value|
    if args.size == idx
      args[idx] = value.call
    elsif args.size < idx
      missing += 1
    end
  end

  raise ArgumentError, <<~ERROR if missing > 0
    wrong number of arguments (given #{args.size}, expected #{args.size + missing}
  ERROR

  args
end