Class: RubyLsp::Ree::ConstObjectsParser
- Inherits:
-
Object
- Object
- RubyLsp::Ree::ConstObjectsParser
- Defined in:
- lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/const_objects_parser.rb
Instance Attribute Summary collapse
-
#parsed_doc ⇒ Object
readonly
Returns the value of attribute parsed_doc.
Instance Method Summary collapse
- #class_const_objects ⇒ Object
-
#initialize(parsed_doc) ⇒ ConstObjectsParser
constructor
A new instance of ConstObjectsParser.
- #method_const_objects(method_object) ⇒ Object
Constructor Details
#initialize(parsed_doc) ⇒ ConstObjectsParser
Returns a new instance of ConstObjectsParser.
6 7 8 9 |
# File 'lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/const_objects_parser.rb', line 6 def initialize(parsed_doc) @parsed_doc = parsed_doc @body_parser = RubyLsp::Ree::BodyObjectsParser.new(:const_object) end |
Instance Attribute Details
#parsed_doc ⇒ Object (readonly)
Returns the value of attribute parsed_doc.
4 5 6 |
# File 'lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/const_objects_parser.rb', line 4 def parsed_doc @parsed_doc end |
Instance Method Details
#class_const_objects ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/const_objects_parser.rb', line 11 def class_const_objects const_objects = [] return unless parsed_doc.has_body? const_objects += @body_parser.parse(parsed_doc.class_node.body.body) parsed_doc.parse_instance_methods parsed_doc.doc_instance_methods.each do |doc_instance_method| const_objects += method_const_objects(doc_instance_method) end const_objects end |
#method_const_objects(method_object) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/const_objects_parser.rb', line 25 def method_const_objects(method_object) method_body = method_object.full_method_body return [] unless method_body const_objects = @body_parser.parse([method_body]) if method_object.has_contract? const_objects += @body_parser.parse([method_object.contract_node]) end const_objects end |