class Composed::Positional::OverrideStrategy

Public Instance Methods

call(args, injected) click to toggle source
# 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