cucumber-core 13.0.2 → 14.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 316b17fd47e74b8055e37ac53e4296afba193bbef01c33aab2b1b23bab504f33
4
- data.tar.gz: ee20eef6a171a3eee2be083bd1e9b3e1f5e480cca6e19eb08bde3d714b52b17e
3
+ metadata.gz: 570471feb1c7ceb0d00c12ffda878f8520993ec3a8cf31059f38f4eb4e045923
4
+ data.tar.gz: 5e303f42a9aecf8290351f657f9aa763d0a046623e6479083c466cd040cfa8c6
5
5
  SHA512:
6
- metadata.gz: 6ca13a986fc61358b40d294878954952144d6a7555a7bfba029497c4c2b435bb430928207136ab13273895b0300f596c1636cfee085535cff4a8889ad524fe9d
7
- data.tar.gz: afdcbcf708ee258ef33bc8dcc776cbf71affd67c9bd9b5b2e31c01337b8512212237c1b24ce7a43849d2ee231abcead619d4b3e4b8274db1f8fd0d91f3ee67f3
6
+ metadata.gz: def6d99174f68b29d3daa43256175014306168b77f484341d5fb78b3e2446cf539dff514a9fb85eabb65ec9c342507855121bfa87135b848ea16d29ddcc19a4f
7
+ data.tar.gz: 8873beb624b2cbc3144e8b46cb3d03709855491cfbeba79b796e5f15bdc6540eaa1ec3c59cc67dd43be4b20815ac4ecfc55885ea1cb8034212f924f06197110c
data/CHANGELOG.md CHANGED
@@ -10,6 +10,20 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ## [14.0.0] - 2024-08-08
14
+ ### Changed
15
+ - Permit usage of gherkin up to v29 and messages up to v26
16
+ - **Internal Breaking Change**: Structure of `Action` classes have changed.
17
+ See upgrading notes for [14.0.0.md](upgrading_notes/14.0.0.md#upgrading-to-cucumber-core-1400)
18
+ ([#282](https://github.com/cucumber/cucumber-ruby-core/pull/282))
19
+
20
+ ### Removed
21
+ - Remove support for ruby 2.6 and below. 2.7 or higher is required now (Autofixed to Ruby 2.7 styles)
22
+
23
+ ## [13.0.3] - 2024-07-24
24
+ ### Changed
25
+ - Fixed up all remaining Layout auto-correct cops in the codebase
26
+
13
27
  ## [13.0.2] - 2024-03-21
14
28
  ### Changed
15
29
  - Added CI testing for Ruby 3.3
@@ -27,8 +41,8 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
27
41
  - Now using a 2-tiered changelog to avoid any bugs when using polyglot-release
28
42
  - More refactoring of the repo by fixing up a bunch of manual rubocop offenses (See PR's for details)
29
43
  ([#259](https://github.com/cucumber/cucumber-ruby-core/pull/259) [#262](https://github.com/cucumber/cucumber-ruby-core/pull/262) [#268](https://github.com/cucumber/cucumber-ruby-core/pull/268) [#274](https://github.com/cucumber/cucumber-ruby-core/pull/274))
30
- - In all `Summary` and `Result` classes, changed the `strict` argument into a keyword argument
31
- See upgrading notes for [13.0.0.md](upgrading_notes/13.0.0.md#upgrading-to-1300)
44
+ - In all `Summary` and `Result` classes, changed the `strict` argument into a keyword argument.
45
+ See upgrading notes for [13.0.0.md](upgrading_notes/13.0.0.md#upgrading-to-cucumber-core-1300)
32
46
  ([#261](https://github.com/cucumber/cucumber-ruby-core/pull/261))
33
47
  - Permit usage of gherkin v27
34
48
 
@@ -60,7 +74,9 @@ See upgrading notes for [13.0.0.md](upgrading_notes/13.0.0.md#upgrading-to-1300)
60
74
  ### Changed
61
75
  - Updated `cucumber-gherkin` and `cucumber-messages`
62
76
 
63
- [Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.2...HEAD
77
+ [Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v14.0.0...HEAD
78
+ [14.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.3...v14.0.0
79
+ [13.0.3]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.2...v13.0.3
64
80
  [13.0.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.1...v13.0.2
65
81
  [13.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.0...v13.0.1
66
82
  [13.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v12.0.0...v13.0.0
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (C) The Cucumber Organisation
1
+ Copyright (c) Cucumber Ltd. and Contributors
2
2
 
3
3
  MIT License (Expat)
4
4
 
@@ -48,11 +48,11 @@ module Cucumber
48
48
  def underscore(string)
49
49
  string
50
50
  .to_s
51
- .gsub('::', '/').
52
- gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
53
- gsub(/([a-z\d])([A-Z])/, '\1_\2').
54
- tr('-', '_').
55
- downcase
51
+ .gsub('::', '/')
52
+ .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
53
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
54
+ .tr('-', '_')
55
+ .downcase
56
56
  end
57
57
  end
58
58
  end
@@ -29,6 +29,7 @@ module Cucumber
29
29
 
30
30
  def broadcast(event)
31
31
  raise ArgumentError, "Event type #{event.class} is not registered. Try one of these:\n#{event_types.values.join("\n")}" unless registered_type?(event.class)
32
+
32
33
  handlers_for(event.class).each { |handler| handler.call(event) }
33
34
  @event_queue << event
34
35
  end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  require 'cucumber/core/event'
@@ -40,7 +39,7 @@ module Cucumber
40
39
  attr_reader :test_case
41
40
  end
42
41
 
43
- # Signals that a {Test::Step} is about to be executed
42
+ # Signals that a {Test::Step} is about to be executed
44
43
  class TestStepStarted < Event.new(:test_step)
45
44
  # @return [Test::Step] the test step to be executed
46
45
  attr_reader :test_step
@@ -87,7 +86,7 @@ module Cucumber
87
86
  #
88
87
  # @return [Hash{Symbol => Class}]
89
88
  def self.build_registry(*types)
90
- types.map { |type| [type.event_id, type] }.to_h
89
+ types.to_h { |type| [type.event_id, type] }
91
90
  end
92
91
  end
93
92
  end
@@ -6,7 +6,7 @@ module Cucumber
6
6
  class Document
7
7
  attr_reader :uri, :body, :language
8
8
 
9
- def initialize(uri, body, language=nil)
9
+ def initialize(uri, body, language = nil)
10
10
  @uri = uri
11
11
  @body = body
12
12
  @language = language || 'en'
@@ -50,7 +50,7 @@ module Cucumber
50
50
  case type?(message)
51
51
  when :gherkin_document; then event_bus.gherkin_source_parsed(message.gherkin_document)
52
52
  when :pickle; then receiver.pickle(message.pickle)
53
- when :parse_error; then raise ParseError.new("#{document.uri}: #{message.parse_error.message}")
53
+ when :parse_error; then raise ParseError, "#{document.uri}: #{message.parse_error.message}"
54
54
  else raise "Unknown message: #{message.to_hash}"
55
55
  end
56
56
  end
@@ -149,7 +149,7 @@ module Cucumber
149
149
 
150
150
  private
151
151
 
152
- def row_statements(indent=nil)
152
+ def row_statements(indent = nil)
153
153
  rows.map { |row| indent(table_row(row), indent) }
154
154
  end
155
155
 
@@ -16,7 +16,8 @@ module Cucumber
16
16
 
17
17
  class Gherkin
18
18
  def initialize(uri, &source)
19
- @uri, @source = uri, source
19
+ @uri = uri
20
+ @source = source
20
21
  end
21
22
 
22
23
  def comment(line)
@@ -174,7 +175,7 @@ module Cucumber
174
175
 
175
176
  elements :table
176
177
 
177
- def doc_string(string, content_type='')
178
+ def doc_string(string, content_type = '')
178
179
  elements << DocString.new(string, content_type)
179
180
  end
180
181
 
@@ -193,8 +194,7 @@ module Cucumber
193
194
  include Indentation.level(6)
194
195
  include HasRows
195
196
 
196
- def initialize(*)
197
- end
197
+ def initialize(*); end
198
198
 
199
199
  def build(source)
200
200
  source + statements
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cucumber/core/test/location'
4
+ require 'cucumber/core/test/result'
5
+ require 'cucumber/core/test/timer'
6
+
7
+ module Cucumber
8
+ module Core
9
+ module Test
10
+ module Action
11
+ class Defined
12
+ attr_reader :location
13
+
14
+ def initialize(location = nil, &block)
15
+ raise ArgumentError, 'Passing a block to execute the action is mandatory.' unless block
16
+
17
+ @location = location || Test::Location.new(*block.source_location)
18
+ @block = block
19
+ @timer = Timer.new
20
+ end
21
+
22
+ def skip(*)
23
+ skipped
24
+ end
25
+
26
+ def execute(*args)
27
+ @timer.start
28
+ @block.call(*args)
29
+ passed
30
+ rescue Result::Raisable => e
31
+ e.with_duration(@timer.duration)
32
+ rescue Exception => e
33
+ failed(e)
34
+ end
35
+
36
+ def inspect
37
+ "#<#{self.class}: #{location}>"
38
+ end
39
+
40
+ private
41
+
42
+ def passed
43
+ Result::Passed.new(@timer.duration)
44
+ end
45
+
46
+ def failed(exception)
47
+ Result::Failed.new(@timer.duration, exception)
48
+ end
49
+
50
+ def skipped
51
+ Result::Skipped.new
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cucumber/core/test/result'
4
+
5
+ module Cucumber
6
+ module Core
7
+ module Test
8
+ module Action
9
+ class Undefined
10
+ attr_reader :location
11
+
12
+ def initialize(source_location)
13
+ @location = source_location
14
+ end
15
+
16
+ def execute(*)
17
+ undefined
18
+ end
19
+
20
+ def skip(*)
21
+ undefined
22
+ end
23
+
24
+ private
25
+
26
+ def undefined
27
+ Result::Undefined.new
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cucumber/core/test/result'
4
+ require 'cucumber/core/test/action/defined'
5
+
6
+ module Cucumber
7
+ module Core
8
+ module Test
9
+ module Action
10
+ class Unskippable < Defined
11
+ def skip(*args)
12
+ execute(*args)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -4,81 +4,6 @@ require 'cucumber/core/test/location'
4
4
  require 'cucumber/core/test/result'
5
5
  require 'cucumber/core/test/timer'
6
6
 
7
- module Cucumber
8
- module Core
9
- module Test
10
- class Action
11
- def initialize(location = nil, &block)
12
- raise ArgumentError, 'Passing a block to execute the action is mandatory.' unless block
13
- @location = location || Test::Location.new(*block.source_location)
14
- @block = block
15
- @timer = Timer.new
16
- end
17
-
18
- def skip(*)
19
- skipped
20
- end
21
-
22
- def execute(*args)
23
- @timer.start
24
- @block.call(*args)
25
- passed
26
- rescue Result::Raisable => exception
27
- exception.with_duration(@timer.duration)
28
- rescue Exception => exception
29
- failed(exception)
30
- end
31
-
32
- def location
33
- @location
34
- end
35
-
36
- def inspect
37
- "#<#{self.class}: #{location}>"
38
- end
39
-
40
- private
41
-
42
- def passed
43
- Result::Passed.new(@timer.duration)
44
- end
45
-
46
- def failed(exception)
47
- Result::Failed.new(@timer.duration, exception)
48
- end
49
-
50
- def skipped
51
- Result::Skipped.new
52
- end
53
- end
54
-
55
- class UnskippableAction < Action
56
- def skip(*args)
57
- execute(*args)
58
- end
59
- end
60
-
61
- class UndefinedAction
62
- attr_reader :location
63
-
64
- def initialize(source_location)
65
- @location = source_location
66
- end
67
-
68
- def execute(*)
69
- undefined
70
- end
71
-
72
- def skip(*)
73
- undefined
74
- end
75
-
76
- private
77
-
78
- def undefined
79
- Result::Undefined.new
80
- end
81
- end
82
- end
83
- end
84
- end
7
+ require 'cucumber/core/test/action/defined'
8
+ require 'cucumber/core/test/action/undefined'
9
+ require 'cucumber/core/test/action/unskippable'
@@ -21,10 +21,10 @@ module Cucumber
21
21
  @timer.start
22
22
  @block.call(continue)
23
23
  Result::Unknown.new # Around hook does not know the result of the inner test steps
24
- rescue Result::Raisable => exception
25
- exception.with_duration(@timer.duration)
26
- rescue Exception => exception
27
- failed(exception)
24
+ rescue Result::Raisable => e
25
+ e.with_duration(@timer.duration)
26
+ rescue Exception => e
27
+ failed(e)
28
28
  end
29
29
 
30
30
  private
@@ -10,7 +10,8 @@ module Cucumber
10
10
  attr_reader :id, :name, :test_steps, :location, :parent_locations, :tags, :language, :around_hooks
11
11
 
12
12
  def initialize(id, name, test_steps, location, parent_locations, tags, language, around_hooks = [])
13
- raise ArgumentError.new("test_steps should be an Array but is a #{test_steps.class}") unless test_steps.is_a?(Array)
13
+ raise ArgumentError, "test_steps should be an Array but is a #{test_steps.class}" unless test_steps.is_a?(Array)
14
+
14
15
  @id = id
15
16
  @name = name
16
17
  @test_steps = test_steps
@@ -101,7 +101,7 @@ module Cucumber
101
101
  end
102
102
 
103
103
  def ensure_array_of_array(array)
104
- Hash === array[0] ? hashes_to_array(array) : array
104
+ array[0].is_a?(Hash) ? hashes_to_array(array) : array
105
105
  end
106
106
 
107
107
  def hashes_to_array(hashes)
@@ -43,6 +43,7 @@ module Cucumber
43
43
 
44
44
  def map
45
45
  raise ArgumentError, 'No block given' unless block_given?
46
+
46
47
  new_content = yield content
47
48
  self.class.new(new_content, content_type)
48
49
  end
@@ -59,9 +60,8 @@ module Cucumber
59
60
  if other.respond_to?(:content_type)
60
61
  return false unless content_type == other.content_type
61
62
  end
62
- if other.respond_to?(:to_str)
63
- return content == other.to_str
64
- end
63
+ return content == other.to_str if other.respond_to?(:to_str)
64
+
65
65
  false
66
66
  end
67
67
 
@@ -23,11 +23,11 @@ module Cucumber
23
23
  private
24
24
 
25
25
  def sorted_test_cases
26
- filter_locations.map { |filter_location|
27
- test_cases[filter_location.file].select { |test_case|
26
+ filter_locations.map do |filter_location|
27
+ test_cases[filter_location.file].select do |test_case|
28
28
  test_case.match_locations?([filter_location])
29
- }
30
- }.flatten.uniq
29
+ end
30
+ end.flatten.uniq
31
31
  end
32
32
 
33
33
  def test_cases
@@ -7,9 +7,7 @@ module Cucumber
7
7
  module Test
8
8
  class NameFilter < Filter.new(:name_regexps)
9
9
  def test_case(test_case)
10
- if accept?(test_case)
11
- test_case.describe_to(receiver)
12
- end
10
+ test_case.describe_to(receiver) if accept?(test_case)
13
11
  self
14
12
  end
15
13
 
@@ -8,9 +8,7 @@ module Cucumber
8
8
  class TagFilter < Filter.new(:filter_expressions)
9
9
  def test_case(test_case)
10
10
  test_cases << test_case
11
- if test_case.match_tags?(filter_expressions)
12
- test_case.describe_to(receiver)
13
- end
11
+ test_case.describe_to(receiver) if test_case.match_tags?(filter_expressions)
14
12
  self
15
13
  end
16
14
 
@@ -22,14 +22,14 @@ module Cucumber
22
22
  pwd = File.expand_path(Dir.pwd)
23
23
  pwd.force_encoding(file.encoding)
24
24
  if file.index(pwd)
25
- file = file[pwd.length + 1..-1]
25
+ file = file[pwd.length + 1..]
26
26
  elsif file =~ /.*\/gems\/(.*\.rb)$/
27
27
  file = $1
28
28
  end
29
29
  new(file, line)
30
30
  end
31
31
 
32
- def self.new(file, raw_lines=nil)
32
+ def self.new(file, raw_lines = nil)
33
33
  file || raise(ArgumentError, 'file is mandatory')
34
34
  if raw_lines
35
35
  Precise.new(file, Lines.new(raw_lines))
@@ -38,7 +38,7 @@ module Cucumber
38
38
  end
39
39
  end
40
40
 
41
- class Wildcard < Struct.new(:file)
41
+ Wildcard = Struct.new(:file) do
42
42
  def to_s
43
43
  file
44
44
  end
@@ -52,7 +52,7 @@ module Cucumber
52
52
  end
53
53
  end
54
54
 
55
- class Precise < Struct.new(:file, :lines)
55
+ Precise = Struct.new(:file, :lines) do
56
56
  def include?(other_lines)
57
57
  lines.include?(other_lines)
58
58
  end
@@ -96,7 +96,7 @@ module Cucumber
96
96
  end
97
97
 
98
98
  require 'set'
99
- class Lines < Struct.new(:data)
99
+ Lines = Struct.new(:data) do
100
100
  protected :data
101
101
 
102
102
  def initialize(raw_data)
@@ -167,17 +167,17 @@ module Cucumber
167
167
  end
168
168
 
169
169
  def tags
170
- # will be overriden by nodes that actually have tags
170
+ # will be overridden by nodes that actually have tags
171
171
  []
172
172
  end
173
173
 
174
174
  def comments
175
- # will be overriden by nodes that actually have comments
175
+ # will be overridden by nodes that actually have comments
176
176
  []
177
177
  end
178
178
 
179
179
  def multiline_arg
180
- # will be overriden by nodes that actually have a multiline_argument
180
+ # will be overridden by nodes that actually have a multiline_argument
181
181
  Test::EmptyMultilineArgument.new
182
182
  end
183
183
  end
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  require 'cucumber/messages'
@@ -64,6 +63,7 @@ module Cucumber
64
63
 
65
64
  def initialize(duration)
66
65
  raise ArgumentError unless duration
66
+
67
67
  @duration = duration
68
68
  end
69
69
 
@@ -109,6 +109,7 @@ module Cucumber
109
109
  def initialize(duration, exception)
110
110
  raise ArgumentError unless duration
111
111
  raise ArgumentError unless exception
112
+
112
113
  @duration = duration
113
114
  @exception = exception
114
115
  end
@@ -171,7 +172,8 @@ module Cucumber
171
172
  attr_reader :message, :duration
172
173
 
173
174
  def initialize(message = '', duration = UnknownDuration.new, backtrace = nil)
174
- @message, @duration = message, duration
175
+ @message = message
176
+ @duration = duration
175
177
  super(message)
176
178
  set_backtrace(backtrace) if backtrace
177
179
  end
@@ -186,6 +188,7 @@ module Cucumber
186
188
 
187
189
  def with_appended_backtrace(step)
188
190
  return self unless step.respond_to?(:backtrace_line)
191
+
189
192
  set_backtrace([]) unless backtrace
190
193
  backtrace << step.backtrace_line
191
194
  self
@@ -193,6 +196,7 @@ module Cucumber
193
196
 
194
197
  def with_filtered_backtrace(filter)
195
198
  return self unless backtrace
199
+
196
200
  filter.new(dup).exception
197
201
  end
198
202
 
@@ -283,7 +287,7 @@ module Cucumber
283
287
  private :settings
284
288
 
285
289
  def initialize(strict_types = [])
286
- @settings = STRICT_AFFECTED_TYPES.map { |t| [t, :default] }.to_h
290
+ @settings = STRICT_AFFECTED_TYPES.to_h { |t| [t, :default] }
287
291
  strict_types.each do |type|
288
292
  set_strict(true, type)
289
293
  end
@@ -298,6 +302,7 @@ module Cucumber
298
302
  else
299
303
  return false unless settings.key?(type)
300
304
  return false unless set?(type)
305
+
301
306
  settings[type]
302
307
  end
303
308
  end
@@ -377,7 +382,7 @@ module Cucumber
377
382
  if for_status
378
383
  @totals.fetch(for_status, 0)
379
384
  else
380
- @totals.values.reduce(0) { |total,count| total + count }
385
+ @totals.values.reduce(0) { |total, count| total + count }
381
386
  end
382
387
  end
383
388
 
@@ -10,8 +10,9 @@ module Cucumber
10
10
  class Step
11
11
  attr_reader :id, :text, :location, :multiline_arg
12
12
 
13
- def initialize(id, text, location, multiline_arg = Test::EmptyMultilineArgument.new, action = Test::UndefinedAction.new(location))
13
+ def initialize(id, text, location, multiline_arg = Test::EmptyMultilineArgument.new, action = Test::Action::Undefined.new(location))
14
14
  raise ArgumentError if text.nil? || text.empty?
15
+
15
16
  @id = id
16
17
  @text = text
17
18
  @location = location
@@ -36,7 +37,7 @@ module Cucumber
36
37
  end
37
38
 
38
39
  def with_action(action_location = nil, &block)
39
- self.class.new(id, text, location, multiline_arg, Test::Action.new(action_location, &block))
40
+ self.class.new(id, text, location, multiline_arg, Test::Action::Defined.new(action_location, &block))
40
41
  end
41
42
 
42
43
  def backtrace_line
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.0.2
4
+ version: 14.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
@@ -12,48 +12,48 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2024-03-21 00:00:00.000000000 Z
15
+ date: 2024-08-08 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: cucumber-gherkin
19
19
  requirement: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - ">="
21
+ - - ">"
22
22
  - !ruby/object:Gem::Version
23
23
  version: '27'
24
24
  - - "<"
25
25
  - !ruby/object:Gem::Version
26
- version: '28'
26
+ version: '30'
27
27
  type: :runtime
28
28
  prerelease: false
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ">"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '27'
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '28'
36
+ version: '30'
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: cucumber-messages
39
39
  requirement: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ">="
41
+ - - ">"
42
42
  - !ruby/object:Gem::Version
43
- version: '20'
43
+ version: '22'
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '23'
46
+ version: '27'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - ">"
52
52
  - !ruby/object:Gem::Version
53
- version: '20'
53
+ version: '22'
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
- version: '23'
56
+ version: '27'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: cucumber-tag-expressions
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -80,14 +80,14 @@ dependencies:
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '13.1'
83
+ version: '13.2'
84
84
  type: :development
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '13.1'
90
+ version: '13.2'
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rspec
93
93
  requirement: !ruby/object:Gem::Requirement
@@ -108,56 +108,56 @@ dependencies:
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: 1.28.2
111
+ version: 1.61.0
112
112
  type: :development
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: 1.28.2
118
+ version: 1.61.0
119
119
  - !ruby/object:Gem::Dependency
120
- name: rubocop-rake
120
+ name: rubocop-packaging
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: 0.6.0
125
+ version: 0.5.2
126
126
  type: :development
127
127
  prerelease: false
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - "~>"
131
131
  - !ruby/object:Gem::Version
132
- version: 0.6.0
132
+ version: 0.5.2
133
133
  - !ruby/object:Gem::Dependency
134
- name: rubocop-rspec
134
+ name: rubocop-rake
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: 2.10.0
139
+ version: 0.6.0
140
140
  type: :development
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: 2.10.0
146
+ version: 0.6.0
147
147
  - !ruby/object:Gem::Dependency
148
- name: rubocop-packaging
148
+ name: rubocop-rspec
149
149
  requirement: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: 0.5.1
153
+ version: 3.0.1
154
154
  type: :development
155
155
  prerelease: false
156
156
  version_requirements: !ruby/object:Gem::Requirement
157
157
  requirements:
158
158
  - - "~>"
159
159
  - !ruby/object:Gem::Version
160
- version: 0.5.1
160
+ version: 3.0.1
161
161
  description: Core library for the Cucumber BDD app
162
162
  email: cukes@googlegroups.com
163
163
  executables: []
@@ -180,13 +180,15 @@ files:
180
180
  - lib/cucumber/core/platform.rb
181
181
  - lib/cucumber/core/report/summary.rb
182
182
  - lib/cucumber/core/test/action.rb
183
+ - lib/cucumber/core/test/action/defined.rb
184
+ - lib/cucumber/core/test/action/undefined.rb
185
+ - lib/cucumber/core/test/action/unskippable.rb
183
186
  - lib/cucumber/core/test/around_hook.rb
184
187
  - lib/cucumber/core/test/case.rb
185
188
  - lib/cucumber/core/test/data_table.rb
186
189
  - lib/cucumber/core/test/doc_string.rb
187
190
  - lib/cucumber/core/test/empty_multiline_argument.rb
188
191
  - lib/cucumber/core/test/filters.rb
189
- - lib/cucumber/core/test/filters/activate_steps_for_self_test.rb
190
192
  - lib/cucumber/core/test/filters/locations_filter.rb
191
193
  - lib/cucumber/core/test/filters/name_filter.rb
192
194
  - lib/cucumber/core/test/filters/tag_filter.rb
@@ -215,15 +217,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
217
  requirements:
216
218
  - - ">="
217
219
  - !ruby/object:Gem::Version
218
- version: '2.5'
220
+ version: '2.7'
219
221
  required_rubygems_version: !ruby/object:Gem::Requirement
220
222
  requirements:
221
223
  - - ">="
222
224
  - !ruby/object:Gem::Version
223
- version: 3.0.1
225
+ version: 3.2.8
224
226
  requirements: []
225
227
  rubygems_version: 3.3.5
226
228
  signing_key:
227
229
  specification_version: 4
228
- summary: cucumber-core-13.0.2
230
+ summary: cucumber-core-14.0.0
229
231
  test_files: []
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Cucumber
4
- module Core
5
- module Test
6
- module Filters
7
- # This filter is used for testing Cucumber itself. It adds step definitions
8
- # that will activate steps to have passed / failed / pending results
9
- # if they use conventional names.
10
- #
11
- # It was extracted from our test code, and does not have any tests of its own.
12
- class ActivateStepsForSelfTest < Core::Filter.new
13
- Failure = Class.new(StandardError)
14
-
15
- def test_case(test_case)
16
- test_case.with_steps(test_steps(test_case)).describe_to(receiver)
17
- end
18
-
19
- private
20
-
21
- def test_steps(test_case)
22
- test_case.test_steps.map do |step|
23
- case step.text
24
- when /fail/ then step.with_action { raise Failure }
25
- when /pending/ then step.with_action { raise Test::Result::Pending }
26
- when /pass/ then step.with_action { :no_op }
27
- else; step
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end