cucumber-core 18.0.0 → 19.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: 40198f152a14c95e0b6bc0edd0191ea57223037d6452849926f20691114cfb4f
4
- data.tar.gz: 81b94a76c6113fbd26be6aba465294d61185d48202ef153196b95465f094f7c3
3
+ metadata.gz: 25b931cc726aa46d40c838941a4a033fd70a34ef4899884750e86e9ad2a0f1b3
4
+ data.tar.gz: d4f808dfc9dc0106e96b1fb6754df766f18a1248914323e89fe32c9a5eee6202
5
5
  SHA512:
6
- metadata.gz: e20c7fad6648efad8b47f55c79259c7c35106b0778c714e31f387dbcfae17699a5283841894f5ec94ab8dd7f3792c4fd6958186ebf5a3845404c26318e9d3fa1
7
- data.tar.gz: 5c2477e304ae210c4c0efde9b2445c576d209cc116fd78e25b95afe7965c6cbba4161ae1e8e2235c3aa3d1bd92668a001f163f5dabd848206758a7a2700484c9
6
+ metadata.gz: 8a0428cdbc69794d04b068fc6b72a83026cb8b08959c91153fc4c3b71b44062e442e5842dcef7b3dc8af424daa6c7dbebcce9fe13258ee4cc51a1aa6b9b798b6
7
+ data.tar.gz: ae12323897fe7bb9b0f1bad297dadf5a2be335f5eb187a1093317350e5bd6211dac5cb93c1bafcca50610a5366571e9b85cb512363567471973ddbbf55bbcdd0
data/CHANGELOG.md CHANGED
@@ -10,8 +10,20 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ## [19.0.0] - 2026-08-19
14
+ ### Added
15
+ - Emit test_case_started/finished and test_step_started/test_step_finished envelopes from the Runner. ([#331](https://github.com/cucumber/cucumber-ruby-core/pull/331))
16
+
17
+ ### Changed
18
+ - Increased upper bounds of `cucumber-messages` to v34 and `cucumber-gherkin` to v42
19
+ - **BREAKING CHANGE:** Event base class has been internally refactored. See upgrading notes for [19.0.0.md](upgrading_notes/19.0.0.md#upgrading-to-cucumber-core-1900), for full changes
20
+ - Permit usage of `cucumber-tag-expressions` up to v11
21
+
13
22
  ## [18.0.0] - 2026-07-13
14
23
  ### Changed
24
+ - **BREAKING CHANGE:** Structure of Gherkin writer helpers have been changed. Now one helper per file, and all helpers are still available by requiring `gherkin/writer/helpers`.
25
+ See upgrading notes for [18.0.0.md](upgrading_notes/18.0.0.md#upgrading-to-cucumber-core-1800), for full changes
26
+ - **BREAKING CHANGE:** Flaky results are now treated as a passing state. See upgrading notes for [18.0.0.md](upgrading_notes/18.0.0.md#upgrading-to-cucumber-core-1800), for full changes
15
27
  - Tidied up a bunch of mostly internal test code to be more rubocop compliant
16
28
 
17
29
  ## [17.0.0] - 2026-06-01
@@ -91,6 +103,8 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
91
103
 
92
104
  ## [14.0.0] - 2024-08-08
93
105
  ### Changed
106
+ - **BREAKING CHANGE:** Structure of `Action` classes have changed. See upgrading notes for [14.0.0.md](upgrading_notes/14.0.0.md#upgrading-to-cucumber-core-1400)
107
+ ([#282](https://github.com/cucumber/cucumber-ruby-core/pull/282))
94
108
  - Permit usage of gherkin up to v29 and messages up to v26
95
109
 
96
110
  ### Removed
@@ -150,7 +164,8 @@ See upgrading notes for [13.0.0.md](upgrading_notes/13.0.0.md#upgrading-to-cucum
150
164
  ### Changed
151
165
  - Updated `cucumber-gherkin` and `cucumber-messages`
152
166
 
153
- [Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v18.0.0...HEAD
167
+ [Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v19.0.0...HEAD
168
+ [19.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v18.0.0...v19.0.0
154
169
  [18.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v17.0.0...v18.0.0
155
170
  [17.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v16.2.0...v17.0.0
156
171
  [16.2.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v16.1.1...v16.2.0
@@ -171,10 +186,3 @@ See upgrading notes for [13.0.0.md](upgrading_notes/13.0.0.md#upgrading-to-cucum
171
186
  [12.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v11.1.0...v12.0.0
172
187
  [11.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v11.0.0...v11.1.0
173
188
  [11.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...v11.0.0
174
- .3]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.2...v13.0.3
175
- [13.0.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.1...v13.0.2
176
- [13.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.0...v13.0.1
177
- [13.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v12.0.0...v13.0.0
178
- [12.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v11.1.0...v12.0.0
179
- [11.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v11.0.0...v11.1.0
180
- [11.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...v11.0.0
data/README.md CHANGED
@@ -45,11 +45,7 @@ or install the gem directly:
45
45
 
46
46
  ### Supported platforms
47
47
 
48
- - Ruby 3.3
49
- - Ruby 3.2
50
- - Ruby 3.1
51
- - Ruby 3.0
52
- - JRuby 9.4 (with [some limitations](https://github.com/cucumber/cucumber-ruby/blob/main/docs/jruby-limitations.md))
48
+ Supported Platforms are detailed in the [cucumber-ruby repository](https://github.com/cucumber/cucumber-ruby#supported-platforms).
53
49
 
54
50
  ## Usage
55
51
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Cucumber
4
4
  module Core
5
- module Events
5
+ module Event
6
6
  # An archetype of what each Cucumber Event defined in cucumber-ruby must adhere to
7
7
  class Base
8
8
  # The "key" name of the class to be used as the key in the event registry (Underscored name symbolized)
@@ -4,7 +4,7 @@ require_relative 'base'
4
4
 
5
5
  module Cucumber
6
6
  module Core
7
- module Events
7
+ module Event
8
8
  class Envelope < Base
9
9
  attr_reader :envelope
10
10
 
@@ -4,7 +4,7 @@ require_relative 'base'
4
4
 
5
5
  module Cucumber
6
6
  module Core
7
- module Events
7
+ module Event
8
8
  # Signals that a gherkin source has been parsed
9
9
  class GherkinSourceParsed < Base
10
10
  # @return [GherkinDocument] the GherkinDocument Ast Node that was parsed
@@ -4,7 +4,7 @@ require_relative 'base'
4
4
 
5
5
  module Cucumber
6
6
  module Core
7
- module Events
7
+ module Event
8
8
  # Signals that a Test::Case was created from a Pickle
9
9
  class TestCaseCreated < Base
10
10
  attr_reader :test_case, :pickle
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../event'
3
+ require_relative 'base'
4
4
 
5
5
  module Cucumber
6
6
  module Core
7
- module Events
7
+ module Event
8
8
  # Signals that a {Test::Case} has finished executing
9
9
  class TestCaseFinished < Base
10
10
  # @return [Test::Case] that was executed
@@ -4,7 +4,7 @@ require_relative 'base'
4
4
 
5
5
  module Cucumber
6
6
  module Core
7
- module Events
7
+ module Event
8
8
  # Signals that a {Test::Case} is about to be executed
9
9
  class TestCaseStarted < Base
10
10
  # @return [Cucumber::Core::Test::Case] the test case to be executed
@@ -4,7 +4,7 @@ require_relative 'base'
4
4
 
5
5
  module Cucumber
6
6
  module Core
7
- module Events
7
+ module Event
8
8
  # Signals that a Test::Step was created from a PickleStep
9
9
  class TestStepCreated < Base
10
10
  attr_reader :test_step, :pickle_step
@@ -4,7 +4,7 @@ require_relative 'base'
4
4
 
5
5
  module Cucumber
6
6
  module Core
7
- module Events
7
+ module Event
8
8
  # Signals that a {Test::Step} has finished executing
9
9
  class TestStepFinished < Base
10
10
  # @return [Cucumber::Core::Test::Step] the test step that was executed
@@ -4,7 +4,7 @@ require_relative 'base'
4
4
 
5
5
  module Cucumber
6
6
  module Core
7
- module Events
7
+ module Event
8
8
  # Signals that a {Test::Step} is about to be executed
9
9
  class TestStepStarted < Base
10
10
  # @return [Cucumber::Core::Test::Step] the test step to be executed
@@ -1,61 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Cucumber
4
- module Core
5
- class Event
6
- # Macro to generate new subclasses of {Event} with attribute readers.
7
- def self.new(*events)
8
- # Use normal constructor for subclasses of Event
9
- return super if ancestors.index(Event).positive?
10
-
11
- Class.new(Event) do
12
- # NB: We need to use metaprogramming here instead of direct variable obtainment
13
- # because JRuby does not guarantee the order in which variables are defined is equivalent
14
- # to the order in which they are obtainable
15
- #
16
- # See https://github.com/jruby/jruby/issues/7988 for more info
17
- attr_reader(*events)
18
-
19
- define_method(:initialize) do |*attributes|
20
- events.zip(attributes) do |name, value|
21
- instance_variable_set(:"@#{name}", value)
22
- end
23
- end
24
- end
25
- end
26
-
27
- def to_h
28
- instance_variables.to_h do |variable_name|
29
- [variable_name[1..].to_sym, instance_variable_get(variable_name)]
30
- end
31
- end
32
-
33
- def attributes
34
- instance_variables.map { |var| instance_variable_get(var) }
35
- end
36
-
37
- def event_id
38
- self.class.event_id
39
- end
40
-
41
- class << self
42
- # @return [Symbol] the underscored name of the class to be used as the key in an event registry
43
- def event_id
44
- underscore(name.split('::').last).to_sym
45
- end
46
-
47
- private
48
-
49
- def underscore(string)
50
- string
51
- .to_s
52
- .gsub('::', '/')
53
- .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
54
- .gsub(/([a-z\d])([A-Z])/, '\1_\2')
55
- .tr('-', '_')
56
- .downcase
57
- end
58
- end
59
- end
60
- end
61
- end
3
+ require_relative 'event/envelope'
4
+ require_relative 'event/gherkin_source_parsed'
5
+ require_relative 'event/test_case_created'
6
+ require_relative 'event/test_case_started'
7
+ require_relative 'event/test_case_finished'
8
+ require_relative 'event/test_step_created'
9
+ require_relative 'event/test_step_started'
10
+ require_relative 'event/test_step_finished'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'events'
3
+ require_relative 'event'
4
4
 
5
5
  module Cucumber
6
6
  module Core
@@ -11,8 +11,30 @@ module Cucumber
11
11
  class EventBus
12
12
  attr_reader :event_types
13
13
 
14
+ # The registry contains all the event registered in the core, that will be used by the {EventBus} by default.
15
+ def self.registry
16
+ build_registry(
17
+ Event::Envelope,
18
+ Event::GherkinSourceParsed,
19
+ Event::TestCaseCreated,
20
+ Event::TestCaseStarted,
21
+ Event::TestCaseFinished,
22
+ Event::TestStepCreated,
23
+ Event::TestStepStarted,
24
+ Event::TestStepFinished
25
+ )
26
+ end
27
+
28
+ # Build an event registry to be passed to the {EventBus} constructor from a list of types.
29
+ # Each type must respond to `event_id` so that it can be added to the registry hash
30
+ #
31
+ # @return [Hash{Symbol => Class}]
32
+ def self.build_registry(*types)
33
+ types.to_h { |type| [type.event_id, type] }
34
+ end
35
+
14
36
  # @param registry [Hash{Symbol => Class}] a hash of event types to use on the bus
15
- def initialize(registry = Events.registry)
37
+ def initialize(registry = self.class.registry)
16
38
  @event_types = registry.freeze
17
39
  @handlers = {}
18
40
  @event_queue = []
@@ -3,34 +3,51 @@
3
3
  require 'cucumber/messages/helpers/test_step_result_comparator'
4
4
 
5
5
  require_relative 'timer'
6
+ require 'cucumber/messages'
6
7
 
7
8
  module Cucumber
8
9
  module Core
9
10
  module Test
10
11
  class Runner
11
- attr_reader :event_bus, :running_test_case, :running_test_step
12
- private :event_bus, :running_test_case, :running_test_step
12
+ include Cucumber::Messages::Helpers::TimeConversion
13
13
 
14
- def initialize(event_bus)
14
+ attr_reader :event_bus, :running_test_case, :running_test_step, :id_generator
15
+ private :event_bus, :running_test_case, :running_test_step, :id_generator
16
+
17
+ def initialize(event_bus, id_generator = Cucumber::Messages::Helpers::IdGenerator::UUID.new, backtrace_filter = nil, max_attempts = 1)
15
18
  @event_bus = event_bus
19
+ @id_generator = id_generator
20
+ @backtrace_filter = backtrace_filter
21
+ @max_attempts = max_attempts
22
+ @current_test_case = nil
16
23
  end
17
24
 
18
25
  def test_case(test_case, &descend)
26
+ @attempt = @current_test_case == test_case ? @attempt + 1 : 1
27
+ @current_test_case = test_case
28
+ @current_test_case_started_id = id_generator.new_id
19
29
  @running_test_case = RunningTestCase.new
20
30
  @running_test_step = nil
21
31
  event_bus.test_case_started(test_case)
32
+ event_bus.envelope(to_test_case_started_envelope(test_case))
33
+
22
34
  descend.call(self)
23
- result = running_test_case.result
24
- result = Result::Undefined.new('The test case has no steps', Result::UnknownDuration.new, ["#{test_case.location}:in `#{test_case.name}'"]) if result.unknown?
35
+
36
+ result = calculate_test_case_result(test_case)
25
37
  event_bus.test_case_finished(test_case, result)
38
+ event_bus.envelope(to_test_case_finished_envelope(result))
26
39
  self
27
40
  end
28
41
 
29
42
  def test_step(test_step)
30
43
  @running_test_step = test_step
31
44
  event_bus.test_step_started test_step
45
+ event_bus.envelope(to_test_step_started_envelope(test_step))
46
+
32
47
  step_result = running_test_case.execute(test_step)
48
+
33
49
  event_bus.test_step_finished test_step, step_result
50
+ event_bus.envelope(to_test_step_finished_envelope(test_step, step_result))
34
51
  @running_test_step = nil
35
52
  self
36
53
  end
@@ -46,6 +63,85 @@ module Cucumber
46
63
  self
47
64
  end
48
65
 
66
+ def calculate_test_case_result(test_case)
67
+ if running_test_case.result.unknown?
68
+ Result::Undefined.new('The test case has no steps', Result::UnknownDuration.new, ["#{test_case.location}:in `#{test_case.name}'"])
69
+ else
70
+ running_test_case.result
71
+ end
72
+ end
73
+
74
+ def to_test_case_started_envelope(test_case)
75
+ Cucumber::Messages::Envelope.new(
76
+ test_case_started: Cucumber::Messages::TestCaseStarted.new(
77
+ id: @current_test_case_started_id,
78
+ test_case_id: test_case.id,
79
+ timestamp: time_to_timestamp(Time.now),
80
+ attempt: @attempt
81
+ )
82
+ )
83
+ end
84
+
85
+ def to_test_case_finished_envelope(result)
86
+ Cucumber::Messages::Envelope.new(
87
+ test_case_finished: Cucumber::Messages::TestCaseFinished.new(
88
+ test_case_started_id: @current_test_case_started_id,
89
+ timestamp: time_to_timestamp(Time.now),
90
+ will_be_retried: result.failed? && (@attempt < @max_attempts)
91
+ )
92
+ )
93
+ end
94
+
95
+ def to_test_step_started_envelope(test_step)
96
+ Cucumber::Messages::Envelope.new(
97
+ test_step_started: Cucumber::Messages::TestStepStarted.new(
98
+ test_step_id: test_step.id,
99
+ test_case_started_id: @current_test_case_started_id,
100
+ timestamp: time_to_timestamp(Time.now)
101
+ )
102
+ )
103
+ end
104
+
105
+ def to_test_step_finished_envelope(test_step, step_result)
106
+ result = @backtrace_filter.nil? ? step_result : step_result.with_filtered_backtrace(@backtrace_filter)
107
+ result_message = result.to_message
108
+ if result.failed? || result.pending?
109
+ message_element = result.failed? ? result.exception : result
110
+
111
+ result_message = Cucumber::Messages::TestStepResult.new(
112
+ status: result_message.status,
113
+ duration: result_message.duration,
114
+ message: to_error_message(message_element),
115
+ exception: to_exception_object(result, message_element)
116
+ )
117
+ end
118
+ Cucumber::Messages::Envelope.new(
119
+ test_step_finished: Cucumber::Messages::TestStepFinished.new(
120
+ test_step_id: test_step.id,
121
+ test_case_started_id: @current_test_case_started_id,
122
+ test_step_result: result_message,
123
+ timestamp: time_to_timestamp(Time.now)
124
+ )
125
+ )
126
+ end
127
+
128
+ def to_error_message(message_element)
129
+ <<~ERROR_MESSAGE
130
+ #{message_element.message} (#{message_element.class})
131
+ #{message_element.backtrace}
132
+ ERROR_MESSAGE
133
+ end
134
+
135
+ def to_exception_object(result, message_element)
136
+ return unless result.failed?
137
+
138
+ Cucumber::Messages::Exception.new(
139
+ type: message_element.class,
140
+ message: message_element.message,
141
+ stack_trace: message_element.backtrace.join("\n")
142
+ )
143
+ end
144
+
49
145
  class RunningTestCase
50
146
  include Cucumber::Messages::Helpers::TestStepResultComparator
51
147
 
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: 18.0.0
4
+ version: 19.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: '36'
23
23
  - - "<"
24
24
  - !ruby/object:Gem::Version
25
- version: '40'
25
+ version: '43'
26
26
  type: :runtime
27
27
  prerelease: false
28
28
  version_requirements: !ruby/object:Gem::Requirement
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '36'
33
33
  - - "<"
34
34
  - !ruby/object:Gem::Version
35
- version: '40'
35
+ version: '43'
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: cucumber-messages
38
38
  requirement: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  version: '31'
43
43
  - - "<"
44
44
  - !ruby/object:Gem::Version
45
- version: '33'
45
+ version: '35'
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,7 +52,7 @@ dependencies:
52
52
  version: '31'
53
53
  - - "<"
54
54
  - !ruby/object:Gem::Version
55
- version: '33'
55
+ version: '35'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: cucumber-tag-expressions
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -62,7 +62,7 @@ dependencies:
62
62
  version: '6'
63
63
  - - "<"
64
64
  - !ruby/object:Gem::Version
65
- version: '10'
65
+ version: '12'
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
@@ -72,7 +72,7 @@ dependencies:
72
72
  version: '6'
73
73
  - - "<"
74
74
  - !ruby/object:Gem::Version
75
- version: '10'
75
+ version: '12'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: rake
78
78
  requirement: !ruby/object:Gem::Requirement
@@ -107,14 +107,14 @@ dependencies:
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.87.0
110
+ version: 1.89.0
111
111
  type: :development
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.87.0
117
+ version: 1.89.0
118
118
  - !ruby/object:Gem::Dependency
119
119
  name: rubocop-packaging
120
120
  requirement: !ruby/object:Gem::Requirement
@@ -149,14 +149,14 @@ dependencies:
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 3.9.0
152
+ version: 3.10.2
153
153
  type: :development
154
154
  prerelease: false
155
155
  version_requirements: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 3.9.0
159
+ version: 3.10.2
160
160
  description: Core library for the Cucumber BDD app
161
161
  email: cukes@googlegroups.com
162
162
  executables: []
@@ -169,17 +169,16 @@ files:
169
169
  - lib/cucumber/core.rb
170
170
  - lib/cucumber/core/compiler.rb
171
171
  - lib/cucumber/core/event.rb
172
+ - lib/cucumber/core/event/base.rb
173
+ - lib/cucumber/core/event/envelope.rb
174
+ - lib/cucumber/core/event/gherkin_source_parsed.rb
175
+ - lib/cucumber/core/event/test_case_created.rb
176
+ - lib/cucumber/core/event/test_case_finished.rb
177
+ - lib/cucumber/core/event/test_case_started.rb
178
+ - lib/cucumber/core/event/test_step_created.rb
179
+ - lib/cucumber/core/event/test_step_finished.rb
180
+ - lib/cucumber/core/event/test_step_started.rb
172
181
  - lib/cucumber/core/event_bus.rb
173
- - lib/cucumber/core/events.rb
174
- - lib/cucumber/core/events/base.rb
175
- - lib/cucumber/core/events/envelope.rb
176
- - lib/cucumber/core/events/gherkin_source_parsed.rb
177
- - lib/cucumber/core/events/test_case_created.rb
178
- - lib/cucumber/core/events/test_case_finished.rb
179
- - lib/cucumber/core/events/test_case_started.rb
180
- - lib/cucumber/core/events/test_step_created.rb
181
- - lib/cucumber/core/events/test_step_finished.rb
182
- - lib/cucumber/core/events/test_step_started.rb
183
182
  - lib/cucumber/core/filter.rb
184
183
  - lib/cucumber/core/gherkin/document.rb
185
184
  - lib/cucumber/core/gherkin/parser.rb
@@ -261,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
261
260
  - !ruby/object:Gem::Version
262
261
  version: 3.2.8
263
262
  requirements: []
264
- rubygems_version: 4.0.10
263
+ rubygems_version: 4.0.16
265
264
  specification_version: 4
266
- summary: cucumber-core-18.0.0
265
+ summary: cucumber-core-19.0.0
267
266
  test_files: []
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'events/envelope'
4
- require_relative 'events/gherkin_source_parsed'
5
- require_relative 'events/test_case_created'
6
- require_relative 'events/test_case_started'
7
- require_relative 'events/test_case_finished'
8
- require_relative 'events/test_step_created'
9
- require_relative 'events/test_step_started'
10
- require_relative 'events/test_step_finished'
11
-
12
- module Cucumber
13
- module Core
14
- module Events
15
- # The registry contains all the events registered in the core, that will be used by the {EventBus} by default.
16
- def self.registry
17
- build_registry(
18
- Envelope,
19
- GherkinSourceParsed,
20
- TestCaseCreated,
21
- TestCaseStarted,
22
- TestCaseFinished,
23
- TestStepCreated,
24
- TestStepStarted,
25
- TestStepFinished
26
- )
27
- end
28
-
29
- # Build an event registry to be passed to the {EventBus} constructor from a list of types.
30
- # Each type must respond to `event_id` so that it can be added to the registry hash
31
- #
32
- # @return [Hash{Symbol => Class}]
33
- def self.build_registry(*types)
34
- types.to_h { |type| [type.event_id, type] }
35
- end
36
- end
37
- end
38
- end