cukedep 0.1.11 → 0.2.00

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.
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