Class: Mutant::Matcher::Method::Instance

Inherits:
Mutant::Matcher::Method show all
Defined in:
lib/mutant/matcher/method/instance.rb

Overview

Matcher for instance methods

Defined Under Namespace

Classes: Evaluator

Constant Summary

Constants inherited from Mutant::Matcher::Method

BLACKLIST, CLOSURE_WARNING_FORMAT, SOURCE_LOCATION_WARNING_FORMAT

Class Method Summary collapse

Methods inherited from Mutant::Matcher::Method

#call

Methods inherited from Mutant::Matcher

#call

Class Method Details

.new(scope, target_method) ⇒ Matcher::Method::Instance

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Dispatching builder, detects memoizable case

Parameters:

  • scope (Class, Module)
  • method (UnboundMethod)

Returns:



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/mutant/matcher/method/instance.rb', line 15

def self.new(scope, target_method)
  name = target_method.name
  evaluator =
    if scope.include?(Memoizable) && scope.memoized?(name)
      Evaluator::Memoized
    else
      Evaluator
    end

  super(scope, target_method, evaluator)
end