12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/cucumber/cli/profile_loader.rb', line 12
def args_from(profile)
unless cucumber_yml.has_key?(profile)
raise(ProfileNotFound, <<-END_OF_ERROR)
Could not find profile: '#{profile}'
Defined profiles in cucumber.yml:
* #{cucumber_yml.keys.sort.join("\n * ")}
END_OF_ERROR
end
args_from_yml = cucumber_yml[profile] || ''
case(args_from_yml)
when String
raise YmlLoadError, "The '#{profile}' profile in cucumber.yml was blank. Please define the command line arguments for the '#{profile}' profile in cucumber.yml.\n" if args_from_yml =~ /^\s*$/
if(Cucumber::WINDOWS)
args_from_yml = args_from_yml.split
args_from_yml = args_from_yml.collect {|x| x.gsub(/^\"(.*)\"/,'\1') }
else
require 'shellwords'
args_from_yml = Shellwords.shellwords(args_from_yml)
end
when Array
raise YmlLoadError, "The '#{profile}' profile in cucumber.yml was empty. Please define the command line arguments for the '#{profile}' profile in cucumber.yml.\n" if args_from_yml.empty?
else
raise YmlLoadError, "The '#{profile}' profile in cucumber.yml was a #{args_from_yml.class}. It must be a String or Array"
end
args_from_yml
end
|