Class: Solargraph::DocMap

Inherits:
Object
  • Object
show all
Defined in:
lib/solargraph/doc_map.rb

Overview

A collection of pins generated from required gems.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(requires, preferences, rbs_path = nil) ⇒ DocMap

Returns a new instance of DocMap.

Parameters:

  • requires (Array<String>)
  • preferences (Array<Gem::Specification>)
  • rbs_path (String, Pathname, nil) (defaults to: nil)


22
23
24
25
26
27
# File 'lib/solargraph/doc_map.rb', line 22

def initialize(requires, preferences, rbs_path = nil)
  @requires = requires.compact
  @preferences = preferences.compact
  @rbs_path = rbs_path
  generate
end

Instance Attribute Details

#pinsArray<Pin::Base> (readonly)

Returns:



14
15
16
# File 'lib/solargraph/doc_map.rb', line 14

def pins
  @pins
end

#preferencesArray<Gem::Specification> (readonly)

Returns:

  • (Array<Gem::Specification>)


11
12
13
# File 'lib/solargraph/doc_map.rb', line 11

def preferences
  @preferences
end

#requiresArray<String> (readonly)

Returns:

  • (Array<String>)


8
9
10
# File 'lib/solargraph/doc_map.rb', line 8

def requires
  @requires
end

#uncached_gemspecsArray<Gem::Specification> (readonly)

Returns:

  • (Array<Gem::Specification>)


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

def uncached_gemspecs
  @uncached_gemspecs
end

Class Method Details

.gems_in_memoryHash{Gem::Specification => Array[Pin::Base]}

Returns:

  • (Hash{Gem::Specification => Array[Pin::Base]})


40
41
42
# File 'lib/solargraph/doc_map.rb', line 40

def self.gems_in_memory
  @gems_in_memory ||= {}
end

Instance Method Details

#dependenciesSet<Gem::Specification>

Returns:

  • (Set<Gem::Specification>)


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

def dependencies
  @dependencies ||= (gemspecs.flat_map { |spec| fetch_dependencies(spec) } - gemspecs).to_set
end

#gemspecsArray<Gem::Specification>

Returns:

  • (Array<Gem::Specification>)


30
31
32
# File 'lib/solargraph/doc_map.rb', line 30

def gemspecs
  @gemspecs ||= required_gem_map.values.compact
end

#unresolved_requiresArray<String>

Returns:

  • (Array<String>)


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

def unresolved_requires
  @unresolved_requires ||= required_gem_map.select { |_, gemspec| gemspec.nil? }.keys
end