Class: OllamaAgent::State::ASTSummarizer::SummaryVisitor
- Inherits:
-
Prism::Visitor
- Object
- Prism::Visitor
- OllamaAgent::State::ASTSummarizer::SummaryVisitor
- Defined in:
- lib/ollama_agent/state/ast_summarizer.rb
Overview
Walks a single compilation unit and builds the summary payload.
Instance Method Summary collapse
-
#initialize(source, touched) ⇒ SummaryVisitor
constructor
A new instance of SummaryVisitor.
- #to_summary ⇒ Object
- #visit_call_node(node) ⇒ Object
- #visit_class_node(node) ⇒ Object
- #visit_constant_write_node(node) ⇒ Object
- #visit_def_node(node) ⇒ Object
- #visit_module_node(node) ⇒ Object
Constructor Details
#initialize(source, touched) ⇒ SummaryVisitor
Returns a new instance of SummaryVisitor.
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/ollama_agent/state/ast_summarizer.rb', line 50 def initialize(source, touched) super() @source = source @touched = touched @requires = [] @constants = [] @scope_methods = Hash.new { |h, k| h[k] = [] } @touched_bodies = {} @class_stack = ["(main)"] @scope_methods["(main)"] = [] end |
Instance Method Details
#to_summary ⇒ Object
89 90 91 92 93 94 95 96 |
# File 'lib/ollama_agent/state/ast_summarizer.rb', line 89 def to_summary { classes: classes_payload, constants: @constants.uniq.sort, requires: @requires.compact.uniq.sort, touched_method_bodies: @touched_bodies } end |
#visit_call_node(node) ⇒ Object
79 80 81 82 |
# File 'lib/ollama_agent/state/ast_summarizer.rb', line 79 def visit_call_node(node) capture_require(node) super end |
#visit_class_node(node) ⇒ Object
68 69 70 71 72 |
# File 'lib/ollama_agent/state/ast_summarizer.rb', line 68 def visit_class_node(node) push_scope(class_name(node)) super pop_scope end |
#visit_constant_write_node(node) ⇒ Object
84 85 86 87 |
# File 'lib/ollama_agent/state/ast_summarizer.rb', line 84 def visit_constant_write_node(node) @constants << node.name.to_s super end |
#visit_def_node(node) ⇒ Object
74 75 76 77 |
# File 'lib/ollama_agent/state/ast_summarizer.rb', line 74 def visit_def_node(node) record_method(node) super end |
#visit_module_node(node) ⇒ Object
62 63 64 65 66 |
# File 'lib/ollama_agent/state/ast_summarizer.rb', line 62 def visit_module_node(node) push_scope(module_name(node)) super pop_scope end |