class ChefSpec::Berkshelf
Public Class Methods
new()
click to toggle source
# File lib/chefspec/berkshelf.rb, line 16 def initialize @tmpdir = Dir.mktmpdir end
Public Instance Methods
setup!()
click to toggle source
Setup and install the necessary dependencies in the temporary directory.
# File lib/chefspec/berkshelf.rb, line 23 def setup! # Get the list of Berkshelf options opts = RSpec.configuration.berkshelf_options unless opts.is_a?(Hash) raise InvalidBerkshelfOptions(value: opts.inspect) end berksfile = ::Berkshelf::Berksfile.from_options(opts) # Grab a handle to tmpdir, since Berkshelf 2 modifies it a bit tmpdir = File.join(@tmpdir, "cookbooks") ::Berkshelf.ui.mute do if ::Berkshelf::Berksfile.method_defined?(:vendor) # Berkshelf 3.0 requires the directory to not exist FileUtils.rm_rf(tmpdir) berksfile.vendor(tmpdir) else berksfile.install(path: tmpdir) end end filter = Coverage::BerkshelfFilter.new(berksfile) Coverage.add_filter(filter) ::RSpec.configure { |config| config.cookbook_path = tmpdir } end
teardown!()
click to toggle source
Destroy the installed Berkshelf
at the temporary directory.
# File lib/chefspec/berkshelf.rb, line 54 def teardown! FileUtils.rm_rf(@tmpdir) if File.exist?(@tmpdir) end