Sha256: 9de7b420e74b6eccd110933ff8219bf4ef76e8e4a39fe3ecbeac8b2fea7a92d0

Contents?: true

Size: 1.29 KB

Versions: 4

Compression:

Stored size: 1.29 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|
          artifacts(cookbook.cookbook_name, cookbook.version)
        end
      end

      def populate_local(cookbook)
        name    = cookbook.cookbook_name
        version = cookbook.version

        artifacts(name, version)
        cookbook.dependencies.each do |dependency, constraint|
          artifacts(name, version).depends(dependency, constraint)
        end
      end

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

          cookbook.dependencies.each do |dependency, constraint|
            artifacts(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 = cookbooks | source.universe }
        cookbooks
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
berkshelf-3.0.0.beta4 lib/berkshelf/resolver/graph.rb
berkshelf-3.0.0.beta3 lib/berkshelf/resolver/graph.rb
berkshelf-3.0.0.beta2 lib/berkshelf/resolver/graph.rb
berkshelf-3.0.0.beta1 lib/berkshelf/resolver/graph.rb