Implement recipe arguments

CLI will stop arguments processing after the special `--' argument,
the rest will be saved in the env and accessible through a new task
keyword: `recipe_argv'.
This commit is contained in:
Thibault Jouan
2015-04-04 04:41:25 +00:00
parent f17f8c354f
commit 433f830c54
7 changed files with 54 additions and 1 deletions

View File

@@ -130,6 +130,20 @@ module Producer::Core
end
end
context 'with recipe arguments' do
let(:arguments) { %w[recipe.rb -- foo] }
it 'removes recipe arguments' do
cli.parse_arguments!
expect(cli.arguments).to eq %w[recipe.rb]
end
it 'assigns env recipe arguments' do
cli.parse_arguments!
expect(cli.env.recipe_argv).to eq %w[foo]
end
end
context 'when no arguments remains after parsing' do
let(:arguments) { [] }

View File

@@ -179,5 +179,13 @@ module Producer::Core
expect(task.target).to eq :some_target
end
end
describe '#recipe_argv' do
before { env.recipe_argv = %w[foo bar] }
it 'returns recipe arguments' do
expect(task.recipe_argv).to eq %w[foo bar]
end
end
end
end