Sha256: 36a6e45dc742e983b0d1251efcf807a199a19d0599635f19b68eb4273a32cd9d

Contents?: true

Size: 813 Bytes

Versions: 4

Compression:

Stored size: 813 Bytes

Contents

# frozen-string-literal: true

module Leftovers
  module MatcherBuilders
    module NodeHasPositionalArgument
      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
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
leftovers-0.4.3 lib/leftovers/matcher_builders/node_has_positional_argument.rb
leftovers-0.4.2 lib/leftovers/matcher_builders/node_has_positional_argument.rb
leftovers-0.4.1 lib/leftovers/matcher_builders/node_has_positional_argument.rb
leftovers-0.4.0 lib/leftovers/matcher_builders/node_has_positional_argument.rb