Sha256: 54df3b40cf3d010bd94540d38b6108613f4bbbfe743b4d94712465f254ef8847

Contents?: true

Size: 854 Bytes

Versions: 5

Compression:

Stored size: 854 Bytes

Contents

# frozen_string_literal: true

module Leftovers
  module MatcherBuilders
    module Name
      class << self
        def build(patterns)
          ::Leftovers::MatcherBuilders::Or.each_or_self(patterns) do |pat|
            case pat
            when ::String then ::Leftovers::MatcherBuilders::String.build(pat)
            when ::Hash then build_from_hash(**pat)
            # :nocov:
            else raise Leftovers::UnexpectedCase, "Unhandled value #{pat.inspect}"
              # :nocov:
            end
          end
        end

        private

        def build_from_hash(unless_arg: nil, **pattern)
          ::Leftovers::MatcherBuilders::AndNot.build(
            ::Leftovers::MatcherBuilders::StringPattern.build(**pattern),
            ::Leftovers::MatcherBuilders::Name.build(unless_arg)
          )
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
leftovers-0.11.1 lib/leftovers/matcher_builders/name.rb
leftovers-0.11.0 lib/leftovers/matcher_builders/name.rb
leftovers-0.10.0 lib/leftovers/matcher_builders/name.rb
leftovers-0.9.0 lib/leftovers/matcher_builders/name.rb
leftovers-0.8.0 lib/leftovers/matcher_builders/name.rb