class Solargraph::RbsMap
Attributes
library[R]
Public Class Methods
load(library)
click to toggle source
@param library [String] @return [RbsMap]
# File lib/solargraph/rbs_map.rb, line 45 def self.load library @@rbs_maps_hash[library] ||= RbsMap.new(library) end
new(library)
click to toggle source
@param library [String]
# File lib/solargraph/rbs_map.rb, line 22 def initialize library @library = library loader = RBS::EnvironmentLoader.new(core_root: nil, repository: repository) add_library loader, library return unless resolved? environment = RBS::Environment.from_loader(loader).resolve_type_names environment.declarations.each { |decl| convert_decl_to_pin(decl, Solargraph::Pin::ROOT_PIN) } end
Public Instance Methods
path_pin(path)
click to toggle source
# File lib/solargraph/rbs_map.rb, line 31 def path_pin path pins.find { |p| p.path == path } end
path_pins(path)
click to toggle source
# File lib/solargraph/rbs_map.rb, line 35 def path_pins path pins.select { |p| p.path == path } end
repository()
click to toggle source
# File lib/solargraph/rbs_map.rb, line 49 def repository @repository ||= RBS::Repository.new(no_stdlib: true) end
resolved?()
click to toggle source
# File lib/solargraph/rbs_map.rb, line 39 def resolved? @resolved end
Private Instance Methods
add_library(loader, library)
click to toggle source
@param loader [RBS::EnvironmentLoader] @param library [String] @return [Boolean] true if adding the library succeeded
# File lib/solargraph/rbs_map.rb, line 58 def add_library loader, library @resolved = if loader.has_library?(library: library, version: nil) loader.add library: library Solargraph.logger.info "#{short_name} successfully loaded library #{library}" true else Solargraph.logger.info "#{short_name} failed to load library #{library}" false end end
short_name()
click to toggle source
# File lib/solargraph/rbs_map.rb, line 69 def short_name self.class.name.split('::').last end