class LicenseScout::DependencyManager::Berkshelf
Public Instance Methods
dependencies()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 44 def dependencies unless berkshelf_available? raise LicenseScout::Exceptions::Error.new("Project at '#{directory}' is a Berkshelf project but berkshelf gem is not available in your bundle. Add berkshelf to your bundle in order to collect licenses for this project.") end cookbook_dependencies = [] Dir.chdir(directory) do berksfile = ::Berkshelf::Berksfile.from_file("./Berksfile") # Berkshelf should not give an error when there are cookbooks in the # lockfile that are no longer in the berksfile. It handles this case in # the Installer class which we are not using here. So we handle this # case in the same way Installer does. berksfile.lockfile.reduce! cookbook_dependencies = berksfile.list end cookbook_dependencies.map do |dep| new_dependency(dep.name, dep.cached_cookbook.version, dep.cached_cookbook.path.to_s) end.compact end
detected?()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 40 def detected? File.exist?(berksfile_path) && File.exist?(lockfile_path) end
install_command()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 36 def install_command "berks install" end
name()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 24 def name "chef_berkshelf" end
signature()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 32 def signature "Berksfile and Berksfile.lock files" end
type()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 28 def type "chef_cookbook" end
Private Instance Methods
berksfile_path()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 80 def berksfile_path File.join(directory, "Berksfile") end
berkshelf_available?()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 70 def berkshelf_available? begin require "berkshelf" rescue LoadError return false end true end
lockfile_path()
click to toggle source
# File lib/license_scout/dependency_manager/berkshelf.rb, line 84 def lockfile_path File.join(directory, "Berksfile.lock") end