cukedep 0.1.11 → 0.2.00

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +6 -14
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +10 -10
  4. data/CHANGELOG.md +6 -0
  5. data/Gemfile +5 -5
  6. data/LICENSE.txt +1 -1
  7. data/README.md +1 -1
  8. data/Rakefile +30 -30
  9. data/bin/cukedep +15 -15
  10. data/lib/cukedep/application.rb +105 -112
  11. data/lib/cukedep/cli/cmd-line.rb +11 -13
  12. data/lib/cukedep/config.rb +85 -89
  13. data/lib/cukedep/constants.rb +5 -5
  14. data/lib/cukedep/cuke-runner.rb +191 -198
  15. data/lib/cukedep/customization.rb +30 -30
  16. data/lib/cukedep/feature-model.rb +43 -46
  17. data/lib/cukedep/feature-rep.rb +9 -11
  18. data/lib/cukedep/file-action.rb +11 -18
  19. data/lib/cukedep/gherkin-facade.rb +11 -6
  20. data/lib/cukedep/gherkin-listener.rb +12 -42
  21. data/lib/cukedep/hook-dsl.rb +78 -78
  22. data/lib/cukedep/sandbox.rb +15 -16
  23. data/lib/cukedep.rb +1 -2
  24. data/sample/features/step_definitions/steps.rb +2 -2
  25. data/sample/model/model.rb +19 -20
  26. data/spec/cukedep/application_spec.rb +80 -80
  27. data/spec/cukedep/cli/cmd-line_spec.rb +88 -88
  28. data/spec/cukedep/cuke-runner_spec.rb +74 -74
  29. data/spec/cukedep/customization_spec.rb +31 -31
  30. data/spec/cukedep/debug-file-action.rb +29 -29
  31. data/spec/cukedep/feature-model_spec.rb +100 -100
  32. data/spec/cukedep/feature-rep_spec.rb +2 -1
  33. data/spec/cukedep/file-action_spec.rb +365 -366
  34. data/spec/cukedep/file-parsing.rb +39 -41
  35. data/spec/cukedep/gherkin-facade_spec.rb +48 -49
  36. data/spec/cukedep/gherkin-listener_spec.rb +55 -57
  37. data/spec/cukedep/hook-dsl_spec.rb +182 -182
  38. data/spec/cukedep/sample_features/cukedep_hooks.rb +30 -30
  39. data/spec/cukedep/sample_features/standalone.feature +1 -1
  40. data/templates/rake.erb +12 -21
  41. metadata +80 -58
  42. data/sample/result.html +0 -472
  43. data/spec/cukedep/sample_features/cukedep.rake +0 -215
  44. data/spec/cukedep/sample_features/dependencies.dot +0 -38
  45. data/spec/cukedep/sample_features/feature2id.csv +0 -7
@@ -1,30 +1,30 @@
1
- # File: cukedep_hooks.rb
2
- # This Ruby file specifies the custom code
3
- # associated with Cukedep hooks.
4
-
5
- # The code block will be executed before
6
- # the very first Cucumber invocation.
7
- before_cuke(:all) do
8
- puts 'before all'
9
- end
10
-
11
- # The code block will be executed just before
12
- # a Cucumber invocation.
13
- # The argument is a frozen Array of feature file names
14
- before_cuke(:each) do |_filenames|
15
- puts 'before each'
16
- end
17
-
18
- # The code block will be executed just after
19
- # a Cucumber invocation.
20
- after_cuke(:each) do
21
- puts 'after each'
22
- end
23
-
24
- # The code block will be executed just after
25
- # the last Cucumber invocation.
26
- after_cuke(:all) do
27
- puts 'after all'
28
- end
29
-
30
- # End of file
1
+ # File: cukedep_hooks.rb
2
+ # This Ruby file specifies the custom code
3
+ # associated with Cukedep hooks.
4
+
5
+ # The code block will be executed before
6
+ # the very first Cucumber invocation.
7
+ before_cuke(:all) do
8
+ puts 'before all'
9
+ end
10
+
11
+ # The code block will be executed just before
12
+ # a Cucumber invocation.
13
+ # The argument is a frozen Array of feature file names
14
+ before_cuke(:each) do |_filenames|
15
+ puts 'before each'
16
+ end
17
+
18
+ # The code block will be executed just after
19
+ # a Cucumber invocation.
20
+ after_cuke(:each) do
21
+ puts 'after each'
22
+ end
23
+
24
+ # The code block will be executed just after
25
+ # the last Cucumber invocation.
26
+ after_cuke(:all) do
27
+ puts 'after all'
28
+ end
29
+
30
+ # End of file
@@ -1,4 +1,4 @@
1
- # § <- This character is UTF-8
1
+ # µ <- This character is UTF-8
2
2
  # This feature has no identifier and no explicit dependencies
3
3
  Feature: Registering new videos
4
4
  As a video rental owner
data/templates/rake.erb CHANGED
@@ -51,22 +51,21 @@ end
51
51
  #######################################
52
52
 
53
53
  # Constant holding the location of the original feature files
54
- SOURCE_DIR = '<%=source_dir%>'
54
+ SOURCE_DIR = '<%=source_dir%>'.freeze
55
55
 
56
56
  # Constant holding the location of the Cucumber project
57
- CUKE_PROJECT = '<%=proj_dir%>'
57
+ CUKE_PROJECT = '<%=proj_dir%>'.freeze
58
58
 
59
59
  # The list of all "legacy" feature file
60
60
  # (feature files without the @feature: tag)
61
61
  AllUnidentifiedFeatures = [<%anonymous_list = anonymous.map {|nm| "'#{nm}'"}%>
62
- <%=anonymous_list.join(",\n ")%>
63
- ]
62
+ <%=anonymous_list.join("\n ")%>
63
+ ].freeze
64
64
 
65
65
  # The list of all encountered feature ids
66
- AllFeatureIdentifiers = [ <%identifier_list = feature_ids.map {|fid| ":#{fid}"}%>
67
- <%=identifier_list.join(",\n ")%>
68
- ]
69
-
66
+ AllFeatureIdentifiers = %I[<%identifier_list = feature_ids.map {|fid| "#{fid}"}%>
67
+ <%=identifier_list.join("\n ")%>
68
+ ].freeze
70
69
 
71
70
  def run_builtin_actions(anEvent)
72
71
  actions = Cukedep::ActionTriplet.builtin(anEvent)
@@ -95,12 +94,11 @@ def copy_to_project(filenames)
95
94
  end
96
95
  end
97
96
 
98
-
99
97
  # Helper method. Given the name of files in the features dir of the project,
100
98
  # copy them into the source dir.
101
99
  def copy_from_project(*filenames)
102
100
  filenames.each do |fname|
103
- source_path = project_path_of(fname)
101
+ source_path = project_path_of(fname)
104
102
  dest_path = source_path_of(fname)
105
103
  FileUtils.copy_file(source_path, dest_path)
106
104
  end
@@ -117,12 +115,11 @@ def clean_project_dir(fname_patterns)
117
115
  filenames = Dir.glob(patt)
118
116
  filenames.each { |fn| FileUtils.remove_file(fn) }
119
117
  end
120
- ensure # Always restore previous working dir.
118
+ ensure # Always restore previous working dir.
121
119
  Dir.chdir(curr_dir)
122
120
  end
123
121
  end
124
122
 
125
-
126
123
  # Helper method. Invoke Cucumber with the given project root dir.
127
124
  # Assumption: all features files to execute are placed
128
125
  # in the appropriate folder.
@@ -138,7 +135,6 @@ def invoke_cuke(projectDir)
138
135
  end
139
136
  end
140
137
 
141
-
142
138
  def process_files(filenames)
143
139
  run_builtin_actions(:before_each)
144
140
  copy_to_project(filenames)
@@ -151,17 +147,13 @@ def process_a_feature(filename)
151
147
  process_files([filename])
152
148
  end
153
149
 
154
-
155
150
  # Default rake task is also top-level task
156
151
  task default: :run_all_features
157
152
 
158
-
159
153
  desc 'Run all features'
160
- task run_all_features: [:before_all, :all_features, :after_all] do
161
- ; # Do nothing
154
+ task run_all_features: %I[before_all all_features after_all] do
162
155
  end
163
156
 
164
-
165
157
  desc 'Before all'
166
158
  task :before_all do
167
159
  run_builtin_actions(:before_all)
@@ -172,16 +164,15 @@ task :after_all do
172
164
  run_builtin_actions(:after_all)
173
165
  end
174
166
 
175
-
176
167
  task :unidentified do
177
168
  process_files(AllUnidentifiedFeatures)
178
169
  end
179
170
 
180
171
  # Tasks for feature files involved in dependencies
181
172
  <%deps.each do |dep|%>
182
- <%dep_list = dep.dependents.map { |ff| ":#{ff.feature.identifier}" } %>
173
+ <%dep_list = dep.dependents.map { |ff| "#{ff.feature.identifier}" } %>
183
174
  desc '<%=dep.dependee.feature.identifier%>: run <%=dep.dependee.basename%>'
184
- task <%=dep.dependee.feature.identifier%><%= dep_list.empty? ? '' : %Q|: [#{dep_list.join(', ') }]| %> do
175
+ task <%= dep_list.empty? ? ':' + dep.dependee.feature.identifier : dep.dependee.feature.identifier + ':'%><%= dep_list.empty? ? '' : %Q| %I[#{dep_list.join(' ')}]| %> do
185
176
  process_a_feature('<%=dep.dependee.basename%>')
186
177
  end
187
178
  <%end%>
metadata CHANGED
@@ -1,100 +1,130 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cukedep
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.2.00
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitri Geshef
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-18 00:00:00.000000000 Z
11
+ date: 2018-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.7.0
19
+ version: '3.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.1.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ! '>='
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
30
+ - - ">="
25
31
  - !ruby/object:Gem::Version
26
- version: 0.7.0
32
+ version: 3.1.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: gherkin
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - ! '>='
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '5.0'
40
+ - - ">="
32
41
  - !ruby/object:Gem::Version
33
- version: 1.0.24
42
+ version: 5.0.0
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - ! '>='
47
+ - - "~>"
39
48
  - !ruby/object:Gem::Version
40
- version: 1.0.24
49
+ version: '5.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 5.0.0
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: rake
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
- - - ! '>='
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '12.0'
60
+ - - ">="
46
61
  - !ruby/object:Gem::Version
47
- version: 0.8.0
62
+ version: 12.0.0
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
- - - ! '>='
67
+ - - "~>"
53
68
  - !ruby/object:Gem::Version
54
- version: 0.8.0
69
+ version: '12.0'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 12.0.0
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: rspec
57
75
  requirement: !ruby/object:Gem::Requirement
58
76
  requirements:
59
- - - ! '>='
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '3.6'
80
+ - - ">="
60
81
  - !ruby/object:Gem::Version
61
- version: 3.0.0
82
+ version: 3.6.0
62
83
  type: :development
63
84
  prerelease: false
64
85
  version_requirements: !ruby/object:Gem::Requirement
65
86
  requirements:
66
- - - ! '>='
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.6'
90
+ - - ">="
67
91
  - !ruby/object:Gem::Version
68
- version: 3.0.0
92
+ version: 3.6.0
69
93
  - !ruby/object:Gem::Dependency
70
- name: simplecov
94
+ name: rubygems
71
95
  requirement: !ruby/object:Gem::Requirement
72
96
  requirements:
73
- - - ! '>='
97
+ - - "~>"
74
98
  - !ruby/object:Gem::Version
75
- version: 0.5.0
99
+ version: '2.0'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 2.0.0
76
103
  type: :development
77
104
  prerelease: false
78
105
  version_requirements: !ruby/object:Gem::Requirement
79
106
  requirements:
80
- - - ! '>='
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.0'
110
+ - - ">="
81
111
  - !ruby/object:Gem::Version
82
- version: 0.5.0
112
+ version: 2.0.0
83
113
  - !ruby/object:Gem::Dependency
84
- name: rubygems
114
+ name: simplecov
85
115
  requirement: !ruby/object:Gem::Requirement
86
116
  requirements:
87
- - - ! '>='
117
+ - - ">="
88
118
  - !ruby/object:Gem::Version
89
- version: 2.0.0
119
+ version: 0.10.0
90
120
  type: :development
91
121
  prerelease: false
92
122
  version_requirements: !ruby/object:Gem::Requirement
93
123
  requirements:
94
- - - ! '>='
124
+ - - ">="
95
125
  - !ruby/object:Gem::Version
96
- version: 2.0.0
97
- description: Handle dependencies between feature files
126
+ version: 0.10.0
127
+ description: Handle dependencies between Cucumber feature files
98
128
  email: famished.tiger@yahoo.com
99
129
  executables:
100
130
  - cukedep
@@ -102,19 +132,19 @@ extensions: []
102
132
  extra_rdoc_files:
103
133
  - README.md
104
134
  files:
105
- - .rspec
106
- - .ruby-gemset
107
- - .ruby-version
108
- - .simplecov
109
- - .travis.yml
110
- - .yardopts
111
- - cucumber.yml
112
- - Gemfile
113
- - Rakefile
135
+ - ".rspec"
136
+ - ".ruby-gemset"
137
+ - ".ruby-version"
138
+ - ".simplecov"
139
+ - ".travis.yml"
140
+ - ".yardopts"
114
141
  - CHANGELOG.md
142
+ - Gemfile
115
143
  - LICENSE.txt
116
144
  - README.md
145
+ - Rakefile
117
146
  - bin/cukedep
147
+ - cucumber.yml
118
148
  - lib/cukedep.rb
119
149
  - lib/cukedep/application.rb
120
150
  - lib/cukedep/cli/cmd-line.rb
@@ -137,7 +167,6 @@ files:
137
167
  - sample/model/model.rb
138
168
  - sample/model/rentals.yml
139
169
  - sample/model/users.yml
140
- - sample/result.html
141
170
  - spec/cukedep/application_spec.rb
142
171
  - spec/cukedep/cli/cmd-line_spec.rb
143
172
  - spec/cukedep/cuke-runner_spec.rb
@@ -150,53 +179,46 @@ files:
150
179
  - spec/cukedep/gherkin-facade_spec.rb
151
180
  - spec/cukedep/gherkin-listener_spec.rb
152
181
  - spec/cukedep/hook-dsl_spec.rb
153
- - spec/cukedep/sample_features/cukedep_hooks.rb
154
- - spec/spec_helper.rb
155
182
  - spec/cukedep/sample_features/a_few_tests.feature
156
- - spec/cukedep/sample_features/cukedep.rake
157
- - spec/cukedep/sample_features/dependencies.dot
158
- - spec/cukedep/sample_features/feature2id.csv
183
+ - spec/cukedep/sample_features/cukedep_hooks.rb
184
+ - spec/cukedep/sample_features/files_to_copy/README.md
185
+ - spec/cukedep/sample_features/files_to_copy/file1.txt
186
+ - spec/cukedep/sample_features/files_to_copy/file2.txt
187
+ - spec/cukedep/sample_features/files_to_copy/file3.txt
159
188
  - spec/cukedep/sample_features/more_tests.feature
160
189
  - spec/cukedep/sample_features/other_tests.feature
161
190
  - spec/cukedep/sample_features/some_tests.feature
162
191
  - spec/cukedep/sample_features/standalone.feature
163
192
  - spec/cukedep/sample_features/still_other_tests.feature
164
193
  - spec/cukedep/sample_features/yet_other_tests.feature
165
- - spec/cukedep/sample_features/files_to_copy/file1.txt
166
- - spec/cukedep/sample_features/files_to_copy/file2.txt
167
- - spec/cukedep/sample_features/files_to_copy/file3.txt
168
- - spec/cukedep/sample_features/files_to_copy/README.md
194
+ - spec/spec_helper.rb
169
195
  - templates/rake.erb
170
196
  homepage: https://github.com/famished-tiger/Cukedep
171
197
  licenses:
172
198
  - MIT
173
199
  metadata: {}
174
- post_install_message: ! '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
175
-
200
+ post_install_message: |
201
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
176
202
  Thank you for installing Cukedep...
177
-
178
203
  Enjoy using Cucumber with macros...
179
-
180
204
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
181
-
182
- '
183
205
  rdoc_options:
184
206
  - --exclude="sample|spec"
185
207
  require_paths:
186
208
  - lib
187
209
  required_ruby_version: !ruby/object:Gem::Requirement
188
210
  requirements:
189
- - - ! '>='
211
+ - - ">="
190
212
  - !ruby/object:Gem::Version
191
- version: 1.9.1
213
+ version: 2.1.0
192
214
  required_rubygems_version: !ruby/object:Gem::Requirement
193
215
  requirements:
194
- - - ! '>='
216
+ - - ">="
195
217
  - !ruby/object:Gem::Version
196
218
  version: '0'
197
219
  requirements: []
198
220
  rubyforge_project:
199
- rubygems_version: 2.0.3
221
+ rubygems_version: 2.6.13
200
222
  signing_key:
201
223
  specification_version: 4
202
224
  summary: Manage dependencies between Cucumber feature files