Class: MilkTea::PackageGraph

Inherits:
Object
  • Object
show all
Defined in:
lib/milk_tea/packages/graph.rb

Defined Under Namespace

Classes: Edge, Node

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new) ⇒ PackageGraph

Returns a new instance of PackageGraph.



16
17
18
19
20
21
22
23
# File 'lib/milk_tea/packages/graph.rb', line 16

def initialize(path, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new)
  @path = File.expand_path(path)
  @source_resolver = source_resolver
  @graph_source_resolver = source_resolver
  @registry_metadata_provider = 
  @nodes_by_manifest_path = {}
  @build_stack = []
end

Class Method Details

.load(path, locked: false, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new) ⇒ Object



10
11
12
13
14
# File 'lib/milk_tea/packages/graph.rb', line 10

def self.load(path, locked: false, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new)
  return PackageLock.load(path, source_resolver:) if locked

  new(path, source_resolver:, registry_metadata_provider:).load
end

.render_tree(path, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new) ⇒ Object



31
32
33
# File 'lib/milk_tea/packages/graph.rb', line 31

def self.render_tree(path, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new)
  load(path, source_resolver:, registry_metadata_provider:).tree_lines.join("\n")
end

Instance Method Details

#loadObject



25
26
27
28
29
# File 'lib/milk_tea/packages/graph.rb', line 25

def load
  root_manifest = PackageManifest.load(@path)
  @graph_source_resolver = resolve_graph_source_resolver(root_manifest)
  build_node(root_manifest, source: @graph_source_resolver.source_for_manifest(root_manifest))
end