Module: OllamaAgent::Topology::Extractors::RubySemanticExtractor::ParameterList
- Defined in:
- lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb
Overview
Builds a flat parameter descriptor list from a Prism parameters node.
Class Method Summary collapse
- .block_part(params_node) ⇒ Object
- .build(params_node) ⇒ Object
- .keyword_entry(param) ⇒ Object
- .keyword_parts(params_node) ⇒ Object
- .kwrest_part(params_node) ⇒ Object
- .optional_positionals(params_node) ⇒ Object
- .positional(params_node) ⇒ Object
- .rest_part(params_node) ⇒ Object
Class Method Details
.block_part(params_node) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb', line 61 def block_part(params_node) blk = params_node.block return [] unless blk [{ kind: "block", name: (blk.name || :block).to_s }] end |
.build(params_node) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb', line 13 def build(params_node) return [] unless params_node.is_a?(Prism::ParametersNode) positional(params_node) + optional_positionals(params_node) + rest_part(params_node) + keyword_parts(params_node) + kwrest_part(params_node) + block_part(params_node) end |
.keyword_entry(param) ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb', line 43 def keyword_entry(param) case param when Prism::RequiredKeywordParameterNode [{ kind: "keyword_required", name: param.name.to_s }] when Prism::OptionalKeywordParameterNode [{ kind: "keyword_optional", name: param.name.to_s }] else [] end end |
.keyword_parts(params_node) ⇒ Object
39 40 41 |
# File 'lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb', line 39 def keyword_parts(params_node) params_node.keywords.flat_map { |p| keyword_entry(p) } end |
.kwrest_part(params_node) ⇒ Object
54 55 56 57 58 59 |
# File 'lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb', line 54 def kwrest_part(params_node) kwrest = params_node.keyword_rest return [] unless kwrest [{ kind: "kwrest", name: (kwrest.name || :kwrest).to_s }] end |
.optional_positionals(params_node) ⇒ Object
28 29 30 |
# File 'lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb', line 28 def optional_positionals(params_node) params_node.optionals.map { |p| { kind: "optional_positional", name: p.name.to_s } } end |
.positional(params_node) ⇒ Object
24 25 26 |
# File 'lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb', line 24 def positional(params_node) params_node.requireds.map { |p| { kind: "positional", name: p.name.to_s } } end |
.rest_part(params_node) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb', line 32 def rest_part(params_node) rest = params_node.rest return [] unless rest [{ kind: "rest", name: (rest.name || :args).to_s }] end |