Parent

Included Modules

Class Index [+]

Quicksearch

Cucumber::Cli::Configuration

Attributes

options[R]
out_stream[R]

Public Class Methods

new(out_stream = STDOUT, error_stream = STDERR) click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 17
17:       def initialize(out_stream = STDOUT, error_stream = STDERR)
18:         @out_stream   = out_stream
19:         @error_stream = error_stream
20:         @options = Options.new(@out_stream, @error_stream, :default_profile => 'default')
21:       end

Public Instance Methods

all_files_to_load() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 71
71:       def all_files_to_load
72:         requires = @options[:require].empty? ? require_dirs : @options[:require]
73:         files = requires.map do |path|
74:           path = path.gsub(/\\/, '/') # In case we're on windows. Globs don't work with backslashes.
75:           path = path.gsub(/\/$/, '') # Strip trailing slash.
76:           File.directory?(path) ? Dir["#{path}/**/*"] : path
77:         end.flatten.uniq
78:         remove_excluded_files_from(files)
79:         files.reject! {|f| !File.file?(f)}
80:         files.reject! {|f| File.extname(f) == '.feature' }
81:         files.reject! {|f| f =~ /^http/}
82:         files.sort
83:       end
build_runner(step_mother, io) click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 59
59:       def build_runner(step_mother, io)
60:         Ast::TreeWalker.new(step_mother, formatters(step_mother), @options, io)
61:       end
drb?() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 51
51:       def drb?
52:         @options[:drb]
53:       end
drb_port() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 55
55:       def drb_port
56:         @options[:drb_port].to_i if @options[:drb_port]
57:       end
feature_dirs() click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 113
113:       def feature_dirs
114:         paths.map { |f| File.directory?(f) ? f : File.dirname(f) }.uniq
115:       end
feature_files() click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 96
 96:       def feature_files
 97:         potential_feature_files = paths.map do |path|
 98:           path = path.gsub(/\\/, '/') # In case we're on windows. Globs don't work with backslashes.
 99:           path = path.chomp('/')
100:           if File.directory?(path)
101:             Dir["#{path}/**/*.feature"]
102:           elsif path[0..0] == '@' and # @listfile.txt
103:               File.file?(path[1..1]) # listfile.txt is a file
104:             IO.read(path[1..1]).split
105:           else
106:             path
107:           end
108:         end.flatten.uniq
109:         remove_excluded_files_from(potential_feature_files)
110:         potential_feature_files
111:       end
formatter_class(format) click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 63
63:       def formatter_class(format)
64:         if(builtin = Options::BUILTIN_FORMATS[format])
65:           constantize(builtin[0])
66:         else
67:           constantize(format)
68:         end
69:       end
guess?() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 47
47:       def guess?
48:         @options[:guess]
49:       end
log() click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 117
117:       def log
118:         logger = Logger.new(@out_stream)
119:         logger.formatter = LogFormatter.new
120:         logger.level = Logger::INFO
121:         logger.level = Logger::DEBUG if self.verbose?
122:         logger
123:       end
parse!(args) click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 23
23:       def parse!(args)
24:         @args = args
25:         @options.parse!(args)
26:         arrange_formats
27:         raise("You can't use both --strict and --wip") if strict? && wip?
28: 
29:         @options[:tag_expression] = Gherkin::TagExpression.new(@options[:tag_expressions])
30:         return @args.replace(@options.expanded_args_without_drb) if drb?
31: 
32:         set_environment_variables
33:       end
step_defs_to_load() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 85
85:       def step_defs_to_load
86:         all_files_to_load.reject {|f| f =~ %{/support/} }
87:       end
strict?() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 39
39:       def strict?
40:         @options[:strict]
41:       end
support_to_load() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 89
89:       def support_to_load
90:         support_files = all_files_to_load.select {|f| f =~ %{/support/} }
91:         env_files = support_files.select {|f| f =~ %{/support/env\..*} }
92:         other_files = support_files - env_files
93:         @options[:dry_run] ? other_files : env_files + other_files
94:       end
verbose?() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 35
35:       def verbose?
36:         @options[:verbose]
37:       end
wip?() click to toggle source
    # File lib/cucumber/cli/configuration.rb, line 43
43:       def wip?
44:         @options[:wip]
45:       end

Private Instance Methods

arrange_formats() click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 164
164:       def arrange_formats
165:         @options[:formats] << ['pretty', @out_stream] if @options[:formats].empty?
166:         @options[:formats] = @options[:formats].sort_by{|f| f[1] == @out_stream ? 1 : 1}
167:         streams = @options[:formats].map { |(_, stream)| stream }
168:         if streams != streams.uniq
169:           raise "All but one formatter must use --out, only one can print to each stream (or STDOUT)"
170:         end
171:       end
formatters(step_mother) click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 127
127:       def formatters(step_mother)
128:         # TODO: We should remove the autoformat functionality. That
129:         # can be done with the gherkin CLI.
130:         if @options[:autoformat]
131:           require 'cucumber/formatter/pretty'
132:           return [Formatter::Pretty.new(step_mother, nil, @options)]
133:         end
134: 
135:         @options[:formats].map do |format_and_out|
136:           format = format_and_out[0]
137:           path_or_io = format_and_out[1]
138:           begin
139:             formatter_class = formatter_class(format)
140:             formatter_class.new(step_mother, path_or_io, @options)
141:           rescue Exception => e
142:             e.message << "\nError creating formatter: #{format}"
143:             raise e
144:           end
145:         end
146:       end
paths() click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 154
154:       def paths
155:         @options[:paths].empty? ? ['features'] : @options[:paths]
156:       end
remove_excluded_files_from(files) click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 173
173:       def remove_excluded_files_from(files)
174:         files.reject! {|path| @options[:excludes].detect {|pattern| path =~ pattern } }
175:       end
require_dirs() click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 177
177:       def require_dirs
178:         feature_dirs + Dir['vendor/{gems,plugins}/*/cucumber']
179:       end
set_environment_variables() click to toggle source
     # File lib/cucumber/cli/configuration.rb, line 158
158:       def set_environment_variables
159:         @options[:env_vars].each do |var, value|
160:           ENV[var] = value
161:         end
162:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.