Class: Yoda::Evaluation::CurrentNodeExplain
- Inherits:
-
Object
- Object
- Yoda::Evaluation::CurrentNodeExplain
- Defined in:
- lib/yoda/evaluation/current_node_explain.rb
Instance Attribute Summary collapse
- #location ⇒ Parsing::Location readonly
- #registry ⇒ Store::Registry readonly
- #source ⇒ String readonly
Instance Method Summary collapse
- #current_node_signature ⇒ Model::NodeSignature?
- #defined_files ⇒ Array<(String, Integer, Integer)>
-
#initialize(registry, source, location) ⇒ CurrentNodeExplain
constructor
A new instance of CurrentNodeExplain.
- #valid? ⇒ true, false
Constructor Details
#initialize(registry, source, location) ⇒ CurrentNodeExplain
Returns a new instance of CurrentNodeExplain.
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
#location ⇒ Parsing::Location (readonly)
11 12 13 |
# File 'lib/yoda/evaluation/current_node_explain.rb', line 11 def location @location end |
#registry ⇒ Store::Registry (readonly)
5 6 7 |
# File 'lib/yoda/evaluation/current_node_explain.rb', line 5 def registry @registry end |
#source ⇒ String (readonly)
8 9 10 |
# File 'lib/yoda/evaluation/current_node_explain.rb', line 8 def source @source end |
Instance Method Details
#current_node_signature ⇒ Model::NodeSignature?
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_files ⇒ 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
29 30 31 |
# File 'lib/yoda/evaluation/current_node_explain.rb', line 29 def valid? !!(current_node) end |