Class: Solargraph::DocMap

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

Overview

A collection of pins generated from required gems.

Constant Summary

Constants included from Logging

Logging::DEFAULT_LOG_LEVEL, Logging::LOG_LEVELS

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Logging

logger

Constructor Details

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

Returns a new instance of DocMap.

Parameters:

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


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

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

Instance Attribute Details

#pinsArray<Pin::Base> (readonly)

Returns:



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

def pins
  @pins
end

#preferencesArray<Gem::Specification> (readonly)

Returns:

  • (Array<Gem::Specification>)


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

def preferences
  @preferences
end

#requiresArray<String> (readonly)

Returns:

  • (Array<String>)


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

def requires
  @requires
end

#uncached_gemspecsArray<Gem::Specification> (readonly)

Returns:

  • (Array<Gem::Specification>)


19
20
21
# File 'lib/solargraph/doc_map.rb', line 19

def uncached_gemspecs
  @uncached_gemspecs
end

#workspaceWorkspace? (readonly)

Returns:



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

def workspace
  @workspace
end

Class Method Details

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

Returns:

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


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

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

Instance Method Details

#dependenciesSet<Gem::Specification>

Returns:

  • (Set<Gem::Specification>)


50
51
52
# File 'lib/solargraph/doc_map.rb', line 50

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

#gemspecsArray<Gem::Specification>

Returns:

  • (Array<Gem::Specification>)


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

def gemspecs
  @gemspecs ||= required_gems_map.values.compact.flatten
end

#unresolved_requiresArray<String>

Returns:

  • (Array<String>)


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

def unresolved_requires
  @unresolved_requires ||= required_gems_map.select { |_, gemspecs| gemspecs.nil? }.keys
end