class Berkshelf::Installer::Worker
Attributes
Public Class Methods
Source
# File lib/berkshelf/installer.rb, line 73 def initialize(berksfile) @berksfile = berksfile @downloader = Downloader.new(berksfile) end
Public Instance Methods
Source
# File lib/berkshelf/installer.rb, line 84 def install(dependency) Berkshelf.log.info "Installing #{dependency}" if dependency.installed? Berkshelf.log.debug " Already installed - skipping install" Berkshelf.formatter.use(dependency) dependency.cached_cookbook else name, version = dependency.name, dependency.locked_version.to_s source = berksfile.source_for(name, version) # Raise error if our Berksfile.lock has cookbook versions that # can't be found in sources raise MissingLockfileCookbookVersion.new(name, version, "in any of the sources") unless source Berkshelf.log.debug " Downloading #{dependency.name} (#{dependency.locked_version}) from #{source}" cookbook = source.cookbook(name, version) Berkshelf.log.debug " => #{cookbook.inspect}" Berkshelf.formatter.install(source, cookbook) downloader.download(name, version) do |stash| CookbookStore.import(name, version, stash) end end end
Install a specific dependency.
@param [Dependency]
the dependency to install
@return [CachedCookbook]
the installed cookbook