Sha256: fd1dd559f3620674fdf07ab496c7f19e667ded4b4caf00669f318454aba5ceb8

Contents?: true

Size: 665 Bytes

Versions: 4

Compression:

Stored size: 665 Bytes

Contents

# frozen_string_literal: true

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

        private

        def build_from_hash(unless_arg: nil, **pattern)
          And.build([StringPattern.build(**pattern), Unless.build(build(unless_arg))])
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
leftovers-0.12.2 lib/leftovers/matcher_builders/name.rb
leftovers-0.12.1 lib/leftovers/matcher_builders/name.rb
leftovers-0.12.0 lib/leftovers/matcher_builders/name.rb
leftovers-0.11.2 lib/leftovers/matcher_builders/name.rb