Sha256: 902b7765795ee60004a9b5f6be27e022f4cbf421cbf32ce7c24b40c24418c315
Contents?: true
Size: 1.32 KB
Versions: 6
Compression:
Stored size: 1.32 KB
Contents
# frozen-string-literal: true module Leftovers module MatcherBuilders module Node def self.build(pattern) ::Leftovers::MatcherBuilders::Or.each_or_self(pattern) do |pat| case pat when ::String ::Leftovers::MatcherBuilders::NodeName.build(pat) when ::Hash build_from_hash(**pat) # :nocov: else raise # :nocov: end end end def self.build_from_hash( # rubocop:disable Metrics/ParameterLists, Metrics/MethodLength names: nil, match: nil, has_prefix: nil, has_suffix: nil, paths: nil, has_arguments: nil, has_receiver: nil, unless_arg: nil ) ::Leftovers::MatcherBuilders::And.build([ ::Leftovers::MatcherBuilders::NodeName.build([ names, { match: match, has_prefix: has_prefix, has_suffix: has_suffix }.compact ]), ::Leftovers::MatcherBuilders::NodePath.build(paths), ::Leftovers::MatcherBuilders::NodeHasArgument.build(has_arguments), ::Leftovers::MatcherBuilders::NodeHasReceiver.build(has_receiver), ::Leftovers::MatcherBuilders::Unless.build( (::Leftovers::MatcherBuilders::Node.build(unless_arg) if unless_arg) ) ]) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems