class Mutest::Matcher::Method::Singleton::Evaluator

Singleton method evaluator

Constants

NAME_INDEX
RECEIVER_INDEX
RECEIVER_WARNING
SUBJECT_CLASS

Private Instance Methods

line?(node) click to toggle source

Test for line match

@param [Parser::AST::Node] node

@return [Boolean]

# File lib/mutest/matcher/method/singleton.rb, line 39
def line?(node)
  node
    .location
    .line
    .equal?(source_line)
end
match?(node) click to toggle source

Test for node match

@param [Parser::AST::Node] node

@return [Boolean]

# File lib/mutest/matcher/method/singleton.rb, line 30
def match?(node)
  n_defs?(node) && line?(node) && name?(node) && receiver?(node)
end
name?(node) click to toggle source

Test for name match

@param [Parser::AST::Node] node

@return [Boolean]

# File lib/mutest/matcher/method/singleton.rb, line 51
def name?(node)
  node.children.fetch(NAME_INDEX).equal?(method_name)
end
receiver?(node) click to toggle source

Test for receiver match

@param [Parser::AST::Node] node

@return [Boolean]

# File lib/mutest/matcher/method/singleton.rb, line 60
def receiver?(node)
  receiver = node.children.fetch(RECEIVER_INDEX)
  case receiver.type
  when :self
    true
  when :const
    receiver_name?(receiver)
  else
    env.warn(RECEIVER_WARNING % receiver.type)
    nil
  end
end
receiver_name?(node) click to toggle source

Test if receiver name matches context

@param [Parser::AST::Node] node

@return [Boolean]

# File lib/mutest/matcher/method/singleton.rb, line 78
def receiver_name?(node)
  name = node.children.fetch(NAME_INDEX)
  name.to_s.eql?(context.unqualified_name)
end