module Vagrant::Util::StackedProcRunner
Represents the “stacked proc runner” behavior which is used a couple places within Vagrant
. This allows procs to “stack” on each other, then all execute in a single action. An example of its uses can be seen in the {Config} class.
Public Instance Methods
proc_stack()
click to toggle source
Returns the proc stack. This should always be called as the accessor of the stack. The instance variable itself should never be used.
@return [Array<Proc>]
# File lib/vagrant/util/stacked_proc_runner.rb, line 13 def proc_stack @_proc_stack ||= [] end
push_proc(&block)
click to toggle source
Adds (pushes) a proc to the stack. The actual proc added here is not executed, but merely stored.
@param [Proc] block
# File lib/vagrant/util/stacked_proc_runner.rb, line 21 def push_proc(&block) proc_stack << block end
run_procs!(*args)
click to toggle source
Executes all the procs on the stack, passing in the given arguments. The stack is not cleared afterwards. It is up to the user of this mixin to clear the stack by calling ‘proc_stack.clear`.
# File lib/vagrant/util/stacked_proc_runner.rb, line 28 def run_procs!(*args) proc_stack.each do |proc| proc.call(*args) end end