module ArgumentSpecification::DSL::Matchers

Public Class Methods

register(klass, name) click to toggle source

Register a matcher

Arguments:

klass: (ArgumentSpecification::Matchers::BaseMatcher)
name: (Symbol)

Example:

>> Matchers.register(TestMatcher, :test_matcher)
=> true
# File lib/argspec/dsl/matchers.rb, line 15
        def register(klass, name)
          return unless klass.ancestors.include?(ArgumentSpecification::Matchers::BaseMatcher)
          return unless name.is_a?(Symbol)

          module_eval <<-EOS
            def #{name}(*args, &block)
              instance = #{klass}.new(*args)
              instance.send(:setup, '#{name}'.to_sym, args)
              instance.send(:block=, block) if block_given?
              instance
            end
          EOS
        end