cucumber-core 13.0.2 → 14.0.0

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