cucumber-core 11.0.0 → 12.0.0

Sign up to get free protection for your applications and to get access to all the features.
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