class Berkshelf::Resolver::Graph

Public Instance Methods

populate(sources) click to toggle source

@param [Array<Berkshelf::Source>, Berkshelf::Source] sources

# File lib/berkshelf/resolver/graph.rb, line 35
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
populate_local(cookbook) click to toggle source

Add dependencies of a locally cached cookbook to the graph

@param [Berkshelf::CachedCookbook] cookbook

@return [Hash]

# File lib/berkshelf/resolver/graph.rb, line 23
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
populate_store(store = nil) click to toggle source

@param [Berkshelf::CookbookStore] store

# File lib/berkshelf/resolver/graph.rb, line 5
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
universe(sources) click to toggle source

@param [Array<Berkshelf::Source>, Berkshelf::Source] sources

@return [Array<Berkshelf::RemoteCookbook>]

# File lib/berkshelf/resolver/graph.rb, line 51
def universe(sources)
  cookbooks = []
  Array(sources).each { |source| cookbooks |= source.universe }
  cookbooks
end