Sha256: 369c49b5bfd3363cfe55bab56ed885197c07890a4c97e74a6f994305f489c5bd
Contents?: true
Size: 1.05 KB
Versions: 6
Compression:
Stored size: 1.05 KB
Contents
# frozen-string-literal: true module Leftovers module MatcherBuilders module NodeHasPositionalArgument class << self def build(positions, value_matcher) # rubocop:disable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity, Metrics/MethodLength if positions && value_matcher ::Leftovers::MatcherBuilders::Or.each_or_self(positions) do |pos| if pos == '*' ::Leftovers::Matchers::NodeHasAnyPositionalArgumentWithValue.new(value_matcher) else ::Leftovers::Matchers::NodeHasPositionalArgumentWithValue.new(pos, value_matcher) end end elsif positions pos = 0 if ::Leftovers.each_or_self(positions).any? { |x| x == '*' } pos ||= ::Leftovers.each_or_self(positions).min ::Leftovers::Matchers::NodeHasPositionalArgument.new(pos) elsif value_matcher ::Leftovers::Matchers::NodeHasAnyPositionalArgumentWithValue.new(value_matcher) end end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems