cucumber-core 11.0.0 → 12.0.0

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +212 -290
  3. data/README.md +3 -3
  4. data/lib/cucumber/core/event.rb +1 -1
  5. data/lib/cucumber/core/test/case.rb +11 -1
  6. data/lib/cucumber/core/test/data_table.rb +4 -0
  7. data/lib/cucumber/core/test/doc_string.rb +4 -1
  8. data/lib/cucumber/core/test/empty_multiline_argument.rb +2 -2
  9. data/lib/cucumber/core/test/filters/locations_filter.rb +1 -1
  10. data/lib/cucumber/core/test/location.rb +7 -0
  11. data/lib/cucumber/core/test/step.rb +4 -0
  12. metadata +55 -98
  13. data/lib/cucumber/core/version.rb +0 -10
  14. data/spec/coverage.rb +0 -12
  15. data/spec/cucumber/core/compiler_spec.rb +0 -241
  16. data/spec/cucumber/core/event_bus_spec.rb +0 -163
  17. data/spec/cucumber/core/event_spec.rb +0 -40
  18. data/spec/cucumber/core/filter_spec.rb +0 -101
  19. data/spec/cucumber/core/gherkin/parser_spec.rb +0 -162
  20. data/spec/cucumber/core/gherkin/writer_spec.rb +0 -332
  21. data/spec/cucumber/core/report/summary_spec.rb +0 -178
  22. data/spec/cucumber/core/test/action_spec.rb +0 -153
  23. data/spec/cucumber/core/test/case_spec.rb +0 -125
  24. data/spec/cucumber/core/test/data_table_spec.rb +0 -79
  25. data/spec/cucumber/core/test/doc_string_spec.rb +0 -111
  26. data/spec/cucumber/core/test/duration_matcher.rb +0 -20
  27. data/spec/cucumber/core/test/empty_multiline_argument_spec.rb +0 -28
  28. data/spec/cucumber/core/test/filters/locations_filter_spec.rb +0 -271
  29. data/spec/cucumber/core/test/location_spec.rb +0 -129
  30. data/spec/cucumber/core/test/result_spec.rb +0 -504
  31. data/spec/cucumber/core/test/runner_spec.rb +0 -320
  32. data/spec/cucumber/core/test/step_spec.rb +0 -88
  33. data/spec/cucumber/core/test/timer_spec.rb +0 -25
  34. data/spec/cucumber/core_spec.rb +0 -262
  35. data/spec/report_api_spy.rb +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 60b27377ea97fd56c134f94c5b763c065a1a491b804ccbe6b0def5110a164c29
4
- data.tar.gz: e075c8ffb073c1de897ca63279277788fa1b2ebcbd773ca2cc2f81b66ac534b2
3
+ metadata.gz: 5044df1d888874e71128efa080115becbb8c21a6e0ea79da117119b88390ae99
4
+ data.tar.gz: a3a96cb3867f71c52f8cd430271f8751a8b819b3d195f027ca8573af4b537c6d
5
5
  SHA512:
6
- metadata.gz: 8009056404faf8f0ab3731301d108629b929ce48d712fcc59640cd46f98b0a3164795ec818976d0690f39ebb88e658c0f892795c19b3da718a500b1956f6e10c
7
- data.tar.gz: 198e062613c2c2110acf579e5aceb0fecd100c1a76ed2824e06e4468cf1cb87d35c36e76ac9676a04d7ceacfc57f702046b9e71aaab7e0e42cdd0d6939d6229b
6
+ metadata.gz: ffab80fbb75922f2580383bdfa3747e1675dc524c945df0c94b5ae6146bd77907526ed81a049ea0a05b68cac5e5267ca0c698cc0b4483acd6e0428feedf4cbf8
7
+ data.tar.gz: 4ee61046f1f49501db71e4a9d2792a4205c4fcd37da5481dd86cfe7a9be1fc01988a3ed5dc561332538969bd44cfa762d80712a6b4bc5d8594d24a9d24181932
data/CHANGELOG.md CHANGED
@@ -1,365 +1,287 @@
1
- Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) on how to contribute to Cucumber.
1
+ # Changelog
2
2
 
3
- ## [Unreleased](https://github.com/cucumber/cucumber-ruby-core/compare/v11.0.0...main)
4
-
5
- ### Added
3
+ ## [Unreleased]
6
4
 
5
+ ## [12.0.0] - 2023-09-06
7
6
  ### Changed
8
-
9
- ### Deprecate
7
+ - Update gherkin and messages minimum dependencies
8
+ - Added in new rubocop sub-gems for testing, pinning versions where appropriate
9
+ - Removed all redundant / incorrect rubocop config overrides (Placed in TODO file)
10
10
 
11
11
  ### Removed
12
+ - Remove support for ruby 2.4 and below. 2.5 or higher is required now
12
13
 
13
- ### Fixed
14
-
15
- ### Dependencies
16
-
17
- ## [11.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...v11.0.0)
18
-
19
- ### Dependencies
20
-
21
- * Updated `cucumber-gherkin` and `cucumber-messages`
22
-
23
- ## [10.1.1](https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.0...v10.1.1)
24
-
25
- ### Dependencies
26
-
27
- * Patched `cucumber-tag-expressions`
28
-
29
- ## [10.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.1...v10.1.0)
30
-
31
- ### Dependencies
32
-
33
- * Patched `cucumber-gherkin`, `cucumber-messages` and `cucumber-tag-expressions`
34
-
35
- ## [10.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.0...v10.0.1)
36
-
37
- ### Dependencies
38
-
39
- * Patched `cucumber-gherkin` and `cucumber-messages`
40
-
41
- ## [10.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.1...v10.0.0)
42
-
43
- ### Dependencies
44
-
45
- * Upgraded to gherkin v20 and messages v17.
46
-
47
- This removes protocol buffers from the runtime dependencies.
48
-
49
- This deeply impacts the API as the internal representation of messages has changed from
50
- Protocol Buffer objects to new auto-generated DTOs.
51
-
52
- ## [9.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.0...v9.0.1)
14
+ ## [11.1.0] - 2022-12-22
15
+ ### Changed
16
+ - Update gherkin and messages dependencies
53
17
 
54
18
  ### Fixed
19
+ - Restore support for matching a scenario by tag and step line numbers. ([#237](https://github.com/cucumber/cucumber-ruby-core/pull/237), [#238](https://github.com/cucumber/cucumber-ruby-core/pull/238), [#239](https://github.com/cucumber/cucumber-ruby-core/pull/239))
55
20
 
56
- * Skipped scenarios do not affect anymore status of flaky scenarios on retry
57
- ([#218](https://github.com/cucumber/cucumber-ruby-core/pull/218) @eduardrudko)
21
+ ## [11.0.0]
22
+ ### Changed
23
+ - Updated `cucumber-gherkin` and `cucumber-messages`
58
24
 
59
- ## [9.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.1...v9.0.0)
25
+ ## [10.1.1]
26
+ ### Changed
27
+ - Patched `cucumber-tag-expressions`
60
28
 
61
- ### Dependencies
29
+ ## [10.1.0]
30
+ ### Changed
31
+ - Patched `cucumber-gherkin`, `cucumber-messages` and `cucumber-tag-expressions`
62
32
 
63
- * Upgraded to gherkin v18 and messages v15
64
- * Updated other dependencies (look at the diff for details)
33
+ ## [10.0.1]
34
+ ### Changed
35
+ - Patched `cucumber-gherkin` and `cucumber-messages`
65
36
 
66
- ## [8.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.0...v8.0.1)
37
+ ## [10.0.0]
38
+ ### Changed
39
+ - Upgraded to gherkin v20 and messages v17.
67
40
 
41
+ ## [9.0.1]
68
42
  ### Fixed
43
+ - Skipped scenarios do not affect anymore status of flaky scenarios on retry
44
+ ([#218](https://github.com/cucumber/cucumber-ruby-core/pull/218) @eduardrudko)
69
45
 
70
- * Make releases from docker using secrets from keybase
71
-
72
- ## [8.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v7.1.0...v8.0.0)
73
-
74
- This release failed
75
-
76
- ### Dependencies
77
-
78
- * Updated dependencies (look at the diff for details)
79
-
80
- ## [7.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v7.0.0...v7.1.0)
81
-
46
+ ## [9.0.0]
82
47
  ### Changed
48
+ - Upgraded to gherkin v18 and messages v15
49
+ - Updated other dependencies (look at the diff for details)
83
50
 
84
- * Updated gems:
85
- * `cucumber-gherkin` ~> 14.0.1
86
- * `cucumber-messages` ~> 12.2.0
87
-
88
- ## [7.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v6.0.0...v7.0.0)
51
+ ## [8.0.1]
52
+ ### Fixed
53
+ - Make releases from docker using secrets from keybase
89
54
 
55
+ ## [8.0.0]
90
56
  ### Changed
57
+ - Updated dependencies (look at the diff for details)
91
58
 
92
- * Updated monorepo libraries:
93
- - cucumber-gherkin ~> 13
94
- - cucumber-messages ~> 12
95
-
96
- ## [6.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.2...v6.0.0)
97
-
59
+ ## [7.1.0]
98
60
  ### Changed
61
+ - `cucumber-gherkin` ~> 14.0.1
62
+ - `cucumber-messages` ~> 12.2.0
63
+ - Updated gems:
99
64
 
100
- * Update to Gherkin 10
65
+ ## [7.0.0]
66
+ ### Changed
67
+ - cucumber-gherkin ~> 13
68
+ - cucumber-messages ~> 12
69
+ - Updated monorepo libraries:
101
70
 
71
+ ## [6.0.0]
102
72
  ### Added
73
+ - Add `envelope` event, which are used when emitting `Cucumber::Messages`
74
+ - Add `TestCaseCreated` and `TestStepCreated` events, emitted when compiling a `Pickle`
75
+ - Add `Id` field to `TestCase` and `TestStep`
76
+ - Added rubocop (with todo file), and removed backports gems
77
+ ([#186](https://github.com/cucumber/cucumber-ruby-core/pull/186),
78
+ [#182](https://github.com/cucumber/cucumber-ruby-core/issues/182)
79
+ [tas50](https://github.com/tas50),
80
+ [luke-hill](https://github.com/luke-hill))
103
81
 
104
- * Add `envelope` event, which are used when emitting `Cucumber::Messages`
105
- * Add `TestCaseCreated` and `TestStepCreated` events, emitted when compiling a `Pickle`
106
- * Add `Id` field to `TestCase` and `TestStep`
107
- * Added rubocop (with todo file), and removed backports gems
108
- ([#186](https://github.com/cucumber/cucumber-ruby-core/pull/186),
109
- [#182](https://github.com/cucumber/cucumber-ruby-core/issues/182)
110
- [tas50](https://github.com/tas50),
111
- [luke-hill](https://github.com/luke-hill))
82
+ ### Changed
83
+ - Update to Gherkin 10
112
84
 
113
85
  ### Removed
86
+ - Remove location for MultiLine arguments
114
87
 
115
- * Remove location for MultiLine arguments
116
-
117
-
118
- ## [5.0.2](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.1...v5.0.2)
119
-
88
+ ## [5.0.2]
120
89
  ### Changed
90
+ - Update to use Gherkin v8
121
91
 
122
- * Update to use Gherkin v8
123
-
124
- ## [5.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.0...v5.0.1)
125
-
92
+ ## [5.0.1]
126
93
  ### Removed
94
+ - Remove support for ruby 2.2 and below. 2.3 or higher is required now.
127
95
 
128
- * Remove support for ruby 2.2 and below. 2.3 or higher is required now.
129
-
130
- ## [5.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v4.0.0...v5.0.0)
131
-
96
+ ## [5.0.0]
132
97
  ### Changed
98
+ - Update to use Gherkin v7
133
99
 
134
- * Update to use Gherkin v7
135
-
136
- ## [4.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v4.0.0)
137
-
100
+ ## [4.0.0]
138
101
  ### Changed
139
-
140
- * Update to use Gherkin v6 ([#158](https://github.com/cucumber/cucumber-ruby-core/pull/158) @brasmusson)
141
- * Let Scenarios with no Steps get the result status Undefined ([#157](https://github.com/cucumber/cucumber-ruby-core/pull/157) @brasmusson)
142
- * Convert to use the Gherkin compiler and Pickles ([#156](https://github.com/cucumber/cucumber-ruby-core/pull/156) @brasmusson)
143
-
144
- ### Added
145
-
146
- * N/A
147
-
148
- ### Fixed
149
-
150
- * N/A
102
+ - Update to use Gherkin v6 ([#158](https://github.com/cucumber/cucumber-ruby-core/pull/158) @brasmusson)
103
+ - Let Scenarios with no Steps get the result status Undefined ([#157](https://github.com/cucumber/cucumber-ruby-core/pull/157) @brasmusson)
104
+ - Convert to use the Gherkin compiler and Pickles ([#156](https://github.com/cucumber/cucumber-ruby-core/pull/156) @brasmusson)
151
105
 
152
106
  ### Removed
107
+ - Remove the support for old style tag expressions ([#159](https://github.com/cucumber/cucumber-ruby-core/pull/159) @brasmusson)
153
108
 
154
- * Remove the support for old style tag expressions ([#159](https://github.com/cucumber/cucumber-ruby-core/pull/159) @brasmusson)
155
-
156
- ### Improved
157
-
158
- * N/A
159
-
160
- ## [3.2.1](https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v3.2.1)
161
-
109
+ ## [3.2.1]
162
110
  ### Fixed
111
+ - Switched `gherkin` in Gemspec to use _pessimistic_ versioning. (These two commits aren't merged into `master`, as they already exist in newer commits. This is a 'backported' patch to resolve [#160](https://github.com/cucumber/cucumber-ruby-core/issues/160)).
163
112
 
164
- * Switched `gherkin` in Gemspec to use _pessimistic_ versioning. (These two commits aren't merged into `master`, as they already exist in newer commits. This is a 'backported' patch to resolve [#160](https://github.com/cucumber/cucumber-ruby-core/issues/160)).
165
-
166
- ## [3.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.1.0...v3.2.0)
167
-
113
+ ## [3.2.0]
168
114
  ### Added
169
-
170
- * Add the GherkinSourceParsedEvent ([#155](https://github.com/cucumber/cucumber-ruby-core/pull/155) @brasmusson)
171
- * Add #original_location to Cucumber::Core::Ast::Step and Cucumber::Core::Test::Step ([#150](https://github.com/cucumber/cucumber-ruby-core/pull/150), [#149](https://github.com/cucumber/cucumber-ruby-core/issues/149) @brasmusson)
115
+ - Add the GherkinSourceParsedEvent ([#155](https://github.com/cucumber/cucumber-ruby-core/pull/155) @brasmusson)
116
+ - Add #original_location to Cucumber::Core::Ast::Step and Cucumber::Core::Test::Step ([#150](https://github.com/cucumber/cucumber-ruby-core/pull/150), [#149](https://github.com/cucumber/cucumber-ruby-core/issues/149) @brasmusson)
172
117
 
173
118
  ### Fixed
119
+ - Set message and backtrace for undefined result also when skipping (@brasmusson)
174
120
 
175
- * Set message and backtrace for undefined result also when skipping (@brasmusson)
176
-
177
- ## [3.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0...3.1.0)
178
-
121
+ ## [3.1.0]
179
122
  ### Changed
123
+ - Upgraded to `cucumber-tag_expressions` 1.1.0
124
+ - Upgraded to `gherkin` 5.0.0
180
125
 
181
- * Upgraded to `cucumber-tag_expressions` 1.1.0
182
- * Upgraded to `gherkin` 5.0.0
183
-
184
- ## [3.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0.pre.2...v3.0.0) (2017-09-27)
126
+ ## [3.0.0]
127
+ ### Added
128
+ - Do not create test cases for scenarios with no steps ([#144](https://github.com/cucumber/cucumber-ruby-core/pull/144) @brasmusson)
129
+ - Handle selective strict settings ([#143](https://github.com/cucumber/cucumber-ruby-core/pull/143) @brasmusson)
185
130
 
186
131
  ### Changed
132
+ - Step#name renamed to #text ([#137](https://github.com/cucumber/cucumber-ruby-core/pull/137) [@olleolleolle](https://github.com/olleolleolle))
133
+ - Use past tense in event names (`xStarting` -> `xStarted`) (see [cucumber/cucumber-ruby#1166](https://github.com/cucumber/cucumber-ruby/issues/1166) @brasmusson).
187
134
 
188
- * Step#name renamed to #text ([#137](https://github.com/cucumber/cucumber-ruby-core/pull/137) [@olleolleolle](https://github.com/olleolleolle))
189
- * Use past tense in event names (`xStarting` -> `xStarted`) (see [cucumber/cucumber-ruby#1166](https://github.com/cucumber/cucumber-ruby/issues/1166) @brasmusson).
135
+ ### Fixed
136
+ - Fix DataTable's Location to be aware of all of its lines ([#142](https://github.com/cucumber/cucumber-ruby-core/pull/142) @botandrose)
137
+ - As per [#251](https://github.com/cucumber/cucumber/issues/251): renamed History.md to CHANGELOG.md, added contributing message at beginning, and misc formatting. ([#145](https://github.com/cucumber/cucumber-ruby-core/pull/145) [jaysonesmith](https://github.com/jaysonesmith))
190
138
 
139
+ ## [3.0.0.pre.2]
191
140
  ### Added
192
-
193
- * Do not create test cases for scenarios with no steps ([#144](https://github.com/cucumber/cucumber-ruby-core/pull/144) @brasmusson)
194
- * Handle selective strict settings ([#143](https://github.com/cucumber/cucumber-ruby-core/pull/143) @brasmusson)
141
+ - Add a flaky result type to be used for flaky scenarios ([#141](https://github.com/cucumber/cucumber-ruby-core/pull/141), [cucumber/cucumber-ruby#1044](https://github.com/cucumber/cucumber-ruby/issues/1044) @brasmusson)
142
+ - Make the Summary report able to say if the total result is ok ([#140](https://github.com/cucumber/cucumber-ruby-core/pull/140) @brasmusson)
143
+ - Replay previous events to new subscribers ([#136](https://github.com/cucumber/cucumber-ruby-core/pull/136) @mattwynne)
144
+ - Ruby 2.4.0 compatibility ([#120](https://github.com/cucumber/cucumber-ruby-core/pull/120) @junaruga)
145
+ - Use tag expressions ([#116](https://github.com/cucumber/cucumber-ruby-core/pull/116) @brasmusson)
146
+ - Access example table row data by param name ([#118](https://github.com/cucumber/cucumber-ruby-core/pull/118) @enkessler)
195
147
 
196
148
  ### Fixed
149
+ - Travis: jruby-9.1.10.0 ([#130](https://github.com/cucumber/cucumber-ruby-core/pull/130) @olleolleolle)
150
+ - Travis: jruby-9.1.12.0 ([#133](https://github.com/cucumber/cucumber-ruby-core/pull/132) @olleolleolle)
197
151
 
198
- * Fix DataTable's Location to be aware of all of its lines ([#142](https://github.com/cucumber/cucumber-ruby-core/pull/142) @botandrose)
199
-
200
- ### Improved
201
-
202
- * As per [#251](https://github.com/cucumber/cucumber/issues/251): renamed History.md to CHANGELOG.md, added contributing message at beginning, and misc formatting. ([#145](https://github.com/cucumber/cucumber-ruby-core/pull/145) [jaysonesmith](https://github.com/jaysonesmith))
203
-
204
- ## [3.0.0.pre.2](https://github.com/cucumber/cucumber-ruby-core/compare/v2.0.0...3.0.0.pre.2) (2017-07-26)
205
-
206
- ### New Features
207
-
208
- * Add a flaky result type to be used for flaky scenarios ([#141](https://github.com/cucumber/cucumber-ruby-core/pull/141), [cucumber/cucumber-ruby#1044](https://github.com/cucumber/cucumber-ruby/issues/1044) @brasmusson)
209
- * Make the Summary report able to say if the total result is ok ([#140](https://github.com/cucumber/cucumber-ruby-core/pull/140) @brasmusson)
210
- * Replay previous events to new subscribers ([#136](https://github.com/cucumber/cucumber-ruby-core/pull/136) @mattwynne)
211
- * Ruby 2.4.0 compatibility ([#120](https://github.com/cucumber/cucumber-ruby-core/pull/120) @junaruga)
212
- * Use tag expressions ([#116](https://github.com/cucumber/cucumber-ruby-core/pull/116) @brasmusson)
213
- * Access example table row data by param name ([#118](https://github.com/cucumber/cucumber-ruby-core/pull/118) @enkessler)
214
-
215
- ### Bugfixes
216
-
217
- N/A
218
-
219
- ### Removed Features
220
-
221
- N/A
222
-
223
- ### Refactoring
224
-
225
- * Travis: jruby-9.1.10.0 ([#130](https://github.com/cucumber/cucumber-ruby-core/pull/130) @olleolleolle)
226
- * Travis: jruby-9.1.12.0 ([#133](https://github.com/cucumber/cucumber-ruby-core/pull/132) @olleolleolle)
227
-
228
- ## [2.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.5.0...2.0.0)
229
-
230
- ### New Features
231
-
232
- * Implement equality for test cases ([#111](https://github.com/cucumber/cucumber-ruby-core/pull/111) @mattwynne)
233
- * Implement an event bus (moved from Cucumber-Ruby) ([#106](https://github.com/cucumber/cucumber-ruby-core/pull/106) @mattwynne)
234
- * Use frozen string literals ([#105](https://github.com/cucumber/cucumber-ruby-core/pull/105) @twalpole)
235
-
236
- ### Bugfixes
237
-
238
- * Handle incomplete examples to scenario outlines. ([109](https://github.com/cucumber/cucumber-ruby-core/pull/109) @brasmusson)
239
- * Add with_filtered_backtrace method to unknown result ([107](https://github.com/cucumber/cucumber-ruby-core/pull/107) @danascheider)
240
-
241
- ### Removed Features
242
-
243
- * Remove support for Ruby v1.9.3. ([112](https://github.com/cucumber/cucumber-ruby-core/pull/112) @brasmusson)
244
-
245
- ### Refactoring
246
-
247
- N/A
248
-
249
- ## [1.5.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.4.0...v1.5.0)
250
-
251
- ### New Features
252
-
253
- * Update to Gherkin v4.0 (@brasmusson)
254
-
255
- ### Bugfixes
256
-
257
- * Use monotonic time ([#103](https://github.com/cucumber/cucumber-ruby-core/pull/103) @mikz)
258
-
259
- ## [1.4.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.1...v1.4.0)
260
-
261
- ### New Features
262
-
263
- * Update to Gherkin v3.2.0 (@brasmusson)
264
-
265
- ### Bugfixes
266
-
267
- ## [1.3.1](https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.0...v1.3.1)
268
-
269
- ### New Features
270
-
271
- ### Bugfixes
272
-
273
- * Speed up location filtering ([#99](https://github.com/cucumber/cucumber-ruby-core/issues/99) @mattwynne @akostadinov @brasmusson)
274
-
275
- ## [1.3.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.2.0...v1.3.0)
276
-
277
- ### New Features
278
-
279
- * Add factory method to Cucumber::Core::Ast::Location that uses the output from Proc#source_location (@brasmusson)
280
- * Integrate Gherkin3 parser (@brasmusson)
281
-
282
- ### Bugfixes
283
-
284
- * Make sure that `after_test_step` is sent also when a test step is interrupted by (a timeout in) an around hook ([cucumber/cucumber-ruby#909](https://github.com/cucumber/cucumber-ruby/issues/909) @brasmusson)
285
- * Improve the check that a test_step quacks like a Cucumber::Core::Test::Step ([95](https://github.com/cucumber/cucumber-ruby-core/issues/95) @brasmusson)
286
-
287
- ## [1.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.3...v1.2.0)
288
-
289
- ### New Features
290
-
291
- * Enable the location of actions to be the step or hook location (@brasmusson)
292
- * Add the comments to the Steps, Examples tables and Examples table rows Ast classes (@brasmusson)
293
- * Expose name, description and examples_rows attributes of `Ast::ExamplesTable` (@mattwynne)
294
- * Add #to_sym to Cucumber::Core::Test::Result classes ([#89](https://github.com/cucumber/cucumber-ruby-core/pull/89) @pdswan)
295
- * Add #ok? to Cucumber::Core::Test::Result classes ([#92](https://github.com/cucumber/cucumber-ruby-core/pull/92) @brasmusson)
296
-
297
- ### Bugfixes
298
-
299
- ## [1.1.3](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.2...v1.1.3)
300
-
301
- ### New Features
302
-
303
- * Added custom `inspect` methods for AST Nodes (@tooky)
304
-
305
- ## [1.1.2](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.1...v1.1.2)
306
-
307
- ### New Features
308
-
309
- * Make Test Case names for Scenario Outlines language neutral [83](https://github.com/cucumber/cucumber-ruby-core/pull/83) (@brasmusson)
310
- * Add predicate methods for Multline arguments (@mattwynne)
311
- * Expose `Test::Case#feature` (@mattwynne)
312
- * Fail test case if around hook fails (@mattwynne, @tooky)
313
- * Expose `Test::Case#around_hooks` (@tooky)
314
-
315
- ## [1.1.1](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.0...v1.1.1)
316
-
317
-
318
- ### New Features
319
-
320
- * Calculate actual keyword for snippets (@brasmusson)
321
-
322
- ### Bugfixes
152
+ ## [2.0.0]
153
+ ### Added
154
+ - Implement equality for test cases ([#111](https://github.com/cucumber/cucumber-ruby-core/pull/111) @mattwynne)
155
+ - Implement an event bus (moved from Cucumber-Ruby) ([#106](https://github.com/cucumber/cucumber-ruby-core/pull/106) @mattwynne)
156
+ - Use frozen string literals ([#105](https://github.com/cucumber/cucumber-ruby-core/pull/105) @twalpole)
323
157
 
324
- * Remove keyword from `Test::Case#name` [82](https://github.com/cucumber/cucumber-ruby-core/pull/82) (@richarda)
158
+ ### Fixed
159
+ - Handle incomplete examples to scenario outlines. ([109](https://github.com/cucumber/cucumber-ruby-core/pull/109) @brasmusson)
160
+ - Add with_filtered_backtrace method to unknown result ([107](https://github.com/cucumber/cucumber-ruby-core/pull/107) @danascheider)
325
161
 
326
- ## [1.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0...v1.1.0)
162
+ ### Removed
163
+ - Remove support for Ruby v1.9.3. ([112](https://github.com/cucumber/cucumber-ruby-core/pull/112) @brasmusson)
327
164
 
328
- ### New features
165
+ ## [1.5.0]
166
+ ### Added
167
+ - Update to Gherkin v4.0 (@brasmusson)
329
168
 
330
- * LocationsFilter now sorts test cases as well as filtering them (@mattwynne)
169
+ ### Fixed
170
+ - Use monotonic time ([#103](https://github.com/cucumber/cucumber-ruby-core/pull/103) @mikz)
331
171
 
332
- ## [1.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.4...v1.0.0)
172
+ ## [1.4.0]
173
+ ### Added
174
+ - Update to Gherkin v3.2.0 (@brasmusson)
333
175
 
334
- ### Features Removed
176
+ ### Fixed
335
177
 
336
- * Removed the Mapper DSL (@mattwynne, @tooky)
337
- * Removed Cucumber.initializer (@tooky)
178
+ ## [1.3.1]
179
+ ### Added
338
180
 
339
- ### New Features
181
+ ### Fixed
182
+ - Speed up location filtering ([#99](https://github.com/cucumber/cucumber-ruby-core/issues/99) @mattwynne @akostadinov @brasmusson)
340
183
 
341
- * Added dynamic filter class constructor (@mattwynne)
184
+ ## [1.3.0]
185
+ ### Added
186
+ - Add factory method to Cucumber::Core::Ast::Location that uses the output from Proc#source_location (@brasmusson)
187
+ - Integrate Gherkin3 parser (@brasmusson)
342
188
 
343
- ## [1.0.0.beta.4](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.3...v1.0.0.beta.4)
189
+ ### Fixed
190
+ - Make sure that `after_test_step` is sent also when a test step is interrupted by (a timeout in) an around hook ([cucumber/cucumber-ruby#909](https://github.com/cucumber/cucumber-ruby/issues/909) @brasmusson)
191
+ - Improve the check that a test_step quacks like a Cucumber::Core::Test::Step ([95](https://github.com/cucumber/cucumber-ruby-core/issues/95) @brasmusson)
344
192
 
345
- ### New Features
193
+ ## [1.2.0]
194
+ ### Added
195
+ - Enable the location of actions to be the step or hook location (@brasmusson)
196
+ - Add the comments to the Steps, Examples tables and Examples table rows Ast classes (@brasmusson)
197
+ - Expose name, description and examples_rows attributes of `Ast::ExamplesTable` (@mattwynne)
198
+ - Add #to_sym to Cucumber::Core::Test::Result classes ([#89](https://github.com/cucumber/cucumber-ruby-core/pull/89) @pdswan)
199
+ - Add #ok? to Cucumber::Core::Test::Result classes ([#92](https://github.com/cucumber/cucumber-ruby-core/pull/92) @brasmusson)
346
200
 
347
- * Introduce a Duration object (#[71](https://github.com/cucumber/cucumber-ruby-core/pull/71) [@brasmusson](https://github.com/brasmusson))
348
- * BeforeStep hooks (#[70](https://github.com/cucumber/cucumber-ruby-core/pull/70) [@almostwhitehat](https://github.com/almostwhitehat))
349
- * Expose `Test::Case#test_steps` (@mattwynne)
201
+ ### Fixed
350
202
 
351
- ### Bugfixes
203
+ ## [1.1.3]
204
+ ### Added
205
+ - Added custom `inspect` methods for AST Nodes (@tooky)
352
206
 
353
- * Handle empty feature files (#[77](https://github.com/cucumber/cucumber-ruby-core/pull/77), [cucumber/cucumber-ruby#771](https://github.com/cucumber/cucumber-ruby/issues/771) [@brasmusson](https://github.com/brasmusson))
354
- * Run after hooks in reverse order (#[69](https://github.com/cucumber/cucumber-ruby-core/pull/69) [@erran](https://github.com/erran))
207
+ ## [1.1.2]
208
+ ### Added
209
+ - Make Test Case names for Scenario Outlines language neutral [83](https://github.com/cucumber/cucumber-ruby-core/pull/83) (@brasmusson)
210
+ - Add predicate methods for Multline arguments (@mattwynne)
211
+ - Expose `Test::Case#feature` (@mattwynne)
212
+ - Fail test case if around hook fails (@mattwynne, @tooky)
213
+ - Expose `Test::Case#around_hooks` (@tooky)
355
214
 
356
- ## [1.0.0.beta.3](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.2...v1.0.0.beta.3)
215
+ ## [1.1.1]
216
+ ### Added
217
+ - Calculate actual keyword for snippets (@brasmusson)
357
218
 
358
- Changes were not logged.
219
+ ### Fixed
220
+ - Remove keyword from `Test::Case#name` [82](https://github.com/cucumber/cucumber-ruby-core/pull/82) (@richarda)
359
221
 
360
- ## [1.0.0.beta.2](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.1...v1.0.0.beta.2)
222
+ ## [1.1.0]
223
+ ### Added
224
+ - LocationsFilter now sorts test cases as well as filtering them (@mattwynne)
361
225
 
362
- Changes were not logged.
226
+ ## [1.0.0]
227
+ ### Added
228
+ - Added dynamic filter class constructor (@mattwynne)
363
229
 
230
+ ## [1.0.0.beta.4]
231
+ ### Added
232
+ - Introduce a Duration object (#[71](https://github.com/cucumber/cucumber-ruby-core/pull/71) [@brasmusson](https://github.com/brasmusson))
233
+ - BeforeStep hooks (#[70](https://github.com/cucumber/cucumber-ruby-core/pull/70) [@almostwhitehat](https://github.com/almostwhitehat))
234
+ - Expose `Test::Case#test_steps` (@mattwynne)
364
235
 
365
- [Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...main
236
+ ### Fixed
237
+ - Handle empty feature files (#[77](https://github.com/cucumber/cucumber-ruby-core/pull/77), [cucumber/cucumber-ruby#771](https://github.com/cucumber/cucumber-ruby/issues/771) [@brasmusson](https://github.com/brasmusson))
238
+ - Run after hooks in reverse order (#[69](https://github.com/cucumber/cucumber-ruby-core/pull/69) [@erran](https://github.com/erran))
239
+
240
+ ## [1.0.0.beta.3]
241
+
242
+ ## [1.0.0.beta.2]
243
+
244
+ ## [1.0.0.beta.3]
245
+
246
+ ## [1.0.0.beta.2]
247
+
248
+ [Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...main
249
+ [12.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...main
250
+ [11.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...main
251
+ [11.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...v11.0.0
252
+ [10.1.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.0...v10.1.1
253
+ [10.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.1...v10.1.0
254
+ [10.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.0...v10.0.1
255
+ [10.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.1...v10.0.0
256
+ [9.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.0...v9.0.1
257
+ [9.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.1...v9.0.0
258
+ [8.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.0...v8.0.1
259
+ [8.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v7.1.0...v8.0.0
260
+ [7.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v7.0.0...v7.1.0
261
+ [7.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v6.0.0...v7.0.0
262
+ [6.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.2...v6.0.0
263
+ [5.0.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.1...v5.0.2
264
+ [5.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.0...v5.0.1
265
+ [5.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v4.0.0...v5.0.0
266
+ [4.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v4.0.0
267
+ [3.2.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v3.2.1
268
+ [3.2.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.1.0...v3.2.0
269
+ [3.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0...3.1.0
270
+ [3.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0.pre.2...v3.0.0
271
+ [3.0.0.pre.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v2.0.0...3.0.0.pre.2
272
+ [2.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.5.0...2.0.0
273
+ [1.5.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.4.0...v1.5.0
274
+ [1.4.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.1...v1.4.0
275
+ [1.3.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.0...v1.3.1
276
+ [1.3.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.2.0...v1.3.0
277
+ [1.2.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.3...v1.2.0
278
+ [1.1.3]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.2...v1.1.3
279
+ [1.1.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.1...v1.1.2
280
+ [1.1.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.0...v1.1.1
281
+ [1.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0...v1.1.0
282
+ [1.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.4...v1.0.0
283
+ [1.0.0.beta.4]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.3...v1.0.0.beta.4
284
+ [1.0.0.beta.3]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.2...v1.0.0.beta.3
285
+ [1.0.0.beta.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.1...v1.0.0.beta.2
286
+ [1.0.0.beta.3]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.2...v1.0.0.beta.3
287
+ [1.0.0.beta.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.1...v1.0.0.beta.2
data/README.md CHANGED
@@ -8,9 +8,8 @@
8
8
  [![OpenCollective](https://opencollective.com/cucumber/sponsors/badge.svg)](https://opencollective.com/cucumber)
9
9
  [![pull requests](https://oselvar.com/api/badge?label=pull%20requests&csvUrl=https%3A%2F%2Fraw.githubusercontent.com%2Fcucumber%2Foselvar-github-metrics%2Fmain%2Fdata%2Fcucumber%2Fcucumber-ruby-core%2FpullRequests.csv)](https://oselvar.com/github/cucumber/oselvar-github-metrics/main/cucumber/cucumber-ruby-core)
10
10
  [![issues](https://oselvar.com/api/badge?label=issues&csvUrl=https%3A%2F%2Fraw.githubusercontent.com%2Fcucumber%2Foselvar-github-metrics%2Fmain%2Fdata%2Fcucumber%2Fcucumber-ruby-core%2Fissues.csv)](https://oselvar.com/github/cucumber/oselvar-github-metrics/main/cucumber/cucumber-ruby-core)
11
- [![Test cucumber-core](https://github.com/cucumber/cucumber-ruby-core/actions/workflows/cucumber-ruby-core.yml/badge.svg)](https://github.com/cucumber/cucumber-ruby-core/actions/workflows/cucumber-ruby-core.yml)
11
+ [![Test cucumber-core](https://github.com/cucumber/cucumber-ruby-core/actions/workflows/test.yml/badge.svg)](https://github.com/cucumber/cucumber-ruby-core/actions/workflows/test.yml)
12
12
  [![Code Climate](https://codeclimate.com/github/cucumber/cucumber-ruby-core.svg)](https://codeclimate.com/github/cucumber/cucumber-ruby-core)
13
- [![Coverage Status](https://coveralls.io/repos/cucumber/cucumber-ruby-core/badge.svg?branch=main)](https://coveralls.io/r/cucumber/cucumber-ruby-core?branch=main)
14
13
 
15
14
  Cucumber is a tool for running automated tests written in plain language. Because they're
16
15
  written in plain language, they can be read by anyone on your team. Because they can be
@@ -51,12 +50,13 @@ or install the gem directly:
51
50
 
52
51
  ### Supported platforms
53
52
 
53
+ - Ruby 3.2
54
+ - Ruby 3.1
54
55
  - Ruby 3.0
55
56
  - Ruby 2.7
56
57
  - Ruby 2.6
57
58
  - Ruby 2.5
58
59
  - Ruby 2.4
59
- - Ruby 2.3
60
60
  - JRuby 9.2 (with [some limitations](https://github.com/cucumber/cucumber-ruby/blob/main/docs/jruby-limitations.md))
61
61
 
62
62
  ## Usage
@@ -47,7 +47,7 @@ module Cucumber
47
47
  private
48
48
 
49
49
  def underscore(string)
50
- string.to_s.gsub(/::/, '/').
50
+ string.to_s.gsub('::', '/').
51
51
  gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
52
52
  gsub(/([a-z\d])([A-Z])/, '\1_\2').
53
53
  tr("-", "_").
@@ -53,10 +53,20 @@ module Cucumber
53
53
 
54
54
  def match_locations?(queried_locations)
55
55
  queried_locations.any? do |queried_location|
56
- queried_location.match? location
56
+ matching_locations.any? do |location|
57
+ queried_location.match? location
58
+ end
57
59
  end
58
60
  end
59
61
 
62
+ def matching_locations
63
+ [
64
+ location,
65
+ tags.map(&:location),
66
+ test_steps.map(&:matching_locations)
67
+ ].flatten
68
+ end
69
+
60
70
  def inspect
61
71
  "#<#{self.class}: #{location}>"
62
72
  end