cucumber 0.3.92 → 0.3.93

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,19 @@
1
- == (In Git)
1
+ == 0.3.93 2009-08-03
2
+
3
+ Highlights in this release: Improved profile handling (cucumber.yml) and a fix for cucumber hanging.
4
+
5
+ === New features
6
+ * script/generate cucumber --spork now sets up a spork gem dependency in the cucumber.rb environment. (Aslak Hellesøy)
7
+ * Feature files defined on the command line override any that are present in profiles. (#344 Ben Mabey)
8
+ * Default (STDOUT) formatter defined in profile can be overridden from the command line. (#344 Ben Mabey)
9
+ * Displays which profile, if any, is being used. (Ben Mabey)
10
+ * click_link_within(parent, link) webrat step (Joakim Kolsjö)
11
+
12
+ === Bugfixes
13
+ * script/cucumber correctly loads the gem's binary if the plugin isn't installed.
14
+ * Cucumber hangs waiting for Ctrl+C if an Error is raised (#374 Aslak Hellesøy)
15
+
16
+ == 0.3.92 2009-07-29
2
17
 
3
18
  This release has some minor improvements to the new Table.diff! functionality. For example,
4
19
  if you're using Webrat and you want to compare a feature table with a HTML table containing
@@ -16,6 +31,9 @@ links in one of the columns, you can do:
16
31
  * Upgrade Sinatra example to work with rack-test 0.3.0 and aslakhellesoy-webrat 0.4.4.1 (Aslak Hellesøy)
17
32
  * require 'cucumber/webrat/table_locator' added to Spork environment for Rails (Anders Furseth)
18
33
 
34
+ === Changed Features
35
+ * The 'default' profile is now ALWAYS used unless you specify another profile or use the -P or --no-profile flag. (#344 Ben Mabey)
36
+
19
37
  == 0.3.91 2009-07-27
20
38
 
21
39
  === New Features
@@ -23,6 +41,7 @@ links in one of the columns, you can do:
23
41
  * Run can be stopped programmatically by setting $cucumber_interrupted = true, for example in an After block. (Aslak Hellesøy)
24
42
  * Table support for cuke4duke
25
43
 
44
+
26
45
  == 0.3.90 2009-07-22
27
46
 
28
47
  The Hot summer release
@@ -262,6 +262,7 @@ features/html_formatter/a.html
262
262
  features/junit_formatter.feature
263
263
  features/language_from_header.feature
264
264
  features/multiline_names.feature
265
+ features/profiles.feature
265
266
  features/rake_task.feature
266
267
  features/report_called_undefined_steps.feature
267
268
  features/snippet.feature
@@ -311,6 +312,8 @@ lib/cucumber/cli/configuration.rb
311
312
  lib/cucumber/cli/drb_client.rb
312
313
  lib/cucumber/cli/language_help_formatter.rb
313
314
  lib/cucumber/cli/main.rb
315
+ lib/cucumber/cli/options.rb
316
+ lib/cucumber/cli/profile_loader.rb
314
317
  lib/cucumber/core_ext/exception.rb
315
318
  lib/cucumber/core_ext/instance_exec.rb
316
319
  lib/cucumber/core_ext/proc.rb
@@ -382,11 +385,14 @@ spec/cucumber/broadcaster_spec.rb
382
385
  spec/cucumber/cli/configuration_spec.rb
383
386
  spec/cucumber/cli/drb_client_spec.rb
384
387
  spec/cucumber/cli/main_spec.rb
388
+ spec/cucumber/cli/options_spec.rb
389
+ spec/cucumber/cli/profile_loader_spec.rb
385
390
  spec/cucumber/core_ext/proc_spec.rb
386
391
  spec/cucumber/core_ext/string_spec.rb
387
392
  spec/cucumber/formatter/ansicolor_spec.rb
388
393
  spec/cucumber/formatter/color_io_spec.rb
389
394
  spec/cucumber/formatter/duration_spec.rb
395
+ spec/cucumber/formatter/html_spec.rb
390
396
  spec/cucumber/formatter/progress_spec.rb
391
397
  spec/cucumber/parser/feature_parser_spec.rb
392
398
  spec/cucumber/parser/table_parser_spec.rb
@@ -1,2 +1,2 @@
1
- default: --format progress features --tags ~@proposed,~@in_progress
2
- wip: --tags @in_progress --wip features
1
+ default: --format progress --tags ~@proposed,~@in-progress features
2
+ wip: --tags @in-progress --wip features
@@ -5,7 +5,7 @@ Funcionalidade: Adição
5
5
  Eu quero saber como somar dois números
6
6
 
7
7
  Cenário: Adicionar dois números
8
- Dado que eu digitei 50 na calculadora
9
- E que eu digitei 70 na calculadora
10
- Quando eu aperto o botão de soma
11
- Então o resultado na calculadora deve ser 120
8
+ Dado que eu digitei 50 na calculadora
9
+ E que eu digitei 70 na calculadora
10
+ Quando eu aperto o botão de soma
11
+ Então o resultado na calculadora deve ser 120
@@ -0,0 +1,99 @@
1
+ Feature: Profiles
2
+ In order to save time and prevent carpal tunnel syndrome
3
+ Cucumber users can save and reuse commonly used cucumber flags in a 'cucumber.yml' file.
4
+ These named arguments are called profiles and the yml file should be in the root of your project.
5
+ Any cucumber argument is valid in a profile. To see all the available flags type 'cucumber --help'
6
+ For more information about profiles please see the wiki:
7
+ http://wiki.github.com/aslakhellesoy/cucumber/cucumberyml
8
+
9
+ Background: Basic App
10
+ Given a standard Cucumber project directory structure
11
+ And a file named "features/sample.feature" with:
12
+ """
13
+ Feature: Sample
14
+ Scenario: this is a test
15
+ Given I am just testing stuff
16
+ """
17
+ And a file named "features/support/env.rb"
18
+ And a file named "features/support/super_env.rb"
19
+ And the following profiles are defined:
20
+ """
21
+ default: features/sample.feature --require features/support/env.rb -v
22
+ super: features/sample.feature --require features/support/super_env.rb -v
23
+ """
24
+
25
+ Scenario: Explicitly defining a profile to run
26
+ When I run cucumber features/sample.feature --profile super
27
+ Then the output should contain
28
+ """
29
+ Using the super profile...
30
+ """
31
+ And exactly these files should be loaded: features/support/super_env.rb
32
+
33
+ Scenario: Defining multiple profiles to run
34
+ When I run cucumber features/sample.feature --profile default --profile super
35
+ Then the output should contain
36
+ """
37
+ Using the default and super profiles...
38
+ """
39
+ And exactly these files should be loaded: features/support/env.rb, features/support/super_env.rb
40
+
41
+ Scenario: Arguments passed in but no profile specified
42
+ When I run cucumber -v
43
+ Then the default profile should be used
44
+ And exactly these files should be loaded: features/support/env.rb
45
+
46
+ Scenario: Trying to use a missing profile
47
+ When I run cucumber -p foo
48
+ Then STDERR should be
49
+ """
50
+ Could not find profile: 'foo'
51
+
52
+ Defined profiles in cucumber.yml:
53
+ * default
54
+ * super
55
+
56
+ """
57
+
58
+ Scenario Outline: Disabling the default profile
59
+ When I run cucumber -v features/ <Flag>
60
+ Then the output should contain
61
+ """
62
+ Disabling profiles...
63
+ """
64
+ And exactly these files should be loaded: features/support/env.rb, features/support/super_env.rb
65
+
66
+ Examples:
67
+ | Flag |
68
+ | -P |
69
+ | --no-profile |
70
+
71
+
72
+ Scenario: Overriding the profile's features to run
73
+ Given a file named "features/another.feature" with:
74
+ """
75
+ Feature: Just this one should be ran
76
+ """
77
+ When I run cucumber -p default features/another.feature
78
+ Then exactly these features should be ran: features/another.feature
79
+
80
+ Scenario: Overriding the profile's formatter
81
+ You will most likely want to define a formatter in your default formatter.
82
+ However, you often want to run your features with a different formatter
83
+ yet still use the other the other arguments in the profile. Cucumber will
84
+ allow you to do this by giving precedence to the formatter specified on the
85
+ command line and override the one in the profile.
86
+
87
+ Given the following profiles are defined:
88
+ """
89
+ default: features/sample.feature --require features/support/env.rb -v --format profile
90
+ """
91
+ When I run cucumber features --format pretty
92
+ And the output should contain
93
+ """
94
+ Feature: Sample
95
+ """
96
+
97
+
98
+
99
+
@@ -111,6 +111,10 @@ Then /^STDERR should not match$/ do |text|
111
111
  last_stderr.should_not =~ /#{text}/
112
112
  end
113
113
 
114
+ Then /^STDERR should be$/ do |text|
115
+ last_stderr.should == text
116
+ end
117
+
114
118
  Then /^STDERR should be empty$/ do
115
119
  last_stderr.should == ""
116
120
  end
@@ -128,3 +132,19 @@ Then /^"([^\"]*)" should be required$/ do |file_name|
128
132
  last_stdout.should include("* #{file_name}")
129
133
  end
130
134
 
135
+ Then /^exactly these files should be loaded:\s*(.*)$/ do |files|
136
+ last_stdout.scan(/^ \* (.*\.rb)$/).flatten.should == files.split(/,\s+/)
137
+ end
138
+
139
+ Then /^exactly these features should be ran:\s*(.*)$/ do |files|
140
+ last_stdout.scan(/^ \* (.*\.feature)$/).flatten.should == files.split(/,\s+/)
141
+ end
142
+
143
+ Then /^the (.*) profile should be used$/ do |profile|
144
+ last_stdout.should =~ /Using the #{profile} profile/
145
+ end
146
+
147
+ Then /^print output$/ do
148
+ puts last_stdout
149
+ end
150
+
@@ -52,6 +52,7 @@ Feature: Cucumber --work-in-progress switch
52
52
  @mri186
53
53
  Scenario: Pass with Failing Scenarios
54
54
  When I run cucumber -q -w -t @failing features/wip.feature
55
+ Then STDERR should be empty
55
56
  Then it should pass with
56
57
  """
57
58
  Feature: WIP
@@ -1,6 +1,10 @@
1
+ require 'cucumber/cli/options'
2
+
1
3
  module Cucumber
2
4
  module Cli
3
5
  class YmlLoadError < StandardError; end
6
+ class ProfilesNotDefinedError < YmlLoadError; end
7
+ class ProfileNotFound < StandardError; end
4
8
 
5
9
  class Configuration
6
10
  BUILTIN_FORMATS = {
@@ -14,187 +18,24 @@ module Cucumber
14
18
  'tag_cloud' => 'Cucumber::Formatter::TagCloud',
15
19
  'steps' => 'Cucumber::Formatter::Steps'
16
20
  }
17
- DRB_FLAG = '--drb'
18
- PROFILE_SHORT_FLAG = '-p'
19
- PROFILE_LONG_FLAG = '--profile'
20
21
 
21
- attr_reader :paths
22
22
  attr_reader :options
23
23
 
24
24
  def initialize(out_stream = STDOUT, error_stream = STDERR)
25
25
  @out_stream = out_stream
26
26
  @error_stream = error_stream
27
-
28
- @paths = []
29
- @options = default_options
27
+ @options = Options.new(@out_stream, @error_stream, :default_profile => 'default')
30
28
  end
31
29
 
32
30
  def parse!(args)
33
- args.concat(%w{--profile default}) if args.empty?
34
31
  @args = args
35
- expand_profiles_into_args
36
- return if parse_drb
37
-
38
- @args.each do |arg|
39
- if arg =~ /^(\w+)=(.*)$/
40
- ENV[$1] = $2
41
- @args.delete(arg)
42
- end
43
- end
32
+ @options.parse!(args)
33
+ raise("You can't use both --strict and --wip") if strict? && wip?
44
34
 
45
- @args.extend(::OptionParser::Arguable)
46
-
47
- @args.options do |opts|
48
- opts.banner = ["Usage: cucumber [options] [ [FILE|DIR|URL][:LINE[:LINE]*] ]+", "",
49
- "Examples:",
50
- "cucumber examples/i18n/en/features",
51
- "cucumber --language it examples/i18n/it/features/somma.feature:6:98:113",
52
- "cucumber -s -i http://rubyurl.com/eeCl", "", "",
53
- ].join("\n")
54
- opts.on("-r LIBRARY|DIR", "--require LIBRARY|DIR",
55
- "Require files before executing the features. If this",
56
- "option is not specified, all *.rb files that are",
57
- "siblings or below the features will be loaded auto-",
58
- "matically. Automatic loading is disabled when this",
59
- "option is specified, and all loading becomes explicit.",
60
- "Files under directories named \"support\" are always",
61
- "loaded first.",
62
- "This option can be specified multiple times.") do |v|
63
- @options[:require] ||= []
64
- @options[:require] << v
65
- end
66
- opts.on("-l LANG", "--language LANG",
67
- "Specify language for features (Default: #{@options[:lang]})",
68
- %{Run with "--language help" to see all languages},
69
- %{Run with "--language LANG help" to list keywords for LANG}) do |v|
70
- if v == 'help'
71
- list_languages_and_exit
72
- elsif args==['help']
73
- list_keywords_and_exit(v)
74
- else
75
- @options[:lang] = v
76
- end
77
- end
78
- opts.on("-f FORMAT", "--format FORMAT",
79
- "How to format features (Default: pretty)",
80
- "Available formats: #{BUILTIN_FORMATS.keys.sort.join(", ")}",
81
- "FORMAT can also be the fully qualified class name of",
82
- "your own custom formatter. If the class isn't loaded,",
83
- "Cucumber will attempt to require a file with a relative",
84
- "file name that is the underscore name of the class name.",
85
- "Example: --format Foo::BarZap -> Cucumber will look for",
86
- "foo/bar_zap.rb. You can place the file with this relative",
87
- "path underneath your features/support directory or anywhere",
88
- "on Ruby's LOAD_PATH, for example in a Ruby gem.") do |v|
89
- @options[:formats] << [v, @out_stream]
90
- @active_format = v
91
- end
92
- opts.on("-o", "--out [FILE|DIR]",
93
- "Write output to a file/directory instead of STDOUT. This option",
94
- "applies to the previously specified --format, or the",
95
- "default format if no format is specified. Check the specific",
96
- "formatter's docs to see whether to pass a file or a dir.") do |v|
97
- @options[:formats] << ['pretty', nil] if @options[:formats].empty?
98
- @options[:formats][-1][1] = v
99
- end
100
- opts.on("-t TAGS", "--tags TAGS",
101
- "Only execute the features or scenarios with the specified tags.",
102
- "TAGS must be comma-separated without spaces. Prefix tags with ~ to",
103
- "exclude features or scenarios having that tag. Tags can be specified",
104
- "with or without the @ prefix.") do |v|
105
- include_tags, exclude_tags = *parse_tags(v)
106
- @options[:include_tags] += include_tags
107
- @options[:exclude_tags] += exclude_tags
108
- end
109
- opts.on("-n NAME", "--name NAME",
110
- "Only execute the feature elements which match part of the given name.",
111
- "If this option is given more than once, it will match against all the",
112
- "given names.") do |v|
113
- @options[:name_regexps] << /#{v}/
114
- end
115
- opts.on("-e", "--exclude PATTERN", "Don't run feature files or require ruby files matching PATTERN") do |v|
116
- @options[:excludes] << Regexp.new(v)
117
- end
118
- opts.on(PROFILE_SHORT_FLAG, "#{PROFILE_LONG_FLAG} PROFILE", "Pull commandline arguments from cucumber.yml.") do |v|
119
- # Processing of this is done previsouly so that the DRb flag can be detected within profiles.
120
- end
121
- opts.on("-c", "--[no-]color",
122
- "Whether or not to use ANSI color in the output. Cucumber decides",
123
- "based on your platform and the output destination if not specified.") do |v|
124
- Term::ANSIColor.coloring = v
125
- end
126
- opts.on("-d", "--dry-run", "Invokes formatters without executing the steps.",
127
- "This also omits the loading of your support/env.rb file if it exists.",
128
- "Implies --quiet.") do
129
- @options[:dry_run] = true
130
- @quiet = true
131
- end
132
- opts.on("-a", "--autoformat DIRECTORY",
133
- "Reformats (pretty prints) feature files and write them to DIRECTORY.",
134
- "Be careful if you choose to overwrite the originals.",
135
- "Implies --dry-run --formatter pretty.") do |directory|
136
- @options[:autoformat] = directory
137
- Term::ANSIColor.coloring = false
138
- @options[:dry_run] = true
139
- @quiet = true
140
- end
141
- opts.on("-m", "--no-multiline",
142
- "Don't print multiline strings and tables under steps.") do
143
- @options[:no_multiline] = true
144
- end
145
- opts.on("-s", "--no-source",
146
- "Don't print the file and line of the step definition with the steps.") do
147
- @options[:source] = false
148
- end
149
- opts.on("-i", "--no-snippets", "Don't print snippets for pending steps.") do
150
- @options[:snippets] = false
151
- end
152
- opts.on("-q", "--quiet", "Alias for --no-snippets --no-source.") do
153
- @quiet = true
154
- end
155
- opts.on("-b", "--backtrace", "Show full backtrace for all errors.") do
156
- Exception.cucumber_full_backtrace = true
157
- end
158
- opts.on("-S", "--strict", "Fail if there are any undefined steps.") do
159
- @options[:strict] = true
160
- end
161
- opts.on("-w", "--wip", "Fail if there are any passing scenarios.") do
162
- @options[:wip] = true
163
- end
164
- opts.on("-v", "--verbose", "Show the files and features loaded.") do
165
- @options[:verbose] = true
166
- end
167
- opts.on("-g", "--guess", "Guess best match for Ambiguous steps.") do
168
- @options[:guess] = true
169
- end
170
- opts.on("-x", "--expand", "Expand Scenario Outline Tables in output.") do
171
- @options[:expand] = true
172
- end
173
- opts.on("--no-diff", "Disable diff output on failing expectations.") do
174
- @options[:diff_enabled] = false
175
- end
176
- opts.on(DRB_FLAG, "Run features against a DRb server. (i.e. with the spork gem)") do
177
- # Processing of this is done previsouly in order to short circuit args from being lost.
178
- end
179
- opts.on_tail("--version", "Show version.") do
180
- @out_stream.puts VERSION::STRING
181
- Kernel.exit
182
- end
183
- opts.on_tail("-h", "--help", "You're looking at it.") do
184
- @out_stream.puts opts.help
185
- Kernel.exit
186
- end
187
- end.parse!
35
+ return @args.replace(@options.expanded_args_without_drb) if drb?
188
36
 
37
+ set_environment_variables
189
38
  arrange_formats
190
-
191
- @options[:snippets] = true if !@quiet && @options[:snippets].nil?
192
- @options[:source] = true if !@quiet && @options[:source].nil?
193
-
194
- raise("You can't use both --strict and --wip") if @options[:strict] && @options[:wip]
195
-
196
- # Whatever is left after option parsing is the FILE arguments
197
- @paths += @args
198
39
  end
199
40
 
200
41
  def verbose?
@@ -218,18 +59,11 @@ module Cucumber
218
59
  end
219
60
 
220
61
  def drb?
221
- @drb
62
+ @options[:drb]
222
63
  end
223
64
 
224
- def parse_tags(tag_string)
225
- tag_names = tag_string.split(",")
226
- excludes, includes = tag_names.partition{|tag| tag =~ /^~/}
227
- excludes = excludes.map{|tag| tag[1..-1]}
228
-
229
- # Strip @
230
- includes = includes.map{|tag| Ast::Tags.strip_prefix(tag)}
231
- excludes = excludes.map{|tag| Ast::Tags.strip_prefix(tag)}
232
- [includes, excludes]
65
+ def paths
66
+ @options[:paths]
233
67
  end
234
68
 
235
69
  def build_formatter_broadcaster(step_mother)
@@ -270,7 +104,7 @@ module Cucumber
270
104
  end
271
105
 
272
106
  def files_to_require
273
- requires = @options[:require] || require_dirs
107
+ requires = @options[:require].empty? ? require_dirs : @options[:require]
274
108
  files = requires.map do |path|
275
109
  path = path.gsub(/\\/, '/') # In case we're on windows. Globs don't work with backslashes.
276
110
  path = path.gsub(/\/$/, '') # Strip trailing slash.
@@ -285,7 +119,7 @@ module Cucumber
285
119
  end
286
120
 
287
121
  def feature_files
288
- potential_feature_files = @paths.map do |path|
122
+ potential_feature_files = @options[:paths].map do |path|
289
123
  path = path.gsub(/\\/, '/') # In case we're on windows. Globs don't work with backslashes.
290
124
  path = path.chomp('/')
291
125
  File.directory?(path) ? Dir["#{path}/**/*.feature"] : path
@@ -294,7 +128,13 @@ module Cucumber
294
128
  potential_feature_files
295
129
  end
296
130
 
297
- protected
131
+ private
132
+
133
+ def set_environment_variables
134
+ @options[:env_vars].each do |var, value|
135
+ ENV[var] = value
136
+ end
137
+ end
298
138
 
299
139
  def arrange_formats
300
140
  @options[:formats] << ['pretty', @out_stream] if @options[:formats].empty?
@@ -309,11 +149,11 @@ module Cucumber
309
149
  end
310
150
 
311
151
  def feature_dirs
312
- @paths.map { |f| File.directory?(f) ? f : File.dirname(f) }.uniq
152
+ paths.map { |f| File.directory?(f) ? f : File.dirname(f) }.uniq
313
153
  end
314
154
 
315
155
  def require_dirs
316
- feature_dirs+Dir['vendor/{gems,plugins}/*/cucumber']
156
+ feature_dirs + Dir['vendor/{gems,plugins}/*/cucumber']
317
157
  end
318
158
 
319
159
  def constantize(camel_cased_word)
@@ -341,90 +181,6 @@ module Cucumber
341
181
  downcase
342
182
  end
343
183
 
344
- def expand_profiles_into_args
345
- while (profile_index = @args.index(PROFILE_SHORT_FLAG) || @args.index(PROFILE_LONG_FLAG)) do
346
- @args.delete_at(profile_index)
347
- @args[profile_index] = args_from_profile(@args[profile_index])
348
- @args.flatten!
349
- end
350
- end
351
-
352
- def args_from_profile(profile)
353
- unless cucumber_yml.has_key?(profile)
354
- raise(<<-END_OF_ERROR)
355
- Could not find profile: '#{profile}'
356
-
357
- Defined profiles in cucumber.yml:
358
- * #{cucumber_yml.keys.join("\n * ")}
359
- END_OF_ERROR
360
- end
361
-
362
- args_from_yml = cucumber_yml[profile] || ''
363
-
364
- case(args_from_yml)
365
- when String
366
- raise "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*$/
367
- args_from_yml = args_from_yml.split(' ')
368
- when Array
369
- raise "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?
370
- else
371
- raise "The '#{profile}' profile in cucumber.yml was a #{args_from_yml.class}. It must be a String or Array"
372
- end
373
- args_from_yml
374
- end
375
-
376
- def cucumber_yml
377
- return @cucumber_yml if @cucumber_yml
378
- unless File.exist?('cucumber.yml')
379
- raise(YmlLoadError,"cucumber.yml was not found. Please refer to cucumber's documentation on defining profiles in cucumber.yml. You must define a 'default' profile to use the cucumber command without any arguments.\nType 'cucumber --help' for usage.\n")
380
- end
381
-
382
- require 'yaml'
383
- begin
384
- @cucumber_yml = YAML::load(IO.read('cucumber.yml'))
385
- rescue StandardError => e
386
- raise(YmlLoadError,"cucumber.yml was found, but could not be parsed. Please refer to cucumber's documentation on correct profile usage.\n")
387
- end
388
-
389
- if @cucumber_yml.nil? || !@cucumber_yml.is_a?(Hash)
390
- raise(YmlLoadError,"cucumber.yml was found, but was blank or malformed. Please refer to cucumber's documentation on correct profile usage.\n")
391
- end
392
-
393
- return @cucumber_yml
394
- end
395
-
396
- # TODO: Move to Language
397
- def list_keywords_and_exit(lang)
398
- unless Cucumber::LANGUAGES[lang]
399
- raise("No language with key #{lang}")
400
- end
401
- LanguageHelpFormatter.list_keywords(@out_stream, lang)
402
- Kernel.exit
403
- end
404
-
405
- def list_languages_and_exit
406
- LanguageHelpFormatter.list_languages(@out_stream)
407
- Kernel.exit
408
- end
409
-
410
- def parse_drb
411
- @drb = @args.delete(DRB_FLAG) ? true : false
412
- end
413
-
414
- def default_options
415
- {
416
- :strict => false,
417
- :require => nil,
418
- :lang => nil,
419
- :dry_run => false,
420
- :formats => [],
421
- :excludes => [],
422
- :include_tags => [],
423
- :exclude_tags => [],
424
- :name_regexps => [],
425
- :diff_enabled => true
426
- }
427
- end
428
184
  end
429
185
 
430
186
  end