Sha256: a82a8f65dbc4029edbc6c6702d219125927e2166be2851066d9ccdbdee2f2395

Contents?: true

Size: 1.81 KB

Versions: 42

Compression:

Stored size: 1.81 KB

Contents

module Berkshelf
  class Resolver
    class Graph < Solve::Graph
      # @param [Berkshelf::CookbookStore] store
      def populate_store(store = nil)
        store ||= Berkshelf::CookbookStore.instance

        store.cookbooks.each do |cookbook|
          artifact(cookbook.cookbook_name, cookbook.version)

          cookbook.dependencies.each do |dependency, constraint|
            constraint = nil if constraint.empty?
            artifact(cookbook.cookbook_name, cookbook.version).depends(dependency, constraint)
          end
        end
      end

      # Add dependencies of a locally cached cookbook to the graph
      #
      # @param [Berkshelf::CachedCookbook] cookbook
      #
      # @return [Hash]
      def populate_local(cookbook)
        name    = cookbook.cookbook_name
        version = cookbook.version

        artifact(name, version)
        cookbook.dependencies.each do |dependency, constraint|
          constraint = nil if constraint.empty?
          artifact(name, version).depends(dependency, constraint)
        end
      end

      # @param [Array<Berkshelf::Source>, Berkshelf::Source] sources
      def populate(sources)
        universe(sources).each do |cookbook|
          next if has_artifact?(cookbook.name, cookbook.version)

          artifact(cookbook.name, cookbook.version)

          cookbook.dependencies.each do |dependency, constraint|
            constraint = nil if constraint.empty?
            artifact(cookbook.name, cookbook.version).depends(dependency, constraint)
          end
        end
      end

      # @param [Array<Berkshelf::Source>, Berkshelf::Source] sources
      #
      # @return [Array<Berkshelf::RemoteCookbook>]
      def universe(sources)
        cookbooks = []
        Array(sources).each { |source| cookbooks |= source.universe }
        cookbooks
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
berkshelf-8.0.15 lib/berkshelf/resolver/graph.rb
berkshelf-8.0.13 lib/berkshelf/resolver/graph.rb
berkshelf-8.0.12 lib/berkshelf/resolver/graph.rb
berkshelf-8.0.9 lib/berkshelf/resolver/graph.rb
berkshelf-8.0.7 lib/berkshelf/resolver/graph.rb
berkshelf-8.0.5 lib/berkshelf/resolver/graph.rb
berkshelf-8.0.2 lib/berkshelf/resolver/graph.rb
berkshelf-8.0.1 lib/berkshelf/resolver/graph.rb
berkshelf-8.0.0 lib/berkshelf/resolver/graph.rb
berkshelf-7.2.2 lib/berkshelf/resolver/graph.rb
berkshelf-7.2.1 lib/berkshelf/resolver/graph.rb
berkshelf-7.2.0 lib/berkshelf/resolver/graph.rb
berkshelf-7.1.0 lib/berkshelf/resolver/graph.rb
berkshelf-7.0.10 lib/berkshelf/resolver/graph.rb
berkshelf-7.0.9 lib/berkshelf/resolver/graph.rb
berkshelf-7.0.8 lib/berkshelf/resolver/graph.rb
berkshelf-7.0.7 lib/berkshelf/resolver/graph.rb
berkshelf-6.3.4 lib/berkshelf/resolver/graph.rb
berkshelf-7.0.6 lib/berkshelf/resolver/graph.rb
berkshelf-7.0.5 lib/berkshelf/resolver/graph.rb