Class: Chef::Mixin::WhyRun::ConvergeActions
- Inherits:
-
Object
- Object
- Chef::Mixin::WhyRun::ConvergeActions
- Defined in:
- lib/chef/mixin/why_run.rb
Overview
ConvergeActions implements the logic for why run. A ConvergeActions object wraps a collection of actions, which consist of a descriptive string and a block/Proc. Actions are executed by calling #converge! When why_run mode is enabled, each action’s description will be printed, but the block will not be called. Conversely, in normal mode, the block is called, but the message is not printed.
In general, this class should be accessed through the API provided by Chef::Provider.
Instance Attribute Summary collapse
-
#actions ⇒ Object
readonly
Returns the value of attribute actions.
Instance Method Summary collapse
-
#add_action(descriptions, &block) ⇒ Object
Adds an action to the list.
-
#empty? ⇒ Boolean
True if there are no actions to execute.
- #events ⇒ Object
-
#initialize(resource, run_context, action) ⇒ ConvergeActions
constructor
A new instance of ConvergeActions.
Constructor Details
#initialize(resource, run_context, action) ⇒ ConvergeActions
Returns a new instance of ConvergeActions.
36 37 38 39 |
# File 'lib/chef/mixin/why_run.rb', line 36 def initialize(resource, run_context, action) @resource, @run_context = resource, run_context @actions = [] end |
Instance Attribute Details
#actions ⇒ Object (readonly)
Returns the value of attribute actions.
34 35 36 |
# File 'lib/chef/mixin/why_run.rb', line 34 def actions @actions end |
Instance Method Details
#add_action(descriptions, &block) ⇒ Object
Adds an action to the list. descriptions
can either be an Array of Strings, or a single String describing the action; block
is a block/proc that implements the action.
48 49 50 51 52 53 54 |
# File 'lib/chef/mixin/why_run.rb', line 48 def add_action(descriptions, &block) @actions << [descriptions, block] if (@resource.respond_to?(:is_guard_interpreter) && @resource.is_guard_interpreter) || !Chef::Config[:why_run] yield end events.resource_update_applied(@resource, @action, descriptions) end |
#empty? ⇒ Boolean
True if there are no actions to execute.
57 58 59 |
# File 'lib/chef/mixin/why_run.rb', line 57 def empty? @actions.empty? end |
#events ⇒ Object
41 42 43 |
# File 'lib/chef/mixin/why_run.rb', line 41 def events @run_context.events end |