cucumber 9.0.2 → 9.1.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: 313150f1f463d99e105864744641cd87c56e55f5d4d7856a437214a8db79dbdd
4
- data.tar.gz: 90cdd041c890ab05108d3951be679f424ae096bc2df09044b26320096074eee3
3
+ metadata.gz: 757154e702f016f75cb37fc68451c18a9a9e742957a197055e127cbe5ebefac6
4
+ data.tar.gz: '010178d0bb40315be3e1c0923c569ec9f5a8d4684da6446b7a396c45da03371c'
5
5
  SHA512:
6
- metadata.gz: 76252cc34ed4bc38ba6e7c0cec30d31b5319d14cdc9745f3e589bad8abf4713c95ec27527095b969dfd983f59ecea57f27ef9d119b68f8c032a19143d332d549
7
- data.tar.gz: bef2260cd88f77daa139256c03e68b1744849667d71a3a71931d6c57a4c546e437e996ef6e7aed157520d5ff7dc1b86d2c1a1041b9dd9747f20fe53fd61dec2a
6
+ metadata.gz: f9c2e02d96f40e5564643f994be4cb5ac6bc5f36849551d5a5f102225a4e62526efabf00d14b961f59a954fdf41345f06c45c4469913bfae93d775c33ac2f5e0
7
+ data.tar.gz: c20336a8e85dc299322e0a5cd92ba39fc7b5091195d7003b26ed014d58a3dfeb2ae8f0be6a88a6f26238589dc15acb40103049d49415431e075a1bcda4f86487
data/README.md CHANGED
@@ -5,9 +5,7 @@
5
5
  [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://vshymanskyy.github.io/StandWithUkraine)
6
6
  [![OpenCollective](https://opencollective.com/cucumber/backers/badge.svg)](https://opencollective.com/cucumber)
7
7
  [![OpenCollective](https://opencollective.com/cucumber/sponsors/badge.svg)](https://opencollective.com/cucumber)
8
- [![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%2FpullRequests.csv)](https://oselvar.com/github/cucumber/oselvar-github-metrics/main/cucumber/cucumber-ruby)
9
- [![issues](https://oselvar.com/api/badge?label=issues&csvUrl=https%3A%2F%2Fraw.githubusercontent.com%2Fcucumber%2Foselvar-github-metrics%2Fmain%2Fdata%2Fcucumber%2Fcucumber-ruby%2Fissues.csv)](https://oselvar.com/github/cucumber/oselvar-github-metrics/main/cucumber/cucumber-ruby)
10
- [![Test cucumber](https://github.com/cucumber/cucumber-ruby/actions/workflows/cucumber-ruby.yml/badge.svg)](https://github.com/cucumber/cucumber-ruby/actions/workflows/cucumber-ruby.yml)
8
+ [![Test cucumber](https://github.com/cucumber/cucumber-ruby/actions/workflows/test.yaml/badge.svg)](https://github.com/cucumber/cucumber-ruby/actions/workflows/test.yaml)
11
9
  [![Code Climate](https://codeclimate.com/github/cucumber/cucumber-ruby.svg)](https://codeclimate.com/github/cucumber/cucumber-ruby)
12
10
  [![Coverage Status](https://coveralls.io/repos/cucumber/cucumber-ruby/badge.svg?branch=main)](https://coveralls.io/r/cucumber/cucumber-ruby?branch=main)
13
11
 
@@ -56,8 +54,7 @@ Later in this document, bundler is considered being used so all commands are usi
56
54
 
57
55
  ### Ruby on Rails
58
56
 
59
- Using Ruby on Rails? You can use [cucumber-rails](https://github.com/cucumber/cucumber-rails)
60
- to bring Cucumber into your Rails project.
57
+ Using Ruby on Rails? You can use [cucumber-rails](https://github.com/cucumber/cucumber-rails) to bring Cucumber into your Rails project.
61
58
 
62
59
  ## Usage
63
60
 
@@ -133,7 +130,7 @@ To execute a single example, indicates the line of the name of the example:
133
130
 
134
131
  $ bundle exec cucumber features/rule.feature:5
135
132
 
136
- To summarize the results on the standard output, and writte a HTML report on disk:
133
+ To summarize the results on the standard output, and generate a HTML report on disk:
137
134
 
138
135
  $ bundle exec cucumber --format summary --format html --out report.html
139
136
 
@@ -141,8 +138,7 @@ For more command line options
141
138
 
142
139
  $ bundle exec cucumber --help
143
140
 
144
- You can also find documentation on the command line possibilities in
145
- [features/docs/cli](features/docs/cli).
141
+ You can also find documentation on the command line possibilities in [features/docs/cli](features/docs/cli).
146
142
 
147
143
  ## Documentation and support
148
144
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 9.0.2
1
+ 9.1.0
@@ -4,52 +4,11 @@ require 'cucumber/platform'
4
4
  require 'cucumber/gherkin/formatter/ansi_escapes'
5
5
 
6
6
  module Cucumber
7
- module Deprecate
8
- class AnsiString
9
- include Cucumber::Gherkin::Formatter::AnsiEscapes
10
-
11
- def self.failure_message(message)
12
- AnsiString.new.failure_message(message)
13
- end
14
-
15
- def failure_message(message)
16
- failed + message + reset
17
- end
18
- end
19
-
20
- class CliOption
21
- def self.deprecate(stream, option, message, remove_after_version)
22
- return if stream.nil?
23
-
24
- stream.puts(
25
- AnsiString.failure_message(
26
- "\nWARNING: #{option} is deprecated" \
27
- " and will be removed after version #{remove_after_version}.\n#{message}.\n"
28
- )
29
- )
30
- end
31
- end
32
-
33
- module ForUsers
34
- def self.call(message, method, remove_after_version)
35
- $stderr.puts AnsiString.failure_message(
36
- "\nWARNING: ##{method} is deprecated" \
37
- " and will be removed after version #{remove_after_version}. #{message}.\n" \
38
- "(Called from #{caller(3..3).first})"
39
- )
40
- end
41
- end
42
-
43
- module ForDevelopers
44
- def self.call(_message, _method, remove_after_version)
45
- raise "This method is due for removal after version #{remove_after_version}" if remove_after_version <= Cucumber::VERSION
46
- end
47
- end
48
-
49
- STRATEGY = $PROGRAM_NAME =~ /rspec$/ ? ForDevelopers : ForUsers
50
- end
51
-
52
- def self.deprecate(*args)
53
- Deprecate::STRATEGY.call(*args)
7
+ def self.deprecate(message, method, remove_after_version)
8
+ $stderr.puts(
9
+ "\nWARNING: ##{method} is deprecated" \
10
+ " and will be removed after version #{remove_after_version}. #{message}.\n" \
11
+ "(Called from #{caller(3..3).first})"
12
+ )
54
13
  end
55
14
  end
@@ -112,16 +112,24 @@ module Cucumber
112
112
  if child.respond_to?(:rule) && child.rule
113
113
  process_scenario_container(child.rule)
114
114
  elsif child.respond_to?(:scenario) && child.scenario
115
- child.scenario.steps.each do |step|
116
- @lookup_hash[step.location.line] = StepSource.new(:Step, step)
117
- end
115
+ store_scenario_source_steps(child.scenario)
118
116
  elsif !child.background.nil?
119
- child.background.steps.each do |step|
120
- @lookup_hash[step.location.line] = StepSource.new(:Step, step)
121
- end
117
+ store_background_source_steps(child.background)
122
118
  end
123
119
  end
124
120
  end
121
+
122
+ def store_scenario_source_steps(scenario)
123
+ scenario.steps.each do |step|
124
+ @lookup_hash[step.location.line] = StepSource.new(:Step, step)
125
+ end
126
+ end
127
+
128
+ def store_background_source_steps(background)
129
+ background.steps.each do |step|
130
+ @lookup_hash[step.location.line] = StepSource.new(:Step, step)
131
+ end
132
+ end
125
133
  end
126
134
 
127
135
  KeywordSearchNode = Struct.new(:keyword, :previous_node)
@@ -169,12 +169,17 @@ module Cucumber
169
169
  end
170
170
  end
171
171
 
172
- def attach(src, media_type)
172
+ def attach(src, media_type, filename)
173
173
  return unless media_type == 'text/x.cucumber.log+plain'
174
174
  return unless @io
175
175
 
176
176
  @io.puts
177
- @io.puts(format_string(src, :tag))
177
+ if filename
178
+ @io.puts("#{filename}: #{format_string(src, :tag)}")
179
+ else
180
+ @io.puts(format_string(src, :tag))
181
+ end
182
+
178
183
  @io.flush
179
184
  end
180
185
 
@@ -85,7 +85,7 @@ module Cucumber
85
85
  @io.write(JSON.pretty_generate(@feature_hashes))
86
86
  end
87
87
 
88
- def attach(src, mime_type)
88
+ def attach(src, mime_type, _filename)
89
89
  if mime_type == 'text/x.cucumber.log+plain'
90
90
  test_step_output << src
91
91
  return
@@ -42,11 +42,12 @@ module Cucumber
42
42
  raise 'To be implemented'
43
43
  end
44
44
 
45
- def attach(src, media_type)
45
+ def attach(src, media_type, filename)
46
46
  attachment_data = {
47
47
  test_step_id: @current_test_step_id,
48
48
  test_case_started_id: @current_test_case_started_id,
49
- media_type: media_type
49
+ media_type: media_type,
50
+ file_name: filename
50
51
  }
51
52
 
52
53
  if media_type.start_with?('text/')
@@ -192,10 +193,13 @@ module Cucumber
192
193
 
193
194
  result_message = result.to_message
194
195
  if result.failed? || result.pending?
196
+ message_element = result.failed? ? result.exception : result
197
+
195
198
  result_message = Cucumber::Messages::TestStepResult.new(
196
199
  status: result_message.status,
197
200
  duration: result_message.duration,
198
- message: create_error_message(result)
201
+ message: create_error_message(message_element),
202
+ exception: create_exception_object(result, message_element)
199
203
  )
200
204
  end
201
205
 
@@ -211,12 +215,17 @@ module Cucumber
211
215
  output_envelope(message)
212
216
  end
213
217
 
214
- def create_error_message(result)
215
- message_element = result.failed? ? result.exception : result
218
+ def create_error_message(message_element)
216
219
  message = "#{message_element.message} (#{message_element.class})"
217
220
  ([message] + message_element.backtrace).join("\n")
218
221
  end
219
222
 
223
+ def create_exception_object(result, message_element)
224
+ return unless result.failed?
225
+
226
+ Cucumber::Messages::Exception.from_h({ type: message_element.class, message: message_element.message })
227
+ end
228
+
220
229
  def on_test_case_finished(event)
221
230
  message = Cucumber::Messages::Envelope.new(
222
231
  test_case_finished: Cucumber::Messages::TestCaseFinished.new(
@@ -140,10 +140,14 @@ module Cucumber
140
140
  print_summary
141
141
  end
142
142
 
143
- def attach(src, media_type)
143
+ def attach(src, media_type, filename)
144
144
  return unless media_type == 'text/x.cucumber.log+plain'
145
145
 
146
- @test_step_output.push src
146
+ if filename
147
+ @test_step_output.push("#{filename}: #{src}")
148
+ else
149
+ @test_step_output.push(src)
150
+ end
147
151
  end
148
152
 
149
153
  private
@@ -7,7 +7,7 @@ require 'mini_mime'
7
7
 
8
8
  module Cucumber
9
9
  module Glue
10
- # Defines the basic API methods availlable in all Cucumber step definitions.
10
+ # Defines the basic API methods available in all Cucumber step definitions.
11
11
  #
12
12
  # You can, and probably should, extend this API with your own methods that
13
13
  # make sense in your domain. For more on that, see {Cucumber::Glue::Dsl#World}
@@ -26,7 +26,7 @@ module Cucumber
26
26
  # @example Passing a multiline string
27
27
  # step "the email should contain:", "Dear sir,\nYou've won a prize!\n"
28
28
  # @param [String] name The name of the step
29
- # @param [String, Cucumber::Test::DocString, Cucumber::Ast::Table] multiline_argument
29
+ # @param [String, Cucumber::Test::DocString, Cucumber::Ast::Table] raw_multiline_arg
30
30
  def step(name, raw_multiline_arg = nil)
31
31
  super
32
32
  end
@@ -84,17 +84,19 @@ module Cucumber
84
84
 
85
85
  # Attach a file to the output
86
86
  # @param file [string|io] the file to attach.
87
- # It can be a string containing the file content itself,
88
- # the file path, or an IO ready to be read.
89
- # @param media_type [string] the media type. If file is a valid path,
90
- # media_type can be ommitted, it will then be inferred from the file name.
91
- def attach(file, media_type = nil)
87
+ # It can be a string containing the file content itself, the file path, or an IO ready to be read.
88
+ # @param media_type [string] the media type.
89
+ # If file is a valid path, media_type can be omitted, it will then be inferred from the file name.
90
+ # @param filename [string] the name of the file you wish to specify.
91
+ # This is only needed in situations where you want to rename a PDF download e.t.c. - In most situations
92
+ # you should not need to pass a filename
93
+ def attach(file, media_type = nil, filename = nil)
92
94
  return super unless File.file?(file)
93
95
 
94
96
  content = File.read(file, mode: 'rb')
95
97
  media_type = MiniMime.lookup_by_filename(file)&.content_type if media_type.nil?
96
98
 
97
- super(content, media_type.to_s)
99
+ super(content, media_type.to_s, filename)
98
100
  rescue StandardError
99
101
  super
100
102
  end
@@ -103,12 +105,9 @@ module Cucumber
103
105
  def pending(message = 'TODO')
104
106
  raise Pending, message unless block_given?
105
107
 
106
- begin
107
- yield
108
- rescue Exception # rubocop:disable Lint/RescueException
109
- raise Pending, message
110
- end
111
- raise Pending, "Expected pending '#{message}' to fail. No Error was raised. No longer pending?"
108
+ yield
109
+ rescue Exception
110
+ raise Pending, message
112
111
  end
113
112
 
114
113
  # Skips this step and the remaining steps in the scenario
@@ -126,8 +125,8 @@ module Cucumber
126
125
  inspect
127
126
  end
128
127
 
129
- # Dynamially generate the API module, closuring the dependencies
130
- def self.for(runtime, language) # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
128
+ # Dynamically generate the API module, closuring the dependencies
129
+ def self.for(runtime, language)
131
130
  Module.new do
132
131
  def self.extended(object)
133
132
  # wrap the dynamically generated module so that we can document the methods
@@ -156,8 +155,8 @@ module Cucumber
156
155
  runtime.ask(question, timeout_seconds)
157
156
  end
158
157
 
159
- define_method(:attach) do |file, media_type|
160
- runtime.attach(file, media_type)
158
+ define_method(:attach) do |file, media_type, filename|
159
+ runtime.attach(file, media_type, filename)
161
160
  end
162
161
 
163
162
  # Prints the list of modules that are included in the World
@@ -172,14 +171,12 @@ module Cucumber
172
171
 
173
172
  private
174
173
 
175
- # @private
176
174
  def add_world_modules!(modules)
177
175
  modules.each do |world_module|
178
176
  extend(world_module)
179
177
  end
180
178
  end
181
179
 
182
- # @private
183
180
  def add_namespaced_modules!(modules)
184
181
  @__namespaced_modules = modules
185
182
  modules.each do |namespace, world_modules|
@@ -199,7 +196,6 @@ module Cucumber
199
196
  end
200
197
  end
201
198
 
202
- # @private
203
199
  def stringify_namespaced_modules
204
200
  return '' if @__namespaced_modules.nil?
205
201
 
@@ -208,7 +204,6 @@ module Cucumber
208
204
  end
209
205
  end
210
206
 
211
- # @private
212
207
  AnsiEscapes = Cucumber::Gherkin::Formatter::AnsiEscapes
213
208
  end
214
209
  end
@@ -198,16 +198,19 @@ module Cucumber
198
198
  private
199
199
 
200
200
  def parameter_type_envelope(parameter_type)
201
- # TODO: should me moved to Cucumber::Expression::ParameterType#to_envelope ?
201
+ # TODO: should this be moved to Cucumber::Expression::ParameterType#to_envelope ??
202
202
  # Note: that would mean that cucumber-expression would depend on cucumber-messages
203
-
204
203
  Cucumber::Messages::Envelope.new(
205
204
  parameter_type: Cucumber::Messages::ParameterType.new(
206
205
  id: @configuration.id_generator.new_id,
207
206
  name: parameter_type.name,
208
207
  regular_expressions: parameter_type.regexps.map(&:to_s),
209
- prefer_for_regular_expression_match: parameter_type.prefer_for_regexp_match?,
210
- use_for_snippets: parameter_type.use_for_snippets?
208
+ prefer_for_regular_expression_match: parameter_type.prefer_for_regexp_match,
209
+ use_for_snippets: parameter_type.use_for_snippets,
210
+ source_reference: Cucumber::Messages::SourceReference.new(
211
+ uri: parameter_type.transformer.source_location[0],
212
+ location: Cucumber::Messages::Location.new(line: parameter_type.transformer.source_location[1])
213
+ )
211
214
  )
212
215
  )
213
216
  end
@@ -2,11 +2,7 @@
2
2
 
3
3
  require 'cucumber/platform'
4
4
  require 'cucumber/gherkin/formatter/ansi_escapes'
5
- begin
6
- # Support Rake > 0.8.7
7
- require 'rake/dsl_definition'
8
- rescue LoadError
9
- end
5
+ require 'rake/dsl_definition'
10
6
 
11
7
  module Cucumber
12
8
  module Rake
@@ -7,8 +7,7 @@ module Cucumber
7
7
  class Runtime
8
8
  # This is what a programming language will consider to be a runtime.
9
9
  #
10
- # It's a thin class that directs the handul of methods needed by the
11
- # programming languages to the right place.
10
+ # It's a thin class that directs the handful of methods needed by the programming languages to the right place
12
11
  class ForProgrammingLanguages
13
12
  extend Forwardable
14
13
 
@@ -5,14 +5,14 @@ require 'cucumber/ci_environment'
5
5
 
6
6
  module Cucumber
7
7
  class Runtime
8
- # Builder to instanciate a Cucumber::Messages::Meta message filled-in with
8
+ # Builder to instantiate a Cucumber::Messages::Meta message filled-in with
9
9
  # the runtime meta-data:
10
10
  # - protocol version: the version of the Cucumber::Messages protocol
11
11
  # - implementation: the name and version of the implementation (e.g. cucumber-ruby 8.0.0)
12
12
  # - runtime: the name and version of the runtime (e.g. ruby 3.0.1)
13
13
  # - os: the name and version of the operating system (e.g. linux 3.13.0-45-generic)
14
14
  # - cpu: the name of the CPU (e.g. x86_64)
15
- # - ci: informtion about the CI environment if any, including:
15
+ # - ci: information about the CI environment if any, including:
16
16
  # - name: the name of the CI environment (e.g. Jenkins)
17
17
  # - url: the URL of the CI environment (e.g. https://ci.example.com)
18
18
  # - build_number: the build number of the CI environment (e.g. 123)
@@ -41,8 +41,8 @@ module Cucumber
41
41
  # be a path to a file, or if it's an image it may also be a Base64 encoded image.
42
42
  # The embedded data may or may not be ignored, depending on what kind of formatter(s) are active.
43
43
  #
44
- def attach(src, media_type)
45
- @visitor.attach(src, media_type)
44
+ def attach(src, media_type, filename)
45
+ @visitor.attach(src, media_type, filename)
46
46
  end
47
47
 
48
48
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.2
4
+ version: 9.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-09-11 00:00:00.000000000 Z
13
+ date: 2023-11-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: builder
@@ -58,40 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '11.1'
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 11.1.0
61
+ version: '12.0'
65
62
  type: :runtime
66
63
  prerelease: false
67
64
  version_requirements: !ruby/object:Gem::Requirement
68
65
  requirements:
69
66
  - - "~>"
70
67
  - !ruby/object:Gem::Version
71
- version: '11.1'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 11.1.0
68
+ version: '12.0'
75
69
  - !ruby/object:Gem::Dependency
76
70
  name: cucumber-cucumber-expressions
77
71
  requirement: !ruby/object:Gem::Requirement
78
72
  requirements:
79
73
  - - "~>"
80
74
  - !ruby/object:Gem::Version
81
- version: '16.1'
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: 16.1.2
75
+ version: '17.0'
85
76
  type: :runtime
86
77
  prerelease: false
87
78
  version_requirements: !ruby/object:Gem::Requirement
88
79
  requirements:
89
80
  - - "~>"
90
81
  - !ruby/object:Gem::Version
91
- version: '16.1'
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: 16.1.2
82
+ version: '17.0'
95
83
  - !ruby/object:Gem::Dependency
96
84
  name: cucumber-gherkin
97
85
  requirement: !ruby/object:Gem::Requirement
@@ -101,7 +89,7 @@ dependencies:
101
89
  version: '24'
102
90
  - - "<"
103
91
  - !ruby/object:Gem::Version
104
- version: 26.2.1
92
+ version: '27'
105
93
  type: :runtime
106
94
  prerelease: false
107
95
  version_requirements: !ruby/object:Gem::Requirement
@@ -111,7 +99,7 @@ dependencies:
111
99
  version: '24'
112
100
  - - "<"
113
101
  - !ruby/object:Gem::Version
114
- version: 26.2.1
102
+ version: '27'
115
103
  - !ruby/object:Gem::Dependency
116
104
  name: cucumber-html-formatter
117
105
  requirement: !ruby/object:Gem::Requirement
@@ -238,14 +226,14 @@ dependencies:
238
226
  requirements:
239
227
  - - "~>"
240
228
  - !ruby/object:Gem::Version
241
- version: '10.0'
229
+ version: '14.0'
242
230
  type: :development
243
231
  prerelease: false
244
232
  version_requirements: !ruby/object:Gem::Requirement
245
233
  requirements:
246
234
  - - "~>"
247
235
  - !ruby/object:Gem::Version
248
- version: '10.0'
236
+ version: '14.0'
249
237
  - !ruby/object:Gem::Dependency
250
238
  name: nokogiri
251
239
  requirement: !ruby/object:Gem::Requirement
@@ -266,26 +254,6 @@ dependencies:
266
254
  - - ">="
267
255
  - !ruby/object:Gem::Version
268
256
  version: 1.13.6
269
- - !ruby/object:Gem::Dependency
270
- name: pry
271
- requirement: !ruby/object:Gem::Requirement
272
- requirements:
273
- - - "~>"
274
- - !ruby/object:Gem::Version
275
- version: '0.14'
276
- - - ">="
277
- - !ruby/object:Gem::Version
278
- version: 0.14.1
279
- type: :development
280
- prerelease: false
281
- version_requirements: !ruby/object:Gem::Requirement
282
- requirements:
283
- - - "~>"
284
- - !ruby/object:Gem::Version
285
- version: '0.14'
286
- - - ">="
287
- - !ruby/object:Gem::Version
288
- version: 0.14.1
289
257
  - !ruby/object:Gem::Dependency
290
258
  name: rake
291
259
  requirement: !ruby/object:Gem::Requirement
@@ -332,48 +300,33 @@ dependencies:
332
300
  requirements:
333
301
  - - "~>"
334
302
  - !ruby/object:Gem::Version
335
- version: '1.56'
336
- - - ">="
337
- - !ruby/object:Gem::Version
338
- version: 1.56.2
303
+ version: 1.56.4
339
304
  type: :development
340
305
  prerelease: false
341
306
  version_requirements: !ruby/object:Gem::Requirement
342
307
  requirements:
343
308
  - - "~>"
344
309
  - !ruby/object:Gem::Version
345
- version: '1.56'
346
- - - ">="
347
- - !ruby/object:Gem::Version
348
- version: 1.56.2
310
+ version: 1.56.4
349
311
  - !ruby/object:Gem::Dependency
350
312
  name: rubocop-capybara
351
313
  requirement: !ruby/object:Gem::Requirement
352
314
  requirements:
353
315
  - - "~>"
354
316
  - !ruby/object:Gem::Version
355
- version: '2.18'
356
- - - ">="
357
- - !ruby/object:Gem::Version
358
- version: 2.18.0
317
+ version: 2.19.0
359
318
  type: :development
360
319
  prerelease: false
361
320
  version_requirements: !ruby/object:Gem::Requirement
362
321
  requirements:
363
322
  - - "~>"
364
323
  - !ruby/object:Gem::Version
365
- version: '2.18'
366
- - - ">="
367
- - !ruby/object:Gem::Version
368
- version: 2.18.0
324
+ version: 2.19.0
369
325
  - !ruby/object:Gem::Dependency
370
326
  name: rubocop-packaging
371
327
  requirement: !ruby/object:Gem::Requirement
372
328
  requirements:
373
329
  - - "~>"
374
- - !ruby/object:Gem::Version
375
- version: '0.5'
376
- - - ">="
377
330
  - !ruby/object:Gem::Version
378
331
  version: 0.5.2
379
332
  type: :development
@@ -381,9 +334,6 @@ dependencies:
381
334
  version_requirements: !ruby/object:Gem::Requirement
382
335
  requirements:
383
336
  - - "~>"
384
- - !ruby/object:Gem::Version
385
- version: '0.5'
386
- - - ">="
387
337
  - !ruby/object:Gem::Version
388
338
  version: 0.5.2
389
339
  - !ruby/object:Gem::Dependency
@@ -391,9 +341,6 @@ dependencies:
391
341
  requirement: !ruby/object:Gem::Requirement
392
342
  requirements:
393
343
  - - "~>"
394
- - !ruby/object:Gem::Version
395
- version: '0.6'
396
- - - ">="
397
344
  - !ruby/object:Gem::Version
398
345
  version: 0.6.0
399
346
  type: :development
@@ -401,9 +348,6 @@ dependencies:
401
348
  version_requirements: !ruby/object:Gem::Requirement
402
349
  requirements:
403
350
  - - "~>"
404
- - !ruby/object:Gem::Version
405
- version: '0.6'
406
- - - ">="
407
351
  - !ruby/object:Gem::Version
408
352
  version: 0.6.0
409
353
  - !ruby/object:Gem::Dependency
@@ -412,28 +356,19 @@ dependencies:
412
356
  requirements:
413
357
  - - "~>"
414
358
  - !ruby/object:Gem::Version
415
- version: '2.23'
416
- - - ">="
417
- - !ruby/object:Gem::Version
418
- version: 2.23.2
359
+ version: 2.24.1
419
360
  type: :development
420
361
  prerelease: false
421
362
  version_requirements: !ruby/object:Gem::Requirement
422
363
  requirements:
423
364
  - - "~>"
424
365
  - !ruby/object:Gem::Version
425
- version: '2.23'
426
- - - ">="
427
- - !ruby/object:Gem::Version
428
- version: 2.23.2
366
+ version: 2.24.1
429
367
  - !ruby/object:Gem::Dependency
430
368
  name: simplecov
431
369
  requirement: !ruby/object:Gem::Requirement
432
370
  requirements:
433
371
  - - "~>"
434
- - !ruby/object:Gem::Version
435
- version: '0.22'
436
- - - ">="
437
372
  - !ruby/object:Gem::Version
438
373
  version: 0.22.0
439
374
  type: :development
@@ -441,9 +376,6 @@ dependencies:
441
376
  version_requirements: !ruby/object:Gem::Requirement
442
377
  requirements:
443
378
  - - "~>"
444
- - !ruby/object:Gem::Version
445
- version: '0.22'
446
- - - ">="
447
379
  - !ruby/object:Gem::Version
448
380
  version: 0.22.0
449
381
  - !ruby/object:Gem::Dependency
@@ -735,5 +667,5 @@ requirements: []
735
667
  rubygems_version: 3.3.5
736
668
  signing_key:
737
669
  specification_version: 4
738
- summary: cucumber-9.0.2
670
+ summary: cucumber-9.1.0
739
671
  test_files: []