Module: Transpec::Syntax::Mixin::MatcherOwner::ClassMethods

Defined in:
lib/transpec/syntax/mixin/matcher_owner.rb

Instance Method Summary collapse

Instance Method Details

#add_matcher(matcher_class) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/transpec/syntax/mixin/matcher_owner.rb', line 12

def add_matcher(matcher_class)
  accessor = "#{matcher_class.snake_case_name}_matcher"
  ivar = "@#{accessor}"

  define_method(accessor) do
    return instance_variable_get(ivar) if instance_variable_defined?(ivar)
    matcher = matcher_class.new(
      matcher_node, self, runtime_data, project, source_rewriter, report
    )
    instance_variable_set(ivar, matcher)
  end

  matcher_accessors << accessor
end

#matcher_accessorsObject



27
28
29
# File 'lib/transpec/syntax/mixin/matcher_owner.rb', line 27

def matcher_accessors
  @matcher_accessors ||= []
end