cucumber-cucumber-expressions 16.1.2 → 17.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +27 -0
  3. data/.rubocop_todo.yml +524 -0
  4. data/Gemfile +2 -1
  5. data/Rakefile +4 -17
  6. data/VERSION +1 -1
  7. data/cucumber-cucumber-expressions.gemspec +11 -9
  8. data/lib/cucumber/cucumber_expressions/argument.rb +6 -3
  9. data/lib/cucumber/cucumber_expressions/ast.rb +24 -59
  10. data/lib/cucumber/cucumber_expressions/combinatorial_generated_expression_factory.rb +6 -13
  11. data/lib/cucumber/cucumber_expressions/cucumber_expression.rb +9 -11
  12. data/lib/cucumber/cucumber_expressions/cucumber_expression_generator.rb +7 -11
  13. data/lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb +37 -53
  14. data/lib/cucumber/cucumber_expressions/cucumber_expression_tokenizer.rb +13 -18
  15. data/lib/cucumber/cucumber_expressions/errors.rb +119 -101
  16. data/lib/cucumber/cucumber_expressions/expression_factory.rb +2 -0
  17. data/lib/cucumber/cucumber_expressions/generated_expression.rb +2 -0
  18. data/lib/cucumber/cucumber_expressions/group.rb +2 -0
  19. data/lib/cucumber/cucumber_expressions/group_builder.rb +2 -0
  20. data/lib/cucumber/cucumber_expressions/parameter_type.rb +13 -23
  21. data/lib/cucumber/cucumber_expressions/parameter_type_matcher.rb +8 -6
  22. data/lib/cucumber/cucumber_expressions/parameter_type_registry.rb +23 -20
  23. data/lib/cucumber/cucumber_expressions/regular_expression.rb +3 -2
  24. data/lib/cucumber/cucumber_expressions/tree_regexp.rb +5 -4
  25. data/spec/cucumber/cucumber_expressions/argument_spec.rb +4 -2
  26. data/spec/cucumber/cucumber_expressions/combinatorial_generated_expression_factory_test.rb +7 -6
  27. data/spec/cucumber/cucumber_expressions/cucumber_expression_generator_spec.rb +104 -101
  28. data/spec/cucumber/cucumber_expressions/cucumber_expression_parser_spec.rb +2 -0
  29. data/spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb +84 -87
  30. data/spec/cucumber/cucumber_expressions/cucumber_expression_tokenizer_spec.rb +3 -1
  31. data/spec/cucumber/cucumber_expressions/cucumber_expression_transformation_spec.rb +2 -0
  32. data/spec/cucumber/cucumber_expressions/custom_parameter_type_spec.rb +79 -60
  33. data/spec/cucumber/cucumber_expressions/expression_factory_spec.rb +2 -0
  34. data/spec/cucumber/cucumber_expressions/parameter_type_registry_spec.rb +43 -48
  35. data/spec/cucumber/cucumber_expressions/parameter_type_spec.rb +3 -1
  36. data/spec/cucumber/cucumber_expressions/regular_expression_spec.rb +37 -28
  37. data/spec/cucumber/cucumber_expressions/tree_regexp_spec.rb +23 -22
  38. metadata +21 -9
  39. data/.rspec +0 -1
  40. data/scripts/update-gemspec +0 -32
  41. data/spec/capture_warnings.rb +0 -74
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3292e1a5438afffcfbc8f3c34cb1ebe7529d9087e8f86a14deebdb7646abc027
4
- data.tar.gz: 671b555f547d195a883a7012704f881b6bbbda692ecd49e32fb52f26f351b822
3
+ metadata.gz: ee78437294610438135eff4c78486fa4c034890d72212456fdb6b9e5d4d2221c
4
+ data.tar.gz: 433dabe226348a05dd14d9b36f57ed1c3ddd94c930e1f8e81332f9f1bb7659f0
5
5
  SHA512:
6
- metadata.gz: dd0989b60bc8048947f251fcf309e6a81f7e034123a5dd89c1f959150a71ff2d95bdc87700697b911bed175e44cf17d763b15dbb901c3da7e2d18cb14bf4e235
7
- data.tar.gz: da4fb18fe6dc9661b96bd30806d58dd326416c02548bae2d884b8cdb6f06c8cfb31339a73ae52badf4786cfdc95b53e429f677ba942d87ddaa321a528d84b92f
6
+ metadata.gz: e5a748f6a88bcc7b29c89ec6802f50fe1cab28740685f47ceb4e2cf53db64741006ea43dcb57d6bc420ad5a90d2fbb11f15a39fe0a596237ae1276926696fa6b
7
+ data.tar.gz: 51c50ce450733d911e8277e515fd1c7e0bd3621c065132e214fbb5b543965f6c873608b35b8436a8cccc87c49fab73d141bf731e2afe979e52c7819bb512e57f
data/.rubocop.yml ADDED
@@ -0,0 +1,27 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ inherit_mode:
4
+ merge:
5
+ - Exclude
6
+
7
+ AllCops:
8
+ TargetRubyVersion: 2.5
9
+ NewCops: enable
10
+
11
+ # Disabled on our repo's to enable polyglot-release
12
+ Gemspec/RequireMFA:
13
+ Enabled: false
14
+
15
+ Layout/LineLength:
16
+ Max: 200
17
+
18
+ Style/Documentation:
19
+ Enabled: false
20
+
21
+ Style/RegexpLiteral:
22
+ EnforcedStyle: slashes
23
+ AllowInnerSlashes: true
24
+
25
+ # Once we enable rubocop-rspec
26
+ #RSpec/MessageSpies:
27
+ # EnforcedStyle: receive
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,524 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2023-10-06 11:04:10 UTC using RuboCop version 1.27.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # TODO: Oct '23 -> 33 files inspected, 1004 offenses detected, 859 offenses auto-correctable
10
+ # TODO: Oct '23 (later) -> 33 files inspected, 344 offenses detected, 205 offenses auto-correctable
11
+
12
+ # Offense count: 1
13
+ # This cop supports safe auto-correction (--auto-correct).
14
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
15
+ # SupportedStyles: outdent, indent
16
+ Layout/AccessModifierIndentation:
17
+ Exclude:
18
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_generator.rb'
19
+
20
+ # Offense count: 2
21
+ # This cop supports safe auto-correction (--auto-correct).
22
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
23
+ # SupportedStyles: special_inside_parentheses, consistent, align_brackets
24
+ Layout/FirstArrayElementIndentation:
25
+ Exclude:
26
+ - 'spec/cucumber/cucumber_expressions/combinatorial_generated_expression_factory_test.rb'
27
+
28
+ # Offense count: 2
29
+ # This cop supports safe auto-correction (--auto-correct).
30
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
31
+ # SupportedStyles: special_inside_parentheses, consistent, align_braces
32
+ Layout/FirstHashElementIndentation:
33
+ Exclude:
34
+ - 'cucumber-cucumber-expressions.gemspec'
35
+
36
+ # Offense count: 4
37
+ # This cop supports safe auto-correction (--auto-correct).
38
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
39
+ # SupportedHashRocketStyles: key, separator, table
40
+ # SupportedColonStyles: key, separator, table
41
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
42
+ Layout/HashAlignment:
43
+ Exclude:
44
+ - 'cucumber-cucumber-expressions.gemspec'
45
+
46
+ # Offense count: 2
47
+ # This cop supports safe auto-correction (--auto-correct).
48
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
49
+ # URISchemes: http, https
50
+ Layout/LineLength:
51
+ Max: 252
52
+
53
+ # Offense count: 1
54
+ # This cop supports safe auto-correction (--auto-correct).
55
+ # Configuration parameters: EnforcedStyle.
56
+ # SupportedStyles: symmetrical, new_line, same_line
57
+ Layout/MultilineMethodCallBraceLayout:
58
+ Exclude:
59
+ - 'spec/cucumber/cucumber_expressions/parameter_type_spec.rb'
60
+
61
+ # Offense count: 3
62
+ # This cop supports safe auto-correction (--auto-correct).
63
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
64
+ # SupportedStyles: aligned, indented, indented_relative_to_receiver
65
+ Layout/MultilineMethodCallIndentation:
66
+ Exclude:
67
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_generator.rb'
68
+
69
+ # Offense count: 4
70
+ # This cop supports safe auto-correction (--auto-correct).
71
+ # Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
72
+ # SupportedStylesForExponentOperator: space, no_space
73
+ Layout/SpaceAroundOperators:
74
+ Exclude:
75
+ - 'lib/cucumber/cucumber_expressions/tree_regexp.rb'
76
+
77
+ # Offense count: 57
78
+ # This cop supports safe auto-correction (--auto-correct).
79
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
80
+ # SupportedStyles: space, no_space
81
+ # SupportedStylesForEmptyBraces: space, no_space
82
+ Layout/SpaceInsideBlockBraces:
83
+ Exclude:
84
+ - 'cucumber-cucumber-expressions.gemspec'
85
+ - 'lib/cucumber/cucumber_expressions/group_builder.rb'
86
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
87
+ - 'lib/cucumber/cucumber_expressions/regular_expression.rb'
88
+ - 'spec/cucumber/cucumber_expressions/combinatorial_generated_expression_factory_test.rb'
89
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_generator_spec.rb'
90
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_tokenizer_spec.rb'
91
+ - 'spec/cucumber/cucumber_expressions/custom_parameter_type_spec.rb'
92
+ - 'spec/cucumber/cucumber_expressions/parameter_type_registry_spec.rb'
93
+ - 'spec/cucumber/cucumber_expressions/parameter_type_spec.rb'
94
+ - 'spec/cucumber/cucumber_expressions/tree_regexp_spec.rb'
95
+
96
+ # Offense count: 1
97
+ # This cop supports safe auto-correction (--auto-correct).
98
+ Lint/AmbiguousOperatorPrecedence:
99
+ Exclude:
100
+ - 'lib/cucumber/cucumber_expressions/errors.rb'
101
+
102
+ # Offense count: 3
103
+ # Configuration parameters: AllowedMethods.
104
+ # AllowedMethods: enums
105
+ Lint/ConstantDefinitionInBlock:
106
+ Exclude:
107
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_generator_spec.rb'
108
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb'
109
+
110
+ # Offense count: 8
111
+ # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
112
+ Lint/DuplicateBranch:
113
+ Exclude:
114
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
115
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
116
+
117
+ # Offense count: 10
118
+ # Configuration parameters: AllowComments.
119
+ Lint/EmptyClass:
120
+ Exclude:
121
+ - 'spec/cucumber/cucumber_expressions/combinatorial_generated_expression_factory_test.rb'
122
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_generator_spec.rb'
123
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb'
124
+ - 'spec/cucumber/cucumber_expressions/parameter_type_registry_spec.rb'
125
+
126
+ # Offense count: 1
127
+ Lint/MixedRegexpCaptureTypes:
128
+ Exclude:
129
+ - 'spec/cucumber/cucumber_expressions/tree_regexp_spec.rb'
130
+
131
+ # Offense count: 1
132
+ # This cop supports unsafe auto-correction (--auto-correct-all).
133
+ Lint/NonDeterministicRequireOrder:
134
+ Exclude:
135
+ - 'Rakefile'
136
+
137
+ # Offense count: 1
138
+ Lint/NonLocalExitFromIterator:
139
+ Exclude:
140
+ - 'lib/cucumber/cucumber_expressions/combinatorial_generated_expression_factory.rb'
141
+
142
+ # Offense count: 7
143
+ # Configuration parameters: AllowKeywordBlockArguments.
144
+ Lint/UnderscorePrefixedVariableName:
145
+ Exclude:
146
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
147
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
148
+ - 'lib/cucumber/cucumber_expressions/group.rb'
149
+
150
+ # Offense count: 14
151
+ # This cop supports safe auto-correction (--auto-correct).
152
+ # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
153
+ Lint/UnusedBlockArgument:
154
+ Exclude:
155
+ - 'spec/cucumber/cucumber_expressions/combinatorial_generated_expression_factory_test.rb'
156
+ - 'spec/cucumber/cucumber_expressions/parameter_type_registry_spec.rb'
157
+
158
+ # Offense count: 10
159
+ # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
160
+ Metrics/AbcSize:
161
+ Max: 59
162
+
163
+ # Offense count: 11
164
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
165
+ # IgnoredMethods: refine
166
+ Metrics/BlockLength:
167
+ Max: 183
168
+
169
+ # Offense count: 1
170
+ # Configuration parameters: CountBlocks.
171
+ Metrics/BlockNesting:
172
+ Max: 4
173
+
174
+ # Offense count: 1
175
+ # Configuration parameters: CountComments, CountAsOne.
176
+ Metrics/ClassLength:
177
+ Max: 141
178
+
179
+ # Offense count: 7
180
+ # Configuration parameters: IgnoredMethods.
181
+ Metrics/CyclomaticComplexity:
182
+ Max: 15
183
+
184
+ # Offense count: 20
185
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
186
+ Metrics/MethodLength:
187
+ Max: 61
188
+
189
+ # Offense count: 4
190
+ # Configuration parameters: CountComments, CountAsOne.
191
+ Metrics/ModuleLength:
192
+ Max: 184
193
+
194
+ # Offense count: 1
195
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
196
+ Metrics/ParameterLists:
197
+ Max: 6
198
+
199
+ # Offense count: 6
200
+ # Configuration parameters: IgnoredMethods.
201
+ Metrics/PerceivedComplexity:
202
+ Max: 17
203
+
204
+ # Offense count: 10
205
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
206
+ Naming/BlockParameterName:
207
+ Exclude:
208
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression.rb'
209
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
210
+ - 'lib/cucumber/cucumber_expressions/parameter_type_matcher.rb'
211
+
212
+ # Offense count: 2
213
+ # Configuration parameters: ForbiddenDelimiters.
214
+ # ForbiddenDelimiters: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$))
215
+ Naming/HeredocDelimiterNaming:
216
+ Exclude:
217
+ - 'lib/cucumber/cucumber_expressions/errors.rb'
218
+
219
+ # Offense count: 7
220
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
221
+ # AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
222
+ Naming/MethodParameterName:
223
+ Exclude:
224
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_generator.rb'
225
+ - 'lib/cucumber/cucumber_expressions/tree_regexp.rb'
226
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb'
227
+ - 'spec/cucumber/cucumber_expressions/custom_parameter_type_spec.rb'
228
+
229
+ # Offense count: 3
230
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
231
+ # NamePrefix: is_, has_, have_
232
+ # ForbiddenPrefixes: is_, has_, have_
233
+ # AllowedMethods: is_a?
234
+ # MethodDefinitionMacros: define_method, define_singleton_method
235
+ Naming/PredicateName:
236
+ Exclude:
237
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
238
+ - 'lib/cucumber/cucumber_expressions/parameter_type.rb'
239
+ - 'lib/cucumber/cucumber_expressions/tree_regexp.rb'
240
+
241
+ # Offense count: 20
242
+ # Configuration parameters: EnforcedStyle, AllowedIdentifiers.
243
+ # SupportedStyles: snake_case, camelCase
244
+ Naming/VariableName:
245
+ Exclude:
246
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression.rb'
247
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
248
+ - 'lib/cucumber/cucumber_expressions/parameter_type_matcher.rb'
249
+
250
+ # Offense count: 2
251
+ # Configuration parameters: EnforcedStyle, AllowModifiersOnSymbols.
252
+ # SupportedStyles: inline, group
253
+ Style/AccessModifierDeclarations:
254
+ Exclude:
255
+ - 'lib/cucumber/cucumber_expressions/tree_regexp.rb'
256
+
257
+ # Offense count: 5
258
+ # This cop supports safe auto-correction (--auto-correct).
259
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, IgnoredMethods, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
260
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
261
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
262
+ # FunctionalMethods: let, let!, subject, watch
263
+ # IgnoredMethods: lambda, proc, it
264
+ Style/BlockDelimiters:
265
+ Exclude:
266
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression.rb'
267
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb'
268
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_transformation_spec.rb'
269
+ - 'spec/cucumber/cucumber_expressions/custom_parameter_type_spec.rb'
270
+ - 'spec/cucumber/cucumber_expressions/tree_regexp_spec.rb'
271
+
272
+ # Offense count: 1
273
+ # This cop supports unsafe auto-correction (--auto-correct-all).
274
+ Style/CaseLikeIf:
275
+ Exclude:
276
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
277
+
278
+ # Offense count: 3
279
+ # This cop supports safe auto-correction (--auto-correct).
280
+ Style/ColonMethodCall:
281
+ Exclude:
282
+ - 'lib/cucumber/cucumber_expressions/errors.rb'
283
+
284
+ # Offense count: 1
285
+ # This cop supports safe auto-correction (--auto-correct).
286
+ Style/EmptyLiteral:
287
+ Exclude:
288
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
289
+
290
+ # Offense count: 1
291
+ # This cop supports safe auto-correction (--auto-correct).
292
+ Style/Encoding:
293
+ Exclude:
294
+ - 'cucumber-cucumber-expressions.gemspec'
295
+
296
+ # Offense count: 1
297
+ # This cop supports safe auto-correction (--auto-correct).
298
+ Style/ExpandPathArguments:
299
+ Exclude:
300
+ - 'Rakefile'
301
+
302
+ # Offense count: 2
303
+ # This cop supports safe auto-correction (--auto-correct).
304
+ # Configuration parameters: EnforcedStyle.
305
+ # SupportedStyles: each, for
306
+ Style/For:
307
+ Exclude:
308
+ - 'lib/cucumber/cucumber_expressions/errors.rb'
309
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_generator_spec.rb'
310
+
311
+ # Offense count: 1
312
+ # This cop supports safe auto-correction (--auto-correct).
313
+ # Configuration parameters: EnforcedStyle.
314
+ # SupportedStyles: format, sprintf, percent
315
+ Style/FormatString:
316
+ Exclude:
317
+ - 'lib/cucumber/cucumber_expressions/generated_expression.rb'
318
+
319
+ # Offense count: 2
320
+ # Configuration parameters: MinBodyLength.
321
+ Style/GuardClause:
322
+ Exclude:
323
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_generator.rb'
324
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
325
+
326
+ # Offense count: 1
327
+ # This cop supports unsafe auto-correction (--auto-correct-all).
328
+ # Configuration parameters: InverseMethods, InverseBlocks.
329
+ Style/InverseMethods:
330
+ Exclude:
331
+ - 'lib/cucumber/cucumber_expressions/parameter_type.rb'
332
+
333
+ # Offense count: 1
334
+ # This cop supports safe auto-correction (--auto-correct).
335
+ Style/MultilineTernaryOperator:
336
+ Exclude:
337
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb'
338
+
339
+ # Offense count: 1
340
+ # This cop supports safe auto-correction (--auto-correct).
341
+ Style/NegatedIfElseCondition:
342
+ Exclude:
343
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
344
+
345
+ # Offense count: 1
346
+ # This cop supports safe auto-correction (--auto-correct).
347
+ Style/NestedTernaryOperator:
348
+ Exclude:
349
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb'
350
+
351
+ # Offense count: 2
352
+ # This cop supports safe auto-correction (--auto-correct).
353
+ # Configuration parameters: IncludeSemanticChanges.
354
+ Style/NonNilCheck:
355
+ Exclude:
356
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
357
+
358
+ # Offense count: 11
359
+ # This cop supports unsafe auto-correction (--auto-correct-all).
360
+ # Configuration parameters: EnforcedStyle, IgnoredMethods.
361
+ # SupportedStyles: predicate, comparison
362
+ Style/NumericPredicate:
363
+ Exclude:
364
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression.rb'
365
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
366
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_tokenizer.rb'
367
+ - 'lib/cucumber/cucumber_expressions/parameter_type_matcher.rb'
368
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
369
+
370
+ # Offense count: 6
371
+ # This cop supports safe auto-correction (--auto-correct).
372
+ Style/ParallelAssignment:
373
+ Exclude:
374
+ - 'lib/cucumber/cucumber_expressions/argument.rb'
375
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
376
+ - 'lib/cucumber/cucumber_expressions/generated_expression.rb'
377
+ - 'lib/cucumber/cucumber_expressions/parameter_type.rb'
378
+ - 'lib/cucumber/cucumber_expressions/parameter_type_matcher.rb'
379
+ - 'spec/cucumber/cucumber_expressions/custom_parameter_type_spec.rb'
380
+
381
+ # Offense count: 1
382
+ # This cop supports safe auto-correction (--auto-correct).
383
+ Style/PerlBackrefs:
384
+ Exclude:
385
+ - 'lib/cucumber/cucumber_expressions/parameter_type.rb'
386
+
387
+ # Offense count: 1
388
+ # This cop supports unsafe auto-correction (--auto-correct-all).
389
+ # Configuration parameters: EnforcedStyle.
390
+ # SupportedStyles: short, verbose
391
+ Style/PreferredHashMethods:
392
+ Exclude:
393
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
394
+
395
+ # Offense count: 9
396
+ # This cop supports safe auto-correction (--auto-correct).
397
+ # Configuration parameters: AllowedCompactTypes.
398
+ # SupportedStyles: compact, exploded
399
+ Style/RaiseArgs:
400
+ EnforcedStyle: compact
401
+
402
+ # Offense count: 6
403
+ # This cop supports unsafe auto-correction (--auto-correct-all).
404
+ # Configuration parameters: Methods.
405
+ Style/RedundantArgument:
406
+ Exclude:
407
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
408
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression.rb'
409
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_tokenizer.rb'
410
+ - 'lib/cucumber/cucumber_expressions/errors.rb'
411
+
412
+ # Offense count: 1
413
+ # This cop supports safe auto-correction (--auto-correct).
414
+ Style/RedundantInterpolation:
415
+ Exclude:
416
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression.rb'
417
+
418
+ # Offense count: 1
419
+ # This cop supports safe auto-correction (--auto-correct).
420
+ Style/RedundantRegexpCharacterClass:
421
+ Exclude:
422
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
423
+
424
+ # Offense count: 19
425
+ # This cop supports safe auto-correction (--auto-correct).
426
+ # Configuration parameters: AllowMultipleReturnValues.
427
+ Style/RedundantReturn:
428
+ Exclude:
429
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
430
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression.rb'
431
+ - 'lib/cucumber/cucumber_expressions/parameter_type.rb'
432
+
433
+ # Offense count: 1
434
+ # This cop supports safe auto-correction (--auto-correct).
435
+ Style/RedundantSelf:
436
+ Exclude:
437
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb'
438
+
439
+ # Offense count: 1
440
+ # This cop supports safe auto-correction (--auto-correct).
441
+ Style/SelectByRegexp:
442
+ Exclude:
443
+ - 'cucumber-cucumber-expressions.gemspec'
444
+
445
+ # Offense count: 1
446
+ # This cop supports safe auto-correction (--auto-correct).
447
+ # Configuration parameters: AllowAsExpressionSeparator.
448
+ Style/Semicolon:
449
+ Exclude:
450
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
451
+
452
+ # Offense count: 1
453
+ # This cop supports safe auto-correction (--auto-correct).
454
+ # Configuration parameters: RequireEnglish.
455
+ # SupportedStyles: use_perl_names, use_english_names
456
+ Style/SpecialGlobalVars:
457
+ EnforcedStyle: use_perl_names
458
+
459
+ # Offense count: 3
460
+ # This cop supports unsafe auto-correction (--auto-correct-all).
461
+ # Configuration parameters: Mode.
462
+ Style/StringConcatenation:
463
+ Exclude:
464
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
465
+ - 'lib/cucumber/cucumber_expressions/errors.rb'
466
+
467
+ # Offense count: 7
468
+ # This cop supports unsafe auto-correction (--auto-correct-all).
469
+ # Configuration parameters: AllowMethodsWithArguments, IgnoredMethods.
470
+ # IgnoredMethods: respond_to, define_method
471
+ Style/SymbolProc:
472
+ Exclude:
473
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
474
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
475
+ - 'lib/cucumber/cucumber_expressions/errors.rb'
476
+ - 'spec/cucumber/cucumber_expressions/combinatorial_generated_expression_factory_test.rb'
477
+ - 'spec/cucumber/cucumber_expressions/cucumber_expression_tokenizer_spec.rb'
478
+ - 'spec/cucumber/cucumber_expressions/tree_regexp_spec.rb'
479
+
480
+ # Offense count: 2
481
+ # This cop supports safe auto-correction (--auto-correct).
482
+ # Configuration parameters: EnforcedStyleForMultiline.
483
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
484
+ Style/TrailingCommaInArrayLiteral:
485
+ Exclude:
486
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
487
+ - 'spec/cucumber/cucumber_expressions/combinatorial_generated_expression_factory_test.rb'
488
+
489
+ # Offense count: 1
490
+ # This cop supports safe auto-correction (--auto-correct).
491
+ # Configuration parameters: EnforcedStyleForMultiline.
492
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
493
+ Style/TrailingCommaInHashLiteral:
494
+ Exclude:
495
+ - 'cucumber-cucumber-expressions.gemspec'
496
+
497
+ # Offense count: 9
498
+ # This cop supports safe auto-correction (--auto-correct).
499
+ # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, AllowedMethods.
500
+ # AllowedMethods: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym
501
+ Style/TrivialAccessors:
502
+ Exclude:
503
+ - 'lib/cucumber/cucumber_expressions/ast.rb'
504
+
505
+ # Offense count: 1
506
+ # This cop supports safe auto-correction (--auto-correct).
507
+ Style/WhileUntilDo:
508
+ Exclude:
509
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_parser.rb'
510
+
511
+ # Offense count: 6
512
+ # This cop supports safe auto-correction (--auto-correct).
513
+ # Configuration parameters: MinSize, WordRegex.
514
+ # SupportedStyles: percent, brackets
515
+ Style/WordArray:
516
+ EnforcedStyle: brackets
517
+
518
+ # Offense count: 6
519
+ # This cop supports unsafe auto-correction (--auto-correct-all).
520
+ Style/ZeroLengthPredicate:
521
+ Exclude:
522
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression.rb'
523
+ - 'lib/cucumber/cucumber_expressions/cucumber_expression_tokenizer.rb'
524
+ - 'lib/cucumber/cucumber_expressions/parameter_type_registry.rb'
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
1
  # frozen_string_literal: true
2
- source "https://rubygems.org"
2
+
3
+ source 'https://rubygems.org'
3
4
  gemspec
data/Rakefile CHANGED
@@ -1,25 +1,12 @@
1
- # encoding: utf-8
2
- require 'rubygems'
3
- require 'bundler'
4
- Bundler::GemHelper.install_tasks
1
+ # frozen_string_literal: true
5
2
 
6
- $:.unshift File.expand_path("../lib", __FILE__)
3
+ $:.unshift File.expand_path('../lib', __FILE__)
7
4
 
8
5
  Dir['./rake/*.rb'].each do |f|
9
6
  require f
10
7
  end
11
8
 
12
- require "rspec/core/rake_task"
9
+ require 'rspec/core/rake_task'
13
10
  RSpec::Core::RakeTask.new(:spec)
14
11
 
15
- require_relative 'spec/capture_warnings'
16
- include CaptureWarnings
17
- namespace :spec do
18
- task :warnings do
19
- report_warnings do
20
- Rake::Task['spec'].invoke
21
- end
22
- end
23
- end
24
-
25
- task default: ['spec:warnings']
12
+ task default: :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 16.1.2
1
+ 17.0.0
@@ -1,20 +1,21 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
2
3
 
3
- version = File.read(File.expand_path("VERSION", __dir__)).strip
4
+ version = File.read(File.expand_path('VERSION', __dir__)).strip
4
5
 
5
6
  Gem::Specification.new do |s|
6
7
  s.name = 'cucumber-cucumber-expressions'
7
8
  s.version = version
8
- s.authors = ["Aslak Hellesøy"]
9
+ s.authors = ['Aslak Hellesøy']
9
10
  s.description = 'Cucumber Expressions - a simpler alternative to Regular Expressions'
10
11
  s.summary = "cucumber-expressions-#{s.version}"
11
12
  s.email = 'cukes@googlegroups.com'
12
- s.homepage = "https://github.com/cucumber/cucumber-expressions-ruby#readme"
13
+ s.homepage = 'https://github.com/cucumber/cucumber-expressions-ruby#readme'
13
14
  s.platform = Gem::Platform::RUBY
14
- s.license = "MIT"
15
- s.required_ruby_version = ">= 2.3"
15
+ s.license = 'MIT'
16
+ s.required_ruby_version = '>= 2.5'
16
17
 
17
- s.metadata = {
18
+ s.metadata = {
18
19
  'bug_tracker_uri' => 'https://github.com/cucumber/cucumber/issues',
19
20
  'changelog_uri' => 'https://github.com/cucumber/common/blob/main/cucumber-expressions/CHANGELOG.md',
20
21
  'documentation_uri' => 'https://cucumber.io/docs/cucumber/cucumber-expressions/',
@@ -24,10 +25,11 @@ Gem::Specification.new do |s|
24
25
 
25
26
  s.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
26
27
  s.add_development_dependency 'rspec', '~> 3.11', '>= 3.11.0'
28
+ s.add_development_dependency 'rubocop', '~> 1.27.0'
27
29
 
28
- s.rubygems_version = ">= 1.6.1"
30
+ s.rubygems_version = '>= 3.0.8'
29
31
  s.files = `git ls-files`.split("\n").reject {|path| path =~ /\.gitignore$/ }
30
32
  s.test_files = `git ls-files -- spec/*`.split("\n")
31
- s.rdoc_options = ["--charset=UTF-8"]
32
- s.require_path = "lib"
33
+ s.rdoc_options = ['--charset=UTF-8']
34
+ s.require_path = 'lib'
33
35
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'cucumber/cucumber_expressions/group'
2
4
  require 'cucumber/cucumber_expressions/errors'
3
5
 
@@ -14,7 +16,7 @@ module Cucumber
14
16
 
15
17
  if arg_groups.length != parameter_types.length
16
18
  raise CucumberExpressionError.new(
17
- "Expression #{tree_regexp.regexp.inspect} has #{arg_groups.length} capture groups (#{arg_groups.map(&:value)}), but there were #{parameter_types.length} parameter types (#{parameter_types.map(&:name)})"
19
+ "Expression #{tree_regexp.regexp.inspect} has #{arg_groups.length} capture groups (#{arg_groups.map(&:value)}), but there were #{parameter_types.length} parameter types (#{parameter_types.map(&:name)})"
18
20
  )
19
21
  end
20
22
 
@@ -27,8 +29,9 @@ module Cucumber
27
29
  @group, @parameter_type = group, parameter_type
28
30
  end
29
31
 
30
- def value(self_obj=:nil)
31
- raise "No self_obj" if self_obj == :nil
32
+ def value(self_obj = :nil)
33
+ raise 'No self_obj' if self_obj == :nil
34
+
32
35
  group_values = @group ? @group.values : nil
33
36
  @parameter_type.transform(self_obj, group_values)
34
37
  end