Class: Cucumber::Cli::ProfileLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/cucumber/cli/profile_loader.rb

Instance Method Summary collapse

Constructor Details

#initializeProfileLoader

Returns a new instance of ProfileLoader.



8
9
10
# File 'lib/cucumber/cli/profile_loader.rb', line 8

def initialize
  @cucumber_yml = nil
end

Instance Method Details

#args_from(profile) ⇒ Object



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
# File 'lib/cucumber/cli/profile_loader.rb', line 12

def args_from(profile)
  unless cucumber_yml.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
    if args_from_yml =~ /^\s*$/
      raise YmlLoadError, "The '#{profile}' profile in cucumber.yml was blank." \
      "  Please define the command line arguments for the '#{profile}' profile in cucumber.yml.\n"
    end

    args_from_yml = processed_shellwords(args_from_yml)
  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

#cucumber_yml_defined?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/cucumber/cli/profile_loader.rb', line 45

def cucumber_yml_defined?
  cucumber_file && File.exist?(cucumber_file)
end

#profile?(profile) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/cucumber/cli/profile_loader.rb', line 41

def profile?(profile)
  cucumber_yml.key?(profile)
end