Class: ChefSpec::Librarian

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Singleton
Defined in:
lib/chefspec/librarian.rb

Instance Method Summary collapse

Constructor Details

#initializeLibrarian

Returns a new instance of Librarian.


20
21
22
# File 'lib/chefspec/librarian.rb', line 20

def initialize
  @tmpdir = Dir.mktmpdir
end

Instance Method Details

#setup!Object

Setup and install the necessary dependencies in the temporary directory.


27
28
29
30
31
32
33
34
# File 'lib/chefspec/librarian.rb', line 27

def setup!
  env = ::Librarian::Chef::Environment.new(project_path: Dir.pwd)
  @originalpath, env.config_db.local["path"] = env.config_db.local["path"], @tmpdir
  ::Librarian::Action::Resolve.new(env).run
  ::Librarian::Action::Install.new(env).run

  ::RSpec.configure { |config| config.cookbook_path = @tmpdir }
end

#teardown!Object

Remove the temporary directory and restore the librarian-chef cookbook path.


39
40
41
42
43
44
# File 'lib/chefspec/librarian.rb', line 39

def teardown!
  env = ::Librarian::Chef::Environment.new(project_path: Dir.pwd)
  env.config_db.local["path"] = @originalpath

  FileUtils.rm_rf(@tmpdir) if File.exist?(@tmpdir)
end