class Solargraph::RbsMap

def self.from_gemspec(gemspec)

def self.from_gemspec(gemspec)
  RbsMap.new(gemspec.name, gemspec.version)
end

def self.load library

Returns:
  • (RbsMap) -

Parameters:
  • library (String) --
def self.load library
  @@rbs_maps_hash[library] ||= RbsMap.new(library)
end

def add_library loader, library, version

Returns:
  • (Boolean) - true if adding the library succeeded

Parameters:
  • library (String) --
  • loader (RBS::EnvironmentLoader) --
def add_library loader, library, version
  @resolved = if loader.has_library?(library: library, version: version)
    loader.add library: library, version: version
    Solargraph.logger.info "#{short_name} successfully loaded library #{library}"
    true
  else
    Solargraph.logger.info "#{short_name} failed to load library #{library}"
    false
  end
end

def initialize library, version = nil, directories: []

Parameters:
  • directories (Array) --
  • version (String, nil) --
  • library (String) --
def initialize library, version = nil, directories: []
  @library = library
  @version = version
  @collection = nil
  @directories = directories
  loader = RBS::EnvironmentLoader.new(core_root: nil, repository: repository)
  add_library loader, library, version
  return unless resolved?
  load_environment_to_pins(loader)
end

def path_pin path, klass = Pin::Base

Returns:
  • (generic, nil) -

Parameters:
  • klass (Class>) --
  • path (String) --
def path_pin path, klass = Pin::Base
  pin = pins.find { |p| p.path == path }
  pin if pin&.is_a?(klass)
end

def path_pins path

Returns:
  • (Array) -

Parameters:
  • path (String) --
def path_pins path
  pins.select { |p| p.path == path }
end

def repository

def repository
  @repository ||= RBS::Repository.new(no_stdlib: false).tap do |repo|
    # @todo Temporarily ignoring external directories due to issues with

    #   incomplete/broken gem_rbs_collection installations

    # @directories.each { |dir| repo.add(Pathname.new(dir)) }

  end
end

def resolved?

def resolved?
  @resolved
end

def short_name

Returns:
  • (String) -
def short_name
  self.class.name.split('::').last
end