Module: Solargraph::ApiMap::SourceToYard
- Included in:
- Solargraph::ApiMap, YardMap::RdocToYard
- Defined in:
- lib/solargraph/api_map/source_to_yard.rb
Instance Method Summary collapse
-
#code_object_at(path) ⇒ YARD::CodeObjects::Base
Get the YARD CodeObject at the specified path.
- #code_object_paths ⇒ Array<String>
- #rake_yard(store) ⇒ void
Instance Method Details
#code_object_at(path) ⇒ YARD::CodeObjects::Base
Get the YARD CodeObject at the specified path.
11 12 13 |
# File 'lib/solargraph/api_map/source_to_yard.rb', line 11 def code_object_at path code_object_map[path] end |
#code_object_paths ⇒ Array<String>
16 17 18 |
# File 'lib/solargraph/api_map/source_to_yard.rb', line 16 def code_object_paths code_object_map.keys end |
#rake_yard(store) ⇒ void
This method returns an undefined value.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/solargraph/api_map/source_to_yard.rb', line 22 def rake_yard store YARD::Registry.clear code_object_map.clear store.namespace_pins.each do |pin| next if pin.path.nil? || pin.path.empty? if pin.code_object code_object_map[pin.path] ||= pin.code_object next end if pin.type == :class code_object_map[pin.path] ||= YARD::CodeObjects::ClassObject.new(root_code_object, pin.path) { |obj| next if pin.location.nil? || pin.location.filename.nil? obj.add_file(pin.location.filename, pin.location.range.start.line, !pin.comments.empty?) } else code_object_map[pin.path] ||= YARD::CodeObjects::ModuleObject.new(root_code_object, pin.path) { |obj| next if pin.location.nil? || pin.location.filename.nil? obj.add_file(pin.location.filename, pin.location.range.start.line, !pin.comments.empty?) } end code_object_map[pin.path].docstring = pin.docstring store.get_includes(pin.path).each do |ref| code_object_map[pin.path].instance_mixins.push code_object_map[ref] unless code_object_map[ref].nil? or code_object_map[pin.path].nil? end store.get_extends(pin.path).each do |ref| code_object_map[pin.path].instance_mixins.push code_object_map[ref] unless code_object_map[ref].nil? or code_object_map[pin.path].nil? code_object_map[pin.path].class_mixins.push code_object_map[ref] unless code_object_map[ref].nil? or code_object_map[pin.path].nil? end end store.method_pins.each do |pin| if pin.code_object code_object_map[pin.path] ||= pin.code_object next end code_object_map[pin.path] ||= YARD::CodeObjects::MethodObject.new(code_object_at(pin.namespace), pin.name, pin.scope) { |obj| next if pin.location.nil? || pin.location.filename.nil? obj.add_file pin.location.filename, pin.location.range.start.line } code_object_map[pin.path].docstring = pin.docstring code_object_map[pin.path].visibility = pin.visibility || :public code_object_map[pin.path].parameters = pin.parameters.map do |p| [p.name, p.asgn_code] end end end |