Class: Chef::Cookbook::GemInstaller
- Inherits:
-
Object
- Object
- Chef::Cookbook::GemInstaller
- Defined in:
- lib/chef/cookbook/gem_installer.rb
Defined Under Namespace
Classes: ChefBundlerUI
Instance Attribute Summary collapse
-
#cookbook_collection ⇒ Chef::CookbookCollection
The cookbook collection.
-
#events ⇒ Chef::EventDispatch::Dispatcher
The client event dispatcher.
Instance Method Summary collapse
-
#initialize(cookbook_collection, events) ⇒ GemInstaller
constructor
A new instance of GemInstaller.
-
#install ⇒ Object
Installs the gems into the omnibus gemset.
Constructor Details
#initialize(cookbook_collection, events) ⇒ GemInstaller
Returns a new instance of GemInstaller.
30 31 32 33 |
# File 'lib/chef/cookbook/gem_installer.rb', line 30 def initialize(cookbook_collection, events) @cookbook_collection = cookbook_collection @events = events end |
Instance Attribute Details
#cookbook_collection ⇒ Chef::CookbookCollection
Returns the cookbook collection.
28 29 30 |
# File 'lib/chef/cookbook/gem_installer.rb', line 28 def cookbook_collection @cookbook_collection end |
#events ⇒ Chef::EventDispatch::Dispatcher
Returns the client event dispatcher.
26 27 28 |
# File 'lib/chef/cookbook/gem_installer.rb', line 26 def events @events end |
Instance Method Details
#install ⇒ Object
Installs the gems into the omnibus gemset.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/chef/cookbook/gem_installer.rb', line 37 def install cookbook_gems = [] cookbook_collection.each do |cookbook_name, cookbook_version| cookbook_gems += cookbook_version..gems end events.cookbook_gem_start(cookbook_gems) unless cookbook_gems.empty? begin inline_gemfile do source Chef::Config[:rubygems_url] cookbook_gems.each do |args| gem(*args) end end rescue Exception => e events.cookbook_gem_failed(e) raise end end events.cookbook_gem_finished end |