Sha256: edcce7aab2005751f75ff1e298782f42262230a007a782280f00a8ba8d994377
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
module Librarian # # Represents the output of the resolution process. Captures the declared # dependencies plus the full set of resolved manifests. The sources are # already known by the dependencies and by the resolved manifests, so they do # not need to be captured explicitly. # # This representation may be produced by the resolver, may be serialized into # a lockfile, and may be deserialized from a lockfile. It is expected that the # lockfile is a direct representation in text of this representation, so that # the serialization-deserialization process is just the identity function. # class Resolution attr_accessor :dependencies, :manifests, :manifests_index private :dependencies=, :manifests=, :manifests_index= def initialize(dependencies, manifests) self.dependencies = dependencies self.manifests = manifests self.manifests_index = build_manifests_index(manifests) end def correct? manifests && manifests_consistent_with_dependencies? && manifests_internally_consistent? end def sources manifests.map{|m| m.source}.uniq end private def build_manifests_index(manifests) Hash[manifests.map{|m| [m.name, m]}] if manifests end def manifests_consistent_with_dependencies? ManifestSet.new(manifests).in_compliance_with?(dependencies) end def manifests_internally_consistent? ManifestSet.new(manifests).consistent? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
librarian-0.0.25 | lib/librarian/resolution.rb |