Class: RDoc::Parser::PrismRuby::RDocVisitor::MethodSignatureVisitor
- Inherits:
-
Prism::Visitor
- Object
- Prism::Visitor
- RDoc::Parser::PrismRuby::RDocVisitor::MethodSignatureVisitor
- Defined in:
- lib/rdoc/parser/prism_ruby.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#calls_super ⇒ Object
readonly
Returns the value of attribute calls_super.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#yields ⇒ Object
readonly
Returns the value of attribute yields.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ MethodSignatureVisitor
constructor
A new instance of MethodSignatureVisitor.
- #visit_def_node(node) ⇒ Object
- #visit_forwarding_super_node(node) ⇒ Object
- #visit_super_node(node) ⇒ Object
- #visit_yield_node(node) ⇒ Object
Constructor Details
#initialize ⇒ MethodSignatureVisitor
Returns a new instance of MethodSignatureVisitor.
1088 1089 1090 1091 1092 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1088 def initialize @params = nil @calls_super = false @yields = [] end |
Instance Attribute Details
#calls_super ⇒ Object (readonly)
Returns the value of attribute calls_super.
1086 1087 1088 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1086 def calls_super @calls_super end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
1086 1087 1088 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1086 def params @params end |
#yields ⇒ Object (readonly)
Returns the value of attribute yields.
1086 1087 1088 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1086 def yields @yields end |
Class Method Details
.scan_signature(def_node) ⇒ Object
1077 1078 1079 1080 1081 1082 1083 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1077 def scan_signature(def_node) visitor = new def_node.body&.accept(visitor) params = "(#{def_node.parameters&.slice})" block_params = visitor.yields.first [params, block_params, visitor.calls_super] end |
Instance Method Details
#visit_def_node(node) ⇒ Object
1094 1095 1096 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1094 def visit_def_node(node) # stop traverse inside nested def end |
#visit_forwarding_super_node(node) ⇒ Object
1107 1108 1109 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1107 def visit_forwarding_super_node(node) @calls_super = true end |
#visit_super_node(node) ⇒ Object
1102 1103 1104 1105 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1102 def visit_super_node(node) @calls_super = true super end |
#visit_yield_node(node) ⇒ Object
1098 1099 1100 |
# File 'lib/rdoc/parser/prism_ruby.rb', line 1098 def visit_yield_node(node) @yields << (node.arguments&.slice || '') end |