Class: Solargraph::RbsMap

Inherits:
Object
  • Object
show all
Includes:
Conversions
Defined in:
lib/solargraph/rbs_map.rb,
lib/solargraph/rbs_map/core_map.rb,
lib/solargraph/rbs_map/core_fills.rb,
lib/solargraph/rbs_map/stdlib_map.rb,
lib/solargraph/rbs_map/conversions.rb

Direct Known Subclasses

StdlibMap

Defined Under Namespace

Modules: Conversions, CoreFills Classes: CoreMap, StdlibMap

Constant Summary collapse

@@rbs_maps_hash =
{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Conversions

#pins

Constructor Details

#initialize(library, version = nil) ⇒ RbsMap

Returns a new instance of RbsMap.

Parameters:

  • library (String)


20
21
22
23
24
25
26
27
28
# File 'lib/solargraph/rbs_map.rb', line 20

def initialize library, version = nil
  @library = library
  @version = version
  @collection = nil
  loader = RBS::EnvironmentLoader.new(core_root: nil, repository: repository)
  add_library loader, library, version
  return unless resolved?
  load_environment_to_pins(loader)
end

Instance Attribute Details

#libraryObject (readonly)

Returns the value of attribute library.



17
18
19
# File 'lib/solargraph/rbs_map.rb', line 17

def library
  @library
end

Class Method Details

.from_gemspec(gemspec) ⇒ Object



59
60
61
# File 'lib/solargraph/rbs_map.rb', line 59

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

.load(library) ⇒ RbsMap

Parameters:

  • library (String)

Returns:



55
56
57
# File 'lib/solargraph/rbs_map.rb', line 55

def self.load library
  @@rbs_maps_hash[library] ||= RbsMap.new(library)
end

Instance Method Details

#path_pin(path, klass = Pin::Base) ⇒ generic<T>?

Parameters:

  • path (String)
  • klass (Class<generic<T>>) (defaults to: Pin::Base)

Returns:

  • (generic<T>, nil)


34
35
36
37
# File 'lib/solargraph/rbs_map.rb', line 34

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

#path_pins(path) ⇒ Array<Pin::Base>

Parameters:

  • path (String)

Returns:



41
42
43
# File 'lib/solargraph/rbs_map.rb', line 41

def path_pins path
  pins.select { |p| p.path == path }
end

#repositoryObject



49
50
51
# File 'lib/solargraph/rbs_map.rb', line 49

def repository
  @repository ||= RBS::Repository.new(no_stdlib: false)
end

#resolved?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/solargraph/rbs_map.rb', line 45

def resolved?
  @resolved
end