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) ⇒ DocMap

Returns a new instance of DocMap.

Parameters:

  • requires (Array<String>)
  • preferences (Array<Gem::Specification>)


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

def initialize(requires, preferences)
  @requires = requires.compact
  @preferences = preferences.compact
  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]})


38
39
40
# File 'lib/solargraph/doc_map.rb', line 38

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

Instance Method Details

#dependenciesObject



42
43
44
# File 'lib/solargraph/doc_map.rb', line 42

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

#gemspecsArray<Gem::Specification>

Returns:

  • (Array<Gem::Specification>)


28
29
30
# File 'lib/solargraph/doc_map.rb', line 28

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

#unresolved_requiresArray<String>

Returns:

  • (Array<String>)


33
34
35
# File 'lib/solargraph/doc_map.rb', line 33

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