Class: MilkTea::PackageGraph
- Inherits:
-
Object
- Object
- MilkTea::PackageGraph
- Defined in:
- lib/milk_tea/packages/graph.rb
Defined Under Namespace
Class Method Summary collapse
- .load(path, locked: false, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new) ⇒ Object
- .render_tree(path, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new) ⇒ Object
Instance Method Summary collapse
-
#initialize(path, source_resolver: PackageSourceResolver.new, registry_metadata_provider: PackageRegistryMetadataProvider.new) ⇒ PackageGraph
constructor
A new instance of PackageGraph.
- #load ⇒ Object
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.(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
#load ⇒ Object
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 |