cukedep 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +8 -8
  2. data/CHANGELOG.md +4 -0
  3. data/Rakefile +4 -6
  4. data/lib/cukedep/application.rb +89 -91
  5. data/lib/cukedep/cli/cmd-line.rb +0 -7
  6. data/lib/cukedep/config.rb +70 -74
  7. data/lib/cukedep/constants.rb +1 -1
  8. data/lib/cukedep/cuke-runner.rb +0 -5
  9. data/lib/cukedep/customization.rb +0 -5
  10. data/lib/cukedep/feature-model.rb +1 -7
  11. data/lib/cukedep/feature-rep.rb +0 -4
  12. data/lib/cukedep/file-action.rb +209 -221
  13. data/lib/cukedep/gherkin-facade.rb +7 -10
  14. data/lib/cukedep/gherkin-listener.rb +82 -89
  15. data/lib/cukedep/hook-dsl.rb +0 -4
  16. data/lib/cukedep/sandbox.rb +0 -5
  17. data/sample/features/step_definitions/steps.rb +30 -26
  18. data/sample/features/support/env.rb +1 -1
  19. data/sample/model/model.rb +198 -205
  20. data/sample/result.html +1 -1
  21. data/spec/cukedep/application_spec.rb +15 -16
  22. data/spec/cukedep/cli/cmd-line_spec.rb +13 -16
  23. data/spec/cukedep/cuke-runner_spec.rb +55 -61
  24. data/spec/cukedep/customization_spec.rb +21 -26
  25. data/spec/cukedep/debug-file-action.rb +12 -10
  26. data/spec/cukedep/feature-model_spec.rb +13 -16
  27. data/spec/cukedep/feature-rep_spec.rb +4 -7
  28. data/spec/cukedep/file-action_spec.rb +18 -34
  29. data/spec/cukedep/file-parsing.rb +9 -11
  30. data/spec/cukedep/gherkin-facade_spec.rb +3 -8
  31. data/spec/cukedep/gherkin-listener_spec.rb +10 -12
  32. data/spec/cukedep/hook-dsl_spec.rb +6 -9
  33. data/spec/cukedep/sample_features/cukedep.rake +44 -37
  34. data/spec/cukedep/sample_features/cukedep_hooks.rb +2 -2
  35. data/spec/cukedep/sample_features/dependencies.dot +1 -1
  36. data/templates/rake.erb +36 -29
  37. metadata +2 -2
@@ -6,10 +6,9 @@ require_relative '../spec_helper'
6
6
  require_relative '../../lib/cukedep/feature-rep'
7
7
 
8
8
  module Cukedep # Open module to get rid of long qualified names
9
-
10
9
  describe FeatureRep do
11
10
  # Tag names as provided by Gherkin parser
12
- RawTagNames = %w[@some @feature:CO801_foo @depends_on:CO201_bar @depends_on:CO001_qux]
11
+ RawTagNames = %w(@some @feature:CO801_foo @depends_on:CO201_bar @depends_on:CO001_qux)
13
12
 
14
13
  SampleTagNames = RawTagNames.map { |t| t[1..-1] }
15
14
 
@@ -18,7 +17,7 @@ describe FeatureRep do
18
17
 
19
18
  context 'Creation and initialization:' do
20
19
  it 'could be created with an empty list of tags' do
21
- expect {FeatureRep.new([]) }.not_to raise_error
20
+ expect { FeatureRep.new([]) }.not_to raise_error
22
21
  end
23
22
 
24
23
  it 'could be created with a list of tag names' do
@@ -40,14 +39,12 @@ describe FeatureRep do
40
39
 
41
40
  context 'Provided services:' do
42
41
  it 'should know the feature files it depends on' do
43
- expected_values = %w[CO201_bar CO001_qux]
42
+ expected_values = %w(CO201_bar CO001_qux)
44
43
 
45
44
  expect(subject.dependency_tags.sort).to eq(expected_values.sort)
46
45
  end
47
46
  end # context
48
-
49
47
  end # describe
50
-
51
48
  end # module
52
49
 
53
- # End of file
50
+ # End of file
@@ -5,16 +5,14 @@ require_relative '../spec_helper'
5
5
  require_relative '../../lib/cukedep/file-action'
6
6
 
7
7
  module Cukedep # Open module to get rid of long qualified names
8
-
9
8
  # Test the behaviour of the superclass
10
9
  describe FileAction do
11
- let(:some_patterns) { %w[README.* *tests.feature] }
10
+ let(:some_patterns) { %w(README.* *tests.feature) }
12
11
  let(:subpath) { './some-dir' }
13
12
 
14
13
  subject { FileAction.new(some_patterns, subpath) }
15
14
 
16
15
  context 'Creation & initialization:' do
17
-
18
16
  it 'should be created with file patterns and a subdirectory argument' do
19
17
  # Case 1: empty instance
20
18
  expect { FileAction.new([], '') }.not_to raise_error
@@ -30,12 +28,10 @@ describe FileAction do
30
28
  it "should know the target's subdirectory" do
31
29
  expect(subject.delta).to eq(subpath)
32
30
  end
33
-
34
31
  end # context
35
32
 
36
33
 
37
34
  context 'Basic services:' do
38
-
39
35
  it 'should know whether it is equal to another instance' do
40
36
  # Case 1: comparing with itself
41
37
  expect(subject).to eq(subject)
@@ -50,7 +46,6 @@ describe FileAction do
50
46
  expect(subject).not_to eq(another)
51
47
  end
52
48
  end # context
53
-
54
49
  end # describe
55
50
 
56
51
 
@@ -73,11 +68,12 @@ describe CopyAction do
73
68
 
74
69
  before(:all) do
75
70
  # Clean stuffed dirs
76
- target_dir = File.join(File.dirname(__FILE__), '/sample_features/saved_files')
77
- unless Dir.exist?(target_dir)
78
- Dir.mkdir(target_dir)
79
- else
71
+ path_suffix = '/sample_features/saved_files'
72
+ target_dir = File.join(File.dirname(__FILE__), path_suffix)
73
+ if Dir.exist?(target_dir)
80
74
  clean_dir(target_dir)
75
+ else
76
+ Dir.mkdir(target_dir)
81
77
  end
82
78
  end
83
79
 
@@ -100,7 +96,7 @@ describe CopyAction do
100
96
 
101
97
  # Case: one file pattern
102
98
  instance1 = CopyAction.new(['*.md'], subdir)
103
- expect{ instance1.run!(source_dir, my_dir) }.not_to raise_error
99
+ expect { instance1.run!(source_dir, my_dir) }.not_to raise_error
104
100
 
105
101
  Dir.chdir(my_dir)
106
102
  # Control the result...
@@ -109,15 +105,13 @@ describe CopyAction do
109
105
 
110
106
  # Case: two file patterns
111
107
  instance2 = CopyAction.new(['file1.txt', 'file2.txt'], subdir)
112
- expect{ instance2.run!(source_dir, my_dir) }.not_to raise_error
108
+ expect { instance2.run!(source_dir, my_dir) }.not_to raise_error
113
109
 
114
110
  # Control the result...
115
111
  copied_files = Dir.glob(subdir + '/' + '*.*')
116
112
  expect(copied_files.size).to eq(3)
117
113
  end
118
-
119
114
  end # context
120
-
121
115
  end # describe
122
116
 
123
117
 
@@ -149,7 +143,7 @@ describe DeleteAction do
149
143
 
150
144
  # Case: one file pattern and a subdir
151
145
  instance1 = DeleteAction.new(['*.md'], subdir)
152
- expect{ instance1.run!(my_dir) }.not_to raise_error
146
+ expect { instance1.run!(my_dir) }.not_to raise_error
153
147
  Dir.chdir(my_dir)
154
148
 
155
149
  # Control the result...
@@ -158,7 +152,7 @@ describe DeleteAction do
158
152
 
159
153
  # Case: multiple file patterns and no subdir
160
154
  instance2 = DeleteAction.new(['file1.txt', 'file3.txt'])
161
- expect{ instance2.run!(target_dir) }.not_to raise_error
155
+ expect { instance2.run!(target_dir) }.not_to raise_error
162
156
 
163
157
  # Control the result...
164
158
  remaining_files = Dir.glob(subdir + '/' + '*.*')
@@ -166,20 +160,17 @@ describe DeleteAction do
166
160
 
167
161
  # Delete all files
168
162
  instance3 = DeleteAction.new(['*.*'])
169
- expect{ instance3.run!(target_dir) }.not_to raise_error
163
+ expect { instance3.run!(target_dir) }.not_to raise_error
170
164
 
171
165
  # Control the result...
172
166
  remaining_files = Dir.glob(subdir + '/' + '*.*')
173
167
  expect(remaining_files.size).to eq(0)
174
168
  end
175
169
  end # context
176
-
177
-
178
170
  end # describe
179
171
 
180
172
 
181
173
  describe ActionTriplet do
182
-
183
174
  def saved_files_dir()
184
175
  my_dir = File.dirname(__FILE__)
185
176
  return my_dir + '/sample_features/saved_files'
@@ -218,7 +209,6 @@ describe ActionTriplet do
218
209
  end
219
210
 
220
211
  context 'Creation & initialization:' do
221
-
222
212
  it 'should be created with Hash-like arguments' do
223
213
  # Case 1: empty instance
224
214
  expect { ActionTriplet.new(empty_config) }.not_to raise_error
@@ -226,7 +216,6 @@ describe ActionTriplet do
226
216
  # Case 2: stuffed instance
227
217
  expect { ActionTriplet.new(sample_config) }.not_to raise_error
228
218
  end
229
-
230
219
  end # context
231
220
 
232
221
  context 'Basic services:' do
@@ -248,7 +237,6 @@ describe ActionTriplet do
248
237
  end # context
249
238
 
250
239
 
251
-
252
240
  context 'Actions on files:' do
253
241
  before(:each) do
254
242
  # Store the working dir before starting
@@ -267,15 +255,14 @@ describe ActionTriplet do
267
255
  clean_dir(proj_dir)
268
256
  end
269
257
 
270
-
271
258
  # Directories
272
259
  def proj_dir()
273
260
  my_dir = File.join(File.dirname(__FILE__), '/dummy_project')
274
261
 
275
- unless Dir.exist?(my_dir)
276
- Dir.mkdir(my_dir)
277
- else
262
+ if Dir.exist?(my_dir)
278
263
  clean_dir(my_dir)
264
+ else
265
+ Dir.mkdir(my_dir)
279
266
  end
280
267
 
281
268
  return my_dir
@@ -286,7 +273,6 @@ describe ActionTriplet do
286
273
  File.join(File.dirname(__FILE__), child)
287
274
  end
288
275
 
289
-
290
276
  def clean_dir(aDirectory)
291
277
  # Create an instance with just delete file items
292
278
  instance = DeleteAction.new(all_files, '')
@@ -318,7 +304,7 @@ describe ActionTriplet do
318
304
  Dir.chdir(project_dir)
319
305
  actuals = Dir['*.*']
320
306
  expect(actuals.size).to eq(3)
321
- expect(actuals.sort).to eq(%w[file1.txt file2.txt file3.txt])
307
+ expect(actuals.sort).to eq(%w(file1.txt file2.txt file3.txt))
322
308
 
323
309
  # Clean project dir
324
310
  clean_dir(project_dir)
@@ -333,9 +319,9 @@ describe ActionTriplet do
333
319
 
334
320
  actuals = Dir['*.*']
335
321
  expect(actuals.size).to eq(4)
336
- (txt_files, md_files) = actuals.partition {|f| f =~ /\.txt/}
337
- expect(txt_files.sort).to eq(%w[file1.txt file2.txt file3.txt])
338
- expect(md_files).to eq(%w[README.md])
322
+ (txt_files, md_files) = actuals.partition { |f| f =~ /\.txt/ }
323
+ expect(txt_files.sort).to eq(%w(file1.txt file2.txt file3.txt))
324
+ expect(md_files).to eq(%w(README.md))
339
325
  end
340
326
 
341
327
  =begin
@@ -374,9 +360,7 @@ describe ActionTriplet do
374
360
  end
375
361
  =end
376
362
  end # context
377
-
378
363
  end # describe
379
-
380
364
  end # module
381
365
 
382
366
  # End of file
@@ -3,23 +3,23 @@
3
3
  require_relative '../../lib/cukedep/gherkin-facade'
4
4
 
5
5
  module Cukedep # This module is used as a namespace
6
-
7
6
  # Mixin module used in tests.
8
7
  # Purpose: to parse a sample of feature files.
9
8
  module FileParsing
10
9
  # The list of sample feature file names.
11
- SampleFileNames = [ "a_few_tests.feature",
12
- "some_tests.feature",
13
- "still_other_tests.feature",
14
- "yet_other_tests.feature",
15
- "more_tests.feature",
16
- "standalone.feature"
10
+ SampleFileNames =
11
+ [ 'a_few_tests.feature',
12
+ 'some_tests.feature',
13
+ 'still_other_tests.feature',
14
+ 'yet_other_tests.feature',
15
+ 'more_tests.feature',
16
+ 'standalone.feature'
17
17
  ]
18
18
 
19
19
  # Helper method. It parses sample feature files and
20
20
  # notifies the provided listener of its progress.
21
21
  def parse_for(aListener)
22
- orig_dir = Dir.getwd()
22
+ orig_dir = Dir.getwd
23
23
  begin
24
24
  # Determine the folder where the sample files reside
25
25
  my_dir = File.dirname(__FILE__)
@@ -37,7 +37,5 @@ module Cukedep # This module is used as a namespace
37
37
  end
38
38
 
39
39
  end # module
40
-
41
40
  end # module
42
-
43
- # End of file
41
+ # End of file
@@ -7,7 +7,6 @@ require_relative '../../lib/cukedep/gherkin-facade'
7
7
  require_relative '../../lib/cukedep/gherkin-listener'
8
8
 
9
9
  module Cukedep # Open module to get rid of long qualified names
10
-
11
10
  describe GherkinFacade do
12
11
  subject { GherkinFacade.new(false, 'UTF-8') }
13
12
 
@@ -28,7 +27,6 @@ describe GherkinFacade do
28
27
  it 'should know the feature file external encoding' do
29
28
  expect(subject.external_encoding).to eq('UTF-8')
30
29
  end
31
-
32
30
  end # context
33
31
 
34
32
 
@@ -38,17 +36,14 @@ describe GherkinFacade do
38
36
  it 'should parse ASCII feature files' do
39
37
  instance = GherkinFacade.new(false, 'US-ASCII')
40
38
  patterns = [ 'sample_features/a_few_tests.feature' ]
41
- expect {instance.parse_features(listener, patterns)}.not_to raise_error
39
+ expect { instance.parse_features(listener, patterns) }.not_to raise_error
42
40
  end
43
41
 
44
42
  it 'should parse feature files with other external encoding' do
45
43
  patterns = [ 'sample_features/standalone.feature' ]
46
- expect {subject.parse_features(listener, patterns)}.not_to raise_error
44
+ expect { subject.parse_features(listener, patterns) }.not_to raise_error
47
45
  end
48
46
  end # context
49
-
50
47
  end # describe
51
-
52
48
  end # module
53
-
54
- # End of file
49
+ # End of file
@@ -9,7 +9,6 @@ require_relative 'file-parsing'
9
9
  require_relative '../../lib/cukedep/gherkin-listener'
10
10
 
11
11
  module Cukedep # Open module to get rid of long qualified names
12
-
13
12
  describe GherkinListener do
14
13
  include FileParsing # Use mixin module to parse of sample feature files
15
14
 
@@ -17,7 +16,7 @@ describe GherkinListener do
17
16
 
18
17
  context 'Creation and initialization:' do
19
18
  it 'should be created without argument' do
20
- expect {GherkinListener.new }.not_to raise_error
19
+ expect { GherkinListener.new }.not_to raise_error
21
20
  end
22
21
 
23
22
  it 'should have no feature file at start' do
@@ -28,32 +27,31 @@ describe GherkinListener do
28
27
  context 'Provided services:' do
29
28
  it 'should build a FeatureFileRep per parsed file' do
30
29
  parse_for(subject)
31
- expect(subject.feature_files.size).to eq(FileParsing::SampleFileNames.size)
30
+ expect(subject.feature_files.size)
31
+ .to eq(FileParsing::SampleFileNames.size)
32
32
  end
33
33
 
34
34
  it 'should know the tags of each feature' do
35
35
  parse_for(subject)
36
36
 
37
37
  expectations = [
38
- %w[a_few feature:qux],
39
- %w[some feature:foo depends_on:bar depends_on:qux],
40
- %w[still_other feature:baz],
41
- %w[yet_other feature:bar depends_on:baz depends_on:qux depends_on:quux],
42
- %w[feature:quux more],
38
+ %w(a_few feature:qux),
39
+ %w(some feature:foo depends_on:bar depends_on:qux),
40
+ %w(still_other feature:baz),
41
+ %w(yet_other feature:bar depends_on:baz depends_on:qux depends_on:quux),
42
+ %w(feature:quux more),
43
43
  []
44
44
  ]
45
45
 
46
46
  # Sort the expectations to ease further comparison
47
- expectations.map! { |tags| tags.sort }
47
+ expectations.map!(&:sort)
48
48
 
49
49
  subject.feature_files.each_with_index do |file, i|
50
50
  expect(file.feature.tags.sort).to eq(expectations[i])
51
51
  end
52
52
  end
53
53
  end # context
54
-
55
54
  end # describe
56
-
57
55
  end # module
58
56
 
59
- # End of file
57
+ # End of file
@@ -7,10 +7,8 @@ require_relative '../spec_helper'
7
7
  require_relative '../../lib/cukedep/hook-dsl'
8
8
 
9
9
  module Cukedep # Open module to get rid of long qualified names
10
-
11
10
  # Let's specify the behaviour of the mix-in module
12
11
  describe HookDSL do
13
-
14
12
  subject do
15
13
  obj = Object.new
16
14
  obj.extend(HookDSL)
@@ -19,7 +17,7 @@ describe HookDSL do
19
17
 
20
18
  context 'Hook definitions:' do
21
19
  let(:code_block) do
22
- -> { ; }
20
+ -> { }
23
21
  end
24
22
 
25
23
  it 'should accept the before all hook' do
@@ -59,11 +57,13 @@ describe HookDSL do
59
57
  # Case 1: before invalid with block code
60
58
  msg = "Unknown scope 'invalid' for before_cuke hook."
61
59
  error = StandardError
62
- expect { subject.before_cuke(:invalid, &code_block) }.to raise_error(error, msg)
60
+ expect { subject.before_cuke(:invalid, &code_block) }
61
+ .to raise_error(error, msg)
63
62
 
64
63
  # Case 2: after invalid with block code
65
64
  msg = "Unknown scope 'invalid' for after_cuke hook."
66
- expect { subject.after_cuke(:invalid, &code_block) }.to raise_error(error, msg)
65
+ expect { subject.after_cuke(:invalid, &code_block) }
66
+ .to raise_error(error, msg)
67
67
  end
68
68
 
69
69
 
@@ -118,7 +118,6 @@ describe HookDSL do
118
118
  expect(subject.after_hooks.keys).to eq([:all, :each])
119
119
  expect(subject.after_hooks[:each]).to eq(code_block)
120
120
  end
121
-
122
121
  end # context
123
122
  =begin
124
123
  context 'Executing handler code:' do
@@ -177,9 +176,7 @@ describe HookDSL do
177
176
 
178
177
  end # context
179
178
  =end
180
-
181
179
  end # describe
182
-
183
180
  end # module
184
181
 
185
- # End of file
182
+ # End of file
@@ -1,5 +1,5 @@
1
1
  # File: cukedep.rake
2
- # Generated by Cukedep 0.1.10 on 02/04/2015 21:52:33
2
+ # Generated by Cukedep 0.1.11 on 18/06/2015 21:34:32
3
3
 
4
4
  require 'rake'
5
5
 
@@ -13,19 +13,25 @@ require 'cucumber/rake/task'
13
13
  # UGLY workaround for bug in Cucumber's rake task
14
14
  if Gem::VERSION[0].to_i >= 2 && Cucumber::VERSION <= '1.3.2'
15
15
  # Monkey-patch a buggy method
16
- class Cucumber::Rake::Task::ForkedCucumberRunner
17
- def gem_available?(gemname)
18
- if Gem::VERSION[0].to_i >= 2
19
- gem_available_new_rubygems?(gemname)
20
- else
21
- gem_available_old_rubygems?(gemname)
16
+ module Cucumber
17
+ module Rake
18
+ module Task
19
+ class ForkedCucumberRunner
20
+ def gem_available?(gemname)
21
+ if Gem::VERSION[0].to_i >= 2
22
+ gem_available_new_rubygems?(gemname)
23
+ else
24
+ gem_available_old_rubygems?(gemname)
25
+ end
26
+ end
27
+ end
22
28
  end
23
- end
29
+ end
24
30
  end # class
25
31
  end
26
32
 
27
33
  # Create a task called cucumber
28
- Cucumber::Rake::Task.new do |t|
34
+ Cucumber::Rake::Task.new do |_|
29
35
  end
30
36
 
31
37
  #######################################
@@ -38,11 +44,12 @@ SOURCE_DIR = 'C:/Ruby193/lib/ruby/site_ruby/Cukedep/spec/cukedep/sample_features
38
44
  # Constant holding the location of the Cucumber project
39
45
  CUKE_PROJECT = 'C:/Ruby193/lib/ruby/site_ruby/Cukedep/sample'
40
46
 
41
- # The list of all "legacy" feature file (feature files without the @feature: tag)
47
+ # The list of all "legacy" feature file
48
+ # (feature files without the @feature: tag)
42
49
  AllUnidentifiedFeatures = [
43
50
  'standalone.feature'
44
51
  ]
45
-
52
+
46
53
  # The list of all encountered feature ids
47
54
  AllFeatureIdentifiers = [
48
55
  :qux,
@@ -71,7 +78,7 @@ def project_path_of(aFilename)
71
78
  CUKE_PROJECT + '/features/' + aFilename
72
79
  end
73
80
 
74
- # Helper method. Given the name of files in the source dir, copy them
81
+ # Helper method. Given the name of files in the source dir, copy them
75
82
  # into the project dir.
76
83
  def copy_to_project(filenames)
77
84
  filenames.each do |fname|
@@ -82,7 +89,7 @@ def copy_to_project(filenames)
82
89
  end
83
90
 
84
91
 
85
- # Helper method. Given the name of files in the features dir of the project,
92
+ # Helper method. Given the name of files in the features dir of the project,
86
93
  # copy them into the source dir.
87
94
  def copy_from_project(*filenames)
88
95
  filenames.each do |fname|
@@ -92,28 +99,28 @@ def copy_from_project(*filenames)
92
99
  end
93
100
  end
94
101
 
95
- # Helper method. Delete all the files in the
96
- # the project's features dir that match one of
102
+ # Helper method. Delete all the files in the
103
+ # the project's features dir that match one of
97
104
  # the file name pattern
98
105
  def clean_project_dir(fname_patterns)
99
- curr_dir = Dir.getwd()
106
+ curr_dir = Dir.getwd
100
107
  begin
101
108
  Dir.chdir(CUKE_PROJECT + '/features')
102
109
  fname_patterns.each do |patt|
103
110
  filenames = Dir.glob(patt)
104
111
  filenames.each { |fn| FileUtils.remove_file(fn) }
105
112
  end
106
- ensure #Always restore previous working dir.
113
+ ensure # Always restore previous working dir.
107
114
  Dir.chdir(curr_dir)
108
115
  end
109
116
  end
110
117
 
111
118
 
112
119
  # Helper method. Invoke Cucumber with the given project root dir.
113
- # Assumption: all features files to execute are placed
120
+ # Assumption: all features files to execute are placed
114
121
  # in the appropriate folder.
115
122
  def invoke_cuke(projectDir)
116
- curr_dir = Dir.getwd()
123
+ curr_dir = Dir.getwd
117
124
  Dir.chdir(projectDir)
118
125
  begin
119
126
  do_cuke = Rake::Task[:cucumber]
@@ -130,7 +137,7 @@ def process_files(filenames)
130
137
  copy_to_project(filenames)
131
138
  invoke_cuke(CUKE_PROJECT)
132
139
  run_builtin_actions(:after_each)
133
- #del_from_project(filenames)
140
+ # del_from_project(filenames)
134
141
  end
135
142
 
136
143
  def process_a_feature(filename)
@@ -139,16 +146,16 @@ end
139
146
 
140
147
 
141
148
  # Default rake task is also top-level task
142
- task :default => :run_all_features
149
+ task default: :run_all_features
143
150
 
144
151
 
145
152
  desc 'Run all features'
146
- task :run_all_features => [:before_all, :all_features, :after_all] do
153
+ task run_all_features: [:before_all, :all_features, :after_all] do
147
154
  ; # Do nothing
148
155
  end
149
156
 
150
157
 
151
- desc 'Before all'
158
+ desc 'Before all'
152
159
  task :before_all do
153
160
  run_builtin_actions(:before_all)
154
161
  end
@@ -166,43 +173,43 @@ end
166
173
  # Tasks for feature files involved in dependencies
167
174
 
168
175
 
169
- desc "qux: run a_few_tests.feature"
170
- task :qux do
176
+ desc 'qux: run a_few_tests.feature'
177
+ task qux do
171
178
  process_a_feature('a_few_tests.feature')
172
179
  end
173
180
 
174
181
 
175
- desc "quux: run more_tests.feature"
176
- task :quux do
182
+ desc 'quux: run more_tests.feature'
183
+ task quux do
177
184
  process_a_feature('more_tests.feature')
178
185
  end
179
186
 
180
187
 
181
- desc "corge: run other_tests.feature"
182
- task :corge => [:foo] do
188
+ desc 'corge: run other_tests.feature'
189
+ task corge: [:foo] do
183
190
  process_a_feature('other_tests.feature')
184
191
  end
185
192
 
186
193
 
187
- desc "foo: run some_tests.feature"
188
- task :foo => [:bar, :qux] do
194
+ desc 'foo: run some_tests.feature'
195
+ task foo: [:bar, :qux] do
189
196
  process_a_feature('some_tests.feature')
190
197
  end
191
198
 
192
199
 
193
- desc "baz: run still_other_tests.feature"
194
- task :baz do
200
+ desc 'baz: run still_other_tests.feature'
201
+ task baz do
195
202
  process_a_feature('still_other_tests.feature')
196
203
  end
197
204
 
198
205
 
199
- desc "bar: run yet_other_tests.feature"
200
- task :bar => [:baz, :qux, :quux] do
206
+ desc 'bar: run yet_other_tests.feature'
207
+ task bar: [:baz, :qux, :quux] do
201
208
  process_a_feature('yet_other_tests.feature')
202
209
  end
203
210
 
204
211
 
205
- task :all_features => ([:unidentified] + AllFeatureIdentifiers) do
212
+ task all_features: ([:unidentified] + AllFeatureIdentifiers) do
206
213
  end
207
214
 
208
- # End of file
215
+ # End of file