module Leftovers::MatcherBuilders::NodeHasPositionalArgument

Public Class Methods

build(positions, value_matcher) click to toggle source
# File lib/leftovers/matcher_builders/node_has_positional_argument.rb, line 6
def self.build(positions, value_matcher) # rubocop:disable Metrics/MethodLength
  if positions && value_matcher
    ::Leftovers::MatcherBuilders::Or.each_or_self(positions) do |position|
      ::Leftovers::Matchers::NodeHasPositionalArgumentWithValue.new(position, value_matcher)
    end
  elsif positions
    position = positions.is_a?(Array) ? positions.min : positions

    ::Leftovers::Matchers::NodeHasPositionalArgument.new(position)
  elsif value_matcher
    ::Leftovers::Matchers::NodeHasAnyPositionalArgumentWithValue.new(value_matcher)
  # :nocov:
  else raise
    # :nocov:
  end
end