Class: Solargraph::Rails::RailsApi
- Defined in:
- lib/solargraph/rails/rails_api.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.instance ⇒ Object
4 5 6 |
# File 'lib/solargraph/rails/rails_api.rb', line 4 def self.instance @instance ||= self.new end |
Instance Method Details
#extra_source_maps ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/solargraph/rails/rails_api.rb', line 8 def extra_source_maps @extra_source_maps ||= Dir[File.join(__dir__, 'annotations', '*.rb')].to_h do |path| code = File.read(path) source = Solargraph::Source.load_string(code, path) map = Solargraph::SourceMap.map(source) [File.basename(path, '.rb'), map] end end |
#global(_doc_map) ⇒ Object
18 19 20 |
# File 'lib/solargraph/rails/rails_api.rb', line 18 def global(_doc_map) extra_source_maps.values.flat_map(&:pins) end |
#local(source_map, ns) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/solargraph/rails/rails_api.rb', line 22 def local(source_map, ns) return [] unless source_map.filename.include?('db/migrate') node, _ = Walker.normalize_ast(source_map.source) pins = [ Util.build_module_include( ns, 'ActiveRecord::ConnectionAdapters::SchemaStatements', Util.build_location(node, ns.filename) ), Util.build_module_extend( ns, 'ActiveRecord::ConnectionAdapters::SchemaStatements', Util.build_location(node, ns.filename) ) ] Solargraph.logger.debug( "[Rails][RailsApi] added #{pins.map(&:name)} to #{ns.path}" ) pins end |