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


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

def initialize
  @tmpdir = Dir.mktmpdir
end

Instance Method Details

#setup!Object

Setup and install the necessary dependencies in the temporary directory.


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

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.


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

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