Allow `target' recipe keyword to return target

This commit is contained in:
Thibault Jouan 2014-09-25 14:57:27 +00:00
parent eba719941d
commit b11d0b6950
3 changed files with 20 additions and 3 deletions

View File

@ -10,4 +10,14 @@ Feature: `target' recipe keyword
end end
""" """
When I successfully execute the recipe When I successfully execute the recipe
Then the output must contain exactly "some_host.example\n" Then the output must contain "some_host.example"
Scenario: returns current target when no arguments are provided
Given a recipe with:
"""
target 'some_host.example'
env.output.puts target
"""
When I successfully execute the recipe
Then the output must contain "some_host.example"

View File

@ -26,8 +26,8 @@ module Producer
instance_eval File.read("./#{filepath}.rb"), "#{filepath}.rb" instance_eval File.read("./#{filepath}.rb"), "#{filepath}.rb"
end end
def target(hostname) def target(hostname = nil)
env.target ||= hostname if hostname then env.target ||= hostname else env.target end
end end
def task(name, *args, &block) def task(name, *args, &block)

View File

@ -38,6 +38,13 @@ module Producer::Core
expect { recipe.target host }.not_to change { env.target } expect { recipe.target host }.not_to change { env.target }
end end
end end
context 'when no arguments are provided' do
it 'returns current target' do
recipe.target host
expect(recipe.target).to eq host
end
end
end end
describe '#task' do describe '#task' do