Class: MetzScan::Analyzers::RepeatedBranching::PredicateChain

Inherits:
Object
  • Object
show all
Defined in:
lib/metz_scan/analyzers/repeated_branching/predicate_chain.rb

Defined Under Namespace

Classes: Predicate, Result

Instance Method Summary collapse

Constructor Details

#initialize(node) ⇒ PredicateChain

Returns a new instance of PredicateChain.



10
11
12
# File 'lib/metz_scan/analyzers/repeated_branching/predicate_chain.rb', line 10

def initialize(node)
  @node = node
end

Instance Method Details

#callObject



14
15
16
17
18
19
# File 'lib/metz_scan/analyzers/repeated_branching/predicate_chain.rb', line 14

def call
  predicates = predicate_chain
  return unless same_receiver_chain?(predicates)

  Result.new(decision: predicates.first.receiver, branch_values: predicate_values(predicates))
end