Options can now be passed into running actions
This commit is contained in:
parent
d97c972a7f
commit
d4de0d7357
|
@ -37,10 +37,11 @@ module Vagrant
|
||||||
# up in the registered actions list which are registered with {register}.
|
# up in the registered actions list which are registered with {register}.
|
||||||
#
|
#
|
||||||
# @param [Object] callable An object which responds to `call`.
|
# @param [Object] callable An object which responds to `call`.
|
||||||
def run(callable)
|
def run(callable, options=nil)
|
||||||
callable = self.class.actions[callable] if callable.kind_of?(Symbol)
|
callable = self.class.actions[callable] if callable.kind_of?(Symbol)
|
||||||
|
|
||||||
action_environment = Action::Environment.new(env)
|
action_environment = Action::Environment.new(env)
|
||||||
|
action_environment.merge!(options || {})
|
||||||
callable.call(action_environment)
|
callable.call(action_environment)
|
||||||
|
|
||||||
if action_environment.error?
|
if action_environment.error?
|
||||||
|
|
|
@ -25,6 +25,27 @@ class ActionTest < Test::Unit::TestCase
|
||||||
@instance.run(callable)
|
@instance.run(callable)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "run the callable with the passed in options if given" do
|
||||||
|
options = {
|
||||||
|
:key => :value,
|
||||||
|
:another => %W[1 2 3]
|
||||||
|
}
|
||||||
|
|
||||||
|
callable = mock("callable")
|
||||||
|
callable.expects(:call).with() do |env|
|
||||||
|
assert env.kind_of?(Vagrant::Action::Environment)
|
||||||
|
assert_equal @instance.env, env.env
|
||||||
|
|
||||||
|
options.each do |k,v|
|
||||||
|
assert_equal v, env[k]
|
||||||
|
end
|
||||||
|
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
@instance.run(callable, options)
|
||||||
|
end
|
||||||
|
|
||||||
should "run the registered callable if a symbol is given" do
|
should "run the registered callable if a symbol is given" do
|
||||||
callable = mock("callable")
|
callable = mock("callable")
|
||||||
callable.expects(:call).once
|
callable.expects(:call).once
|
||||||
|
|
Loading…
Reference in New Issue