Class: Yoda::Evaluation::CurrentNodeExplain

Inherits:
Object
  • Object
show all
Defined in:
lib/yoda/evaluation/current_node_explain.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(registry, source, location) ⇒ CurrentNodeExplain

Returns a new instance of CurrentNodeExplain.

Parameters:



16
17
18
19
20
# File 'lib/yoda/evaluation/current_node_explain.rb', line 16

def initialize(registry, source, location)
  @registry = registry
  @source = source
  @location = location
end

Instance Attribute Details

#locationParsing::Location (readonly)

Returns:



11
12
13
# File 'lib/yoda/evaluation/current_node_explain.rb', line 11

def location
  @location
end

#registryStore::Registry (readonly)

Returns:



5
6
7
# File 'lib/yoda/evaluation/current_node_explain.rb', line 5

def registry
  @registry
end

#sourceString (readonly)

Returns:

  • (String)


8
9
10
# File 'lib/yoda/evaluation/current_node_explain.rb', line 8

def source
  @source
end

Instance Method Details

#current_node_signatureModel::NodeSignature?

Returns:



23
24
25
26
# File 'lib/yoda/evaluation/current_node_explain.rb', line 23

def current_node_signature
  return nil if !valid? || !current_node_trace
  @current_node_signature ||= Model::NodeSignature.new(current_node, current_node_trace)
end

#defined_filesArray<(String, Integer, Integer)>

Returns:

  • (Array<(String, Integer, Integer)>)


34
35
36
37
38
39
40
41
42
43
44
# File 'lib/yoda/evaluation/current_node_explain.rb', line 34

def defined_files
  return [] if !valid? || !current_node_trace
  case current_node.type
  when :send
    current_node_trace.functions.map { |function| function.primary_source }.compact
  when :const
    current_node_trace.values.map { |value| value.primary_source || value.sources.first }.compact
  else
    []
  end
end

#valid?true, false

Returns:

  • (true, false)


29
30
31
# File 'lib/yoda/evaluation/current_node_explain.rb', line 29

def valid?
  !!(current_node)
end