Module: Filter::Matcher

Defined in:
lib/filter/matcher.rb

Constant Summary collapse

MAPPING =
{
  [NilClass] => Filter::Matchers::Nil,
  [TrueClass, FalseClass] => Filter::Matchers::Boolean,
  [Class, Module] => Filter::Matchers::Class,
  [Array] => Filter::Matchers::Array,
  [Symbol, Proc, Method, UnboundMethod] => Filter::Matchers::Symbol,
  [Hash] => Filter::Matchers::Hash,
}

Class Method Summary collapse

Class Method Details

.new(pattern) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/filter/matcher.rb', line 20

def new(pattern)
  klass = nil

  MAPPING.each_pair do |classes, matcher_klass|
    klass = matcher_klass if classes.any? { |cls| pattern.is_a?(cls) }
  end

  klass = Filter::Matchers::Base if klass.nil?

  klass.new(pattern)
end