cucumber 4.0.0.rc.3 → 4.0.1

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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +73 -2
  3. data/README.md +2 -2
  4. data/lib/cucumber/cli/options.rb +10 -4
  5. data/lib/cucumber/configuration.rb +5 -0
  6. data/lib/cucumber/deprecate.rb +29 -5
  7. data/lib/cucumber/events.rb +13 -7
  8. data/lib/cucumber/events/envelope.rb +9 -0
  9. data/lib/cucumber/events/hook_test_step_created.rb +13 -0
  10. data/lib/cucumber/events/test_case_created.rb +13 -0
  11. data/lib/cucumber/events/test_case_ready.rb +12 -0
  12. data/lib/cucumber/events/test_step_created.rb +13 -0
  13. data/lib/cucumber/events/undefined_parameter_type.rb +10 -0
  14. data/lib/cucumber/filters.rb +1 -0
  15. data/lib/cucumber/filters/broadcast_test_case_ready_event.rb +12 -0
  16. data/lib/cucumber/formatter/console.rb +33 -10
  17. data/lib/cucumber/formatter/duration_extractor.rb +1 -1
  18. data/lib/cucumber/formatter/errors.rb +6 -0
  19. data/lib/cucumber/formatter/html.rb +24 -0
  20. data/lib/cucumber/formatter/http_io.rb +146 -0
  21. data/lib/cucumber/formatter/interceptor.rb +3 -8
  22. data/lib/cucumber/formatter/io.rb +14 -8
  23. data/lib/cucumber/formatter/json.rb +17 -8
  24. data/lib/cucumber/formatter/junit.rb +1 -1
  25. data/lib/cucumber/formatter/message.rb +22 -0
  26. data/lib/cucumber/formatter/message_builder.rb +255 -0
  27. data/lib/cucumber/formatter/pretty.rb +10 -4
  28. data/lib/cucumber/formatter/progress.rb +2 -0
  29. data/lib/cucumber/formatter/query/hook_by_test_step.rb +31 -0
  30. data/lib/cucumber/formatter/query/pickle_by_test.rb +26 -0
  31. data/lib/cucumber/formatter/query/pickle_step_by_test_step.rb +26 -0
  32. data/lib/cucumber/formatter/query/step_definitions_by_test_step.rb +40 -0
  33. data/lib/cucumber/formatter/query/test_case_started_by_test_case.rb +40 -0
  34. data/lib/cucumber/gherkin/data_table_parser.rb +1 -1
  35. data/lib/cucumber/gherkin/steps_parser.rb +1 -1
  36. data/lib/cucumber/glue/hook.rb +18 -2
  37. data/lib/cucumber/glue/proto_world.rb +29 -18
  38. data/lib/cucumber/glue/registry_and_more.rb +27 -2
  39. data/lib/cucumber/glue/snippet.rb +1 -1
  40. data/lib/cucumber/glue/step_definition.rb +28 -4
  41. data/lib/cucumber/hooks.rb +8 -8
  42. data/lib/cucumber/multiline_argument.rb +1 -1
  43. data/lib/cucumber/multiline_argument/data_table.rb +17 -13
  44. data/lib/cucumber/platform.rb +1 -1
  45. data/lib/cucumber/rake/task.rb +1 -1
  46. data/lib/cucumber/runtime.rb +29 -3
  47. data/lib/cucumber/runtime/after_hooks.rb +6 -2
  48. data/lib/cucumber/runtime/before_hooks.rb +6 -2
  49. data/lib/cucumber/runtime/for_programming_languages.rb +1 -0
  50. data/lib/cucumber/runtime/step_hooks.rb +3 -2
  51. data/lib/cucumber/runtime/support_code.rb +3 -3
  52. data/lib/cucumber/runtime/user_interface.rb +2 -10
  53. data/lib/cucumber/version +1 -1
  54. metadata +116 -93
@@ -9,17 +9,17 @@ module Cucumber
9
9
  # source for test steps
10
10
  module Hooks
11
11
  class << self
12
- def before_hook(location, &block)
13
- build_hook_step(location, block, BeforeHook, Core::Test::UnskippableAction)
12
+ def before_hook(id, location, &block)
13
+ build_hook_step(id, location, block, BeforeHook, Core::Test::UnskippableAction)
14
14
  end
15
15
 
16
- def after_hook(location, &block)
17
- build_hook_step(location, block, AfterHook, Core::Test::UnskippableAction)
16
+ def after_hook(id, location, &block)
17
+ build_hook_step(id, location, block, AfterHook, Core::Test::UnskippableAction)
18
18
  end
19
19
 
20
- def after_step_hook(test_step, location, &block)
20
+ def after_step_hook(id, test_step, location, &block)
21
21
  raise ArgumentError if test_step.hook?
22
- build_hook_step(location, block, AfterStepHook, Core::Test::Action)
22
+ build_hook_step(id, location, block, AfterStepHook, Core::Test::Action)
23
23
  end
24
24
 
25
25
  def around_hook(&block)
@@ -28,10 +28,10 @@ module Cucumber
28
28
 
29
29
  private
30
30
 
31
- def build_hook_step(location, block, hook_type, action_type)
31
+ def build_hook_step(id, location, block, hook_type, action_type)
32
32
  action = action_type.new(location, &block)
33
33
  hook = hook_type.new(action.location)
34
- Core::Test::HookStep.new(hook.text, location, action)
34
+ Core::Test::HookStep.new(id, hook.text, location, action)
35
35
  end
36
36
  end
37
37
 
@@ -15,7 +15,7 @@ module Cucumber
15
15
  location ||= Core::Test::Location.of_caller
16
16
  case argument
17
17
  when String
18
- builder.doc_string(Core::Test::DocString.new(argument, content_type, location))
18
+ builder.doc_string(Core::Test::DocString.new(argument, content_type))
19
19
  when Array
20
20
  location = location.on_line(argument.first.line..argument.last.line)
21
21
  builder.data_table(argument.map(&:cells), location)
@@ -36,12 +36,12 @@ module Cucumber
36
36
  end
37
37
 
38
38
  class << self
39
- def from(data, location = Core::Test::Location.of_caller)
39
+ def from(data)
40
40
  case data
41
41
  when Array
42
- from_array(data, location)
42
+ from_array(data)
43
43
  when String
44
- parse(data, location)
44
+ parse(data)
45
45
  else
46
46
  raise ArgumentError, 'expected data to be a String or an Array.'
47
47
  end
@@ -49,15 +49,15 @@ module Cucumber
49
49
 
50
50
  private
51
51
 
52
- def parse(text, location = Core::Test::Location.of_caller)
52
+ def parse(text)
53
53
  builder = Builder.new
54
54
  parser = Cucumber::Gherkin::DataTableParser.new(builder)
55
55
  parser.parse(text)
56
- from_array(builder.rows, location)
56
+ from_array(builder.rows)
57
57
  end
58
58
 
59
- def from_array(data, location = Core::Test::Location.of_caller)
60
- new Core::Test::DataTable.new(data, location)
59
+ def from_array(data)
60
+ new Core::Test::DataTable.new(data)
61
61
  end
62
62
  end
63
63
 
@@ -111,7 +111,7 @@ module Cucumber
111
111
  # registered with #map_column! and #map_headers!.
112
112
  #
113
113
  def dup
114
- self.class.new(Core::Test::DataTable.new(raw, location), @conversion_procs.dup, @header_mappings.dup, @header_conversion_proc)
114
+ self.class.new(Core::Test::DataTable.new(raw), @conversion_procs.dup, @header_mappings.dup, @header_conversion_proc)
115
115
  end
116
116
 
117
117
  # Returns a new, transposed table. Example:
@@ -126,7 +126,7 @@ module Cucumber
126
126
  # | 4 | 2 |
127
127
  #
128
128
  def transpose
129
- self.class.new(Core::Test::DataTable.new(raw.transpose, location), @conversion_procs.dup, @header_mappings.dup, @header_conversion_proc)
129
+ self.class.new(Core::Test::DataTable.new(raw.transpose), @conversion_procs.dup, @header_mappings.dup, @header_conversion_proc)
130
130
  end
131
131
 
132
132
  # Converts this table into an Array of Hash where the keys of each
@@ -269,7 +269,7 @@ module Cucumber
269
269
 
270
270
  # Returns a new Table where the headers are redefined. See #map_headers!
271
271
  def map_headers(mappings = {}, &block)
272
- self.class.new(Core::Test::DataTable.new(raw, location), @conversion_procs.dup, mappings, block)
272
+ self.class.new(Core::Test::DataTable.new(raw), @conversion_procs.dup, mappings, block)
273
273
  end
274
274
 
275
275
  # Change how #hashes converts column values. The +column_name+ argument identifies the column
@@ -294,7 +294,7 @@ module Cucumber
294
294
  def map_column(column_name, strict = true, &conversion_proc)
295
295
  conversion_procs = @conversion_procs.dup
296
296
  conversion_procs[column_name.to_s] = { strict: strict, proc: conversion_proc }
297
- self.class.new(Core::Test::DataTable.new(raw, location), conversion_procs, @header_mappings.dup, @header_conversion_proc)
297
+ self.class.new(Core::Test::DataTable.new(raw), conversion_procs, @header_mappings.dup, @header_conversion_proc)
298
298
  end
299
299
 
300
300
  # Compares +other_table+ to self. If +other_table+ contains columns
@@ -352,7 +352,11 @@ module Cucumber
352
352
  end
353
353
  end
354
354
 
355
- def to_hash(cells) #:nodoc:
355
+ def to_hash
356
+ cells_rows.map { |cells| cells.map(&:value) }
357
+ end
358
+
359
+ def cells_to_hash(cells) #:nodoc:
356
360
  hash = Hash.new do |hash_inner, key|
357
361
  hash_inner[key.to_s] if key.is_a?(Symbol)
358
362
  end
@@ -551,7 +555,7 @@ module Cucumber
551
555
  end
552
556
 
553
557
  def to_hash #:nodoc:
554
- @to_hash ||= @table.to_hash(self)
558
+ @to_hash ||= @table.cells_to_hash(self)
555
559
  end
556
560
 
557
561
  def value(n) #:nodoc:
@@ -7,7 +7,7 @@ require 'cucumber/core/platform'
7
7
 
8
8
  module Cucumber
9
9
  unless defined?(Cucumber::VERSION)
10
- VERSION = File.read(File.expand_path('version', __dir__))
10
+ VERSION = File.read(File.expand_path('version', __dir__)).strip
11
11
  BINARY = File.expand_path(File.dirname(__FILE__) + '/../../bin/cucumber')
12
12
  LIBDIR = File.expand_path(File.dirname(__FILE__) + '/../../lib')
13
13
  RAILS = defined?(Rails)
@@ -156,7 +156,7 @@ module Cucumber
156
156
 
157
157
  def runner(_task_args = nil) #:nodoc:
158
158
  cucumber_opts = [(ENV['CUCUMBER_OPTS'] ? ENV['CUCUMBER_OPTS'].split(/\s+/) : nil) || cucumber_opts_with_profile]
159
- return ForkedCucumberRunner.new(libs, binary, cucumber_opts, bundler, feature_files) if @fork
159
+ return ForkedCucumberRunner.new(libs, binary, cucumber_opts, bundler, feature_files) if fork
160
160
  InProcessCucumberRunner.new(libs, cucumber_opts, feature_files)
161
161
  end
162
162
 
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'fileutils'
4
- require 'multi_json'
5
4
  require 'cucumber/configuration'
6
5
  require 'cucumber/load_path'
7
6
  require 'cucumber/formatter/duration'
@@ -10,6 +9,8 @@ require 'cucumber/filters'
10
9
  require 'cucumber/formatter/fanout'
11
10
  require 'cucumber/gherkin/i18n'
12
11
  require 'cucumber/step_match_search'
12
+ require 'cucumber/messages'
13
+ require 'sys/uname'
13
14
 
14
15
  module Cucumber
15
16
  module FixRuby21Bug9285
@@ -63,6 +64,10 @@ module Cucumber
63
64
 
64
65
  require 'cucumber/wire/plugin'
65
66
  def run!
67
+ @configuration.notify :envelope, Cucumber::Messages::Envelope.new(
68
+ meta: make_meta
69
+ )
70
+
66
71
  load_step_definitions
67
72
  install_wire_plugin
68
73
  fire_after_configuration_hook
@@ -97,8 +102,28 @@ module Cucumber
97
102
  # Returns Ast::DocString for +string_without_triple_quotes+.
98
103
  #
99
104
  def doc_string(string_without_triple_quotes, content_type = '', _line_offset = 0)
100
- location = Core::Test::Location.of_caller
101
- Core::Test::DocString.new(string_without_triple_quotes, content_type, location)
105
+ Core::Test::DocString.new(string_without_triple_quotes, content_type)
106
+ end
107
+
108
+ def make_meta
109
+ Cucumber::Messages::Meta.new(
110
+ protocol_version: Cucumber::Messages::VERSION,
111
+ implementation: Cucumber::Messages::Meta::Product.new(
112
+ name: 'cucumber-ruby',
113
+ version: Cucumber::VERSION
114
+ ),
115
+ runtime: Cucumber::Messages::Meta::Product.new(
116
+ name: RUBY_ENGINE,
117
+ version: RUBY_VERSION
118
+ ),
119
+ os: Cucumber::Messages::Meta::Product.new(
120
+ name: RbConfig::CONFIG['target_os'],
121
+ version: Sys::Uname.uname.version
122
+ ),
123
+ cpu: Cucumber::Messages::Meta::Product.new(
124
+ name: RbConfig::CONFIG['target_cpu']
125
+ )
126
+ )
102
127
  end
103
128
 
104
129
  private
@@ -228,6 +253,7 @@ module Cucumber
228
253
  filters << Filters::ApplyBeforeHooks.new(@support_code)
229
254
  filters << Filters::ApplyAfterHooks.new(@support_code)
230
255
  filters << Filters::ApplyAroundHooks.new(@support_code)
256
+ filters << Filters::BroadcastTestCaseReadyEvent.new(@configuration)
231
257
  filters << Filters::BroadcastTestRunStartedEvent.new(@configuration)
232
258
  filters << Filters::Quit.new
233
259
  filters << Filters::Retry.new(@configuration)
@@ -3,9 +3,11 @@
3
3
  module Cucumber
4
4
  class Runtime
5
5
  class AfterHooks
6
- def initialize(hooks, scenario)
6
+ def initialize(id_generator, hooks, scenario, event_bus)
7
7
  @hooks = hooks
8
8
  @scenario = scenario
9
+ @id_generator = id_generator
10
+ @event_bus = event_bus
9
11
  end
10
12
 
11
13
  def apply_to(test_case)
@@ -19,7 +21,9 @@ module Cucumber
19
21
  def after_hooks
20
22
  @hooks.map do |hook|
21
23
  action = ->(result) { hook.invoke('After', @scenario.with_result(result)) }
22
- Hooks.after_hook(hook.location, &action)
24
+ hook_step = Hooks.after_hook(@id_generator.new_id, hook.location, &action)
25
+ @event_bus.hook_test_step_created(hook_step, hook)
26
+ hook_step
23
27
  end
24
28
  end
25
29
  end
@@ -5,9 +5,11 @@ require 'cucumber/hooks'
5
5
  module Cucumber
6
6
  class Runtime
7
7
  class BeforeHooks
8
- def initialize(hooks, scenario)
8
+ def initialize(id_generator, hooks, scenario, event_bus)
9
9
  @hooks = hooks
10
10
  @scenario = scenario
11
+ @id_generator = id_generator
12
+ @event_bus = event_bus
11
13
  end
12
14
 
13
15
  def apply_to(test_case)
@@ -21,7 +23,9 @@ module Cucumber
21
23
  def before_hooks
22
24
  @hooks.map do |hook|
23
25
  action_block = ->(result) { hook.invoke('Before', @scenario.with_result(result)) }
24
- Hooks.before_hook(hook.location, &action_block)
26
+ hook_step = Hooks.before_hook(@id_generator.new_id, hook.location, &action_block)
27
+ @event_bus.hook_test_step_created(hook_step, hook)
28
+ hook_step
25
29
  end
26
30
  end
27
31
  end
@@ -21,6 +21,7 @@ module Cucumber
21
21
 
22
22
  def_delegators :@user_interface,
23
23
  :embed,
24
+ :attach,
24
25
  :ask,
25
26
  :puts,
26
27
  :features_paths,
@@ -3,8 +3,9 @@
3
3
  module Cucumber
4
4
  class Runtime
5
5
  class StepHooks
6
- def initialize(hooks)
6
+ def initialize(id_generator, hooks)
7
7
  @hooks = hooks
8
+ @id_generator = id_generator
8
9
  end
9
10
 
10
11
  def apply(test_steps)
@@ -18,7 +19,7 @@ module Cucumber
18
19
  def after_step_hooks(test_step)
19
20
  @hooks.map do |hook|
20
21
  action = ->(*args) { hook.invoke('AfterStep', [args, test_step]) }
21
- Hooks.after_step_hook(test_step, hook.location, &action)
22
+ Hooks.after_step_hook(@id_generator.new_id, test_step, hook.location, &action)
22
23
  end
23
24
  end
24
25
  end
@@ -104,21 +104,21 @@ module Cucumber
104
104
  def find_after_step_hooks(test_case)
105
105
  scenario = RunningTestCase.new(test_case)
106
106
  hooks = registry.hooks_for(:after_step, scenario)
107
- StepHooks.new hooks
107
+ StepHooks.new(@configuration.id_generator, hooks)
108
108
  end
109
109
 
110
110
  def apply_before_hooks(test_case)
111
111
  return test_case if test_case.test_steps.empty?
112
112
  scenario = RunningTestCase.new(test_case)
113
113
  hooks = registry.hooks_for(:before, scenario)
114
- BeforeHooks.new(hooks, scenario).apply_to(test_case)
114
+ BeforeHooks.new(@configuration.id_generator, hooks, scenario, @configuration.event_bus).apply_to(test_case)
115
115
  end
116
116
 
117
117
  def apply_after_hooks(test_case)
118
118
  return test_case if test_case.test_steps.empty?
119
119
  scenario = RunningTestCase.new(test_case)
120
120
  hooks = registry.hooks_for(:after, scenario)
121
- AfterHooks.new(hooks, scenario).apply_to(test_case)
121
+ AfterHooks.new(@configuration.id_generator, hooks, scenario, @configuration.event_bus).apply_to(test_case)
122
122
  end
123
123
 
124
124
  def find_around_hooks(test_case)
@@ -7,14 +7,6 @@ module Cucumber
7
7
  module UserInterface
8
8
  attr_writer :visitor
9
9
 
10
- # Output +messages+ alongside the formatted output.
11
- # This is an alternative to using Kernel#puts - it will display
12
- # nicer, and in all outputs (in case you use several formatters)
13
- #
14
- def puts(*messages)
15
- @visitor.puts(*messages)
16
- end
17
-
18
10
  # Suspends execution and prompts +question+ to the console (STDOUT).
19
11
  # An operator (manual tester) can then enter a line of text and hit
20
12
  # <ENTER>. The entered text is returned, and both +question+ and
@@ -48,8 +40,8 @@ module Cucumber
48
40
  # be a path to a file, or if it's an image it may also be a Base64 encoded image.
49
41
  # The embedded data may or may not be ignored, depending on what kind of formatter(s) are active.
50
42
  #
51
- def embed(src, mime_type, label)
52
- @visitor.embed(src, mime_type, label)
43
+ def attach(src, media_type)
44
+ @visitor.attach(src, media_type)
53
45
  end
54
46
 
55
47
  private
@@ -1 +1 @@
1
- 4.0.0.rc.3
1
+ 4.0.1
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.rc.3
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
8
8
  - Matt Wynne
9
9
  - Steve Tooke
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-10-31 00:00:00.000000000 Z
13
+ date: 2020-06-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: builder
@@ -38,180 +38,186 @@ dependencies:
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: 5.0.0
41
+ version: 7.0.0
42
42
  - - "~>"
43
43
  - !ruby/object:Gem::Version
44
- version: '5.0'
44
+ version: '7.0'
45
45
  type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- version: 5.0.0
51
+ version: 7.0.0
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '5.0'
54
+ version: '7.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: cucumber-expressions
56
+ name: cucumber-cucumber-expressions
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '8.0'
62
59
  - - ">="
63
60
  - !ruby/object:Gem::Version
64
- version: 8.0.2
61
+ version: 10.1.0
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '10.1'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: '8.0'
72
69
  - - ">="
73
70
  - !ruby/object:Gem::Version
74
- version: 8.0.2
71
+ version: 10.1.0
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '10.1'
75
75
  - !ruby/object:Gem::Dependency
76
- name: cucumber-wire
76
+ name: cucumber-gherkin
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: 1.1.0
81
+ version: 13.0.0
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: '1.1'
84
+ version: '13.0'
85
85
  type: :runtime
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - ">="
90
90
  - !ruby/object:Gem::Version
91
- version: 1.1.0
91
+ version: 13.0.0
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: '1.1'
94
+ version: '13.0'
95
95
  - !ruby/object:Gem::Dependency
96
- name: diff-lcs
96
+ name: cucumber-html-formatter
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: '1.3'
102
99
  - - "~>"
103
100
  - !ruby/object:Gem::Version
104
- version: '1.3'
101
+ version: '6.0'
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 6.0.1
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: '1.3'
112
109
  - - "~>"
113
110
  - !ruby/object:Gem::Version
114
- version: '1.3'
111
+ version: '6.0'
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 6.0.1
115
115
  - !ruby/object:Gem::Dependency
116
- name: gherkin
116
+ name: cucumber-messages
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
119
  - - "~>"
120
120
  - !ruby/object:Gem::Version
121
- version: '8.1'
121
+ version: '12.1'
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 8.1.1
124
+ version: 12.1.1
125
125
  type: :runtime
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '8.1'
131
+ version: '12.1'
132
132
  - - ">="
133
133
  - !ruby/object:Gem::Version
134
- version: 8.1.1
134
+ version: 12.1.1
135
135
  - !ruby/object:Gem::Dependency
136
- name: multi_json
136
+ name: cucumber-wire
137
137
  requirement: !ruby/object:Gem::Requirement
138
138
  requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: '1.13'
142
139
  - - ">="
143
140
  - !ruby/object:Gem::Version
144
- version: 1.13.1
141
+ version: 3.0.0
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.0'
145
145
  type: :runtime
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '1.13'
152
149
  - - ">="
153
150
  - !ruby/object:Gem::Version
154
- version: 1.13.1
151
+ version: 3.0.0
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '3.0'
155
155
  - !ruby/object:Gem::Dependency
156
- name: multi_test
156
+ name: diff-lcs
157
157
  requirement: !ruby/object:Gem::Requirement
158
158
  requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '1.3'
159
162
  - - "~>"
160
163
  - !ruby/object:Gem::Version
161
- version: '0.1'
162
- - - ">="
164
+ version: '1.3'
165
+ - - "<"
163
166
  - !ruby/object:Gem::Version
164
- version: 0.1.2
167
+ version: '1.4'
165
168
  type: :runtime
166
169
  prerelease: false
167
170
  version_requirements: !ruby/object:Gem::Requirement
168
171
  requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '1.3'
169
175
  - - "~>"
170
176
  - !ruby/object:Gem::Version
171
- version: '0.1'
172
- - - ">="
177
+ version: '1.3'
178
+ - - "<"
173
179
  - !ruby/object:Gem::Version
174
- version: 0.1.2
180
+ version: '1.4'
175
181
  - !ruby/object:Gem::Dependency
176
- name: aruba
182
+ name: multi_test
177
183
  requirement: !ruby/object:Gem::Requirement
178
184
  requirements:
179
185
  - - "~>"
180
186
  - !ruby/object:Gem::Version
181
- version: '0.14'
187
+ version: '0.1'
182
188
  - - ">="
183
189
  - !ruby/object:Gem::Version
184
- version: 0.14.11
185
- type: :development
190
+ version: 0.1.2
191
+ type: :runtime
186
192
  prerelease: false
187
193
  version_requirements: !ruby/object:Gem::Requirement
188
194
  requirements:
189
195
  - - "~>"
190
196
  - !ruby/object:Gem::Version
191
- version: '0.14'
197
+ version: '0.1'
192
198
  - - ">="
193
199
  - !ruby/object:Gem::Version
194
- version: 0.14.11
200
+ version: 0.1.2
195
201
  - !ruby/object:Gem::Dependency
196
- name: json
202
+ name: sys-uname
197
203
  requirement: !ruby/object:Gem::Requirement
198
204
  requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: 2.2.0
202
205
  - - "~>"
203
206
  - !ruby/object:Gem::Version
204
- version: '2.2'
205
- type: :development
207
+ version: '1.0'
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: 1.0.2
211
+ type: :runtime
206
212
  prerelease: false
207
213
  version_requirements: !ruby/object:Gem::Requirement
208
214
  requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- version: 2.2.0
212
215
  - - "~>"
213
216
  - !ruby/object:Gem::Version
214
- version: '2.2'
217
+ version: '1.0'
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: 1.0.2
215
221
  - !ruby/object:Gem::Dependency
216
222
  name: nokogiri
217
223
  requirement: !ruby/object:Gem::Requirement
@@ -292,26 +298,6 @@ dependencies:
292
298
  - - "~>"
293
299
  - !ruby/object:Gem::Version
294
300
  version: '3.8'
295
- - !ruby/object:Gem::Dependency
296
- name: rubocop
297
- requirement: !ruby/object:Gem::Requirement
298
- requirements:
299
- - - "~>"
300
- - !ruby/object:Gem::Version
301
- version: '0.75'
302
- - - '='
303
- - !ruby/object:Gem::Version
304
- version: 0.75.1
305
- type: :development
306
- prerelease: false
307
- version_requirements: !ruby/object:Gem::Requirement
308
- requirements:
309
- - - "~>"
310
- - !ruby/object:Gem::Version
311
- version: '0.75'
312
- - - '='
313
- - !ruby/object:Gem::Version
314
- version: 0.75.1
315
301
  - !ruby/object:Gem::Dependency
316
302
  name: simplecov
317
303
  requirement: !ruby/object:Gem::Requirement
@@ -372,6 +358,26 @@ dependencies:
372
358
  - - ">="
373
359
  - !ruby/object:Gem::Version
374
360
  version: 1.2.3
361
+ - !ruby/object:Gem::Dependency
362
+ name: webrick
363
+ requirement: !ruby/object:Gem::Requirement
364
+ requirements:
365
+ - - ">="
366
+ - !ruby/object:Gem::Version
367
+ version: 1.6.0
368
+ - - "~>"
369
+ - !ruby/object:Gem::Version
370
+ version: '1.6'
371
+ type: :development
372
+ prerelease: false
373
+ version_requirements: !ruby/object:Gem::Requirement
374
+ requirements:
375
+ - - ">="
376
+ - !ruby/object:Gem::Version
377
+ version: 1.6.0
378
+ - - "~>"
379
+ - !ruby/object:Gem::Version
380
+ version: '1.6'
375
381
  - !ruby/object:Gem::Dependency
376
382
  name: octokit
377
383
  requirement: !ruby/object:Gem::Requirement
@@ -479,16 +485,22 @@ files:
479
485
  - lib/cucumber/encoding.rb
480
486
  - lib/cucumber/errors.rb
481
487
  - lib/cucumber/events.rb
488
+ - lib/cucumber/events/envelope.rb
482
489
  - lib/cucumber/events/gherkin_source_parsed.rb
483
490
  - lib/cucumber/events/gherkin_source_read.rb
491
+ - lib/cucumber/events/hook_test_step_created.rb
484
492
  - lib/cucumber/events/step_activated.rb
485
493
  - lib/cucumber/events/step_definition_registered.rb
494
+ - lib/cucumber/events/test_case_created.rb
486
495
  - lib/cucumber/events/test_case_finished.rb
496
+ - lib/cucumber/events/test_case_ready.rb
487
497
  - lib/cucumber/events/test_case_started.rb
488
498
  - lib/cucumber/events/test_run_finished.rb
489
499
  - lib/cucumber/events/test_run_started.rb
500
+ - lib/cucumber/events/test_step_created.rb
490
501
  - lib/cucumber/events/test_step_finished.rb
491
502
  - lib/cucumber/events/test_step_started.rb
503
+ - lib/cucumber/events/undefined_parameter_type.rb
492
504
  - lib/cucumber/file_specs.rb
493
505
  - lib/cucumber/filters.rb
494
506
  - lib/cucumber/filters/activate_steps.rb
@@ -496,6 +508,7 @@ files:
496
508
  - lib/cucumber/filters/apply_after_step_hooks.rb
497
509
  - lib/cucumber/filters/apply_around_hooks.rb
498
510
  - lib/cucumber/filters/apply_before_hooks.rb
511
+ - lib/cucumber/filters/broadcast_test_case_ready_event.rb
499
512
  - lib/cucumber/filters/broadcast_test_run_started_event.rb
500
513
  - lib/cucumber/filters/gated_receiver.rb
501
514
  - lib/cucumber/filters/prepare_world.rb
@@ -513,15 +526,25 @@ files:
513
526
  - lib/cucumber/formatter/console_issues.rb
514
527
  - lib/cucumber/formatter/duration.rb
515
528
  - lib/cucumber/formatter/duration_extractor.rb
529
+ - lib/cucumber/formatter/errors.rb
516
530
  - lib/cucumber/formatter/fail_fast.rb
517
531
  - lib/cucumber/formatter/fanout.rb
532
+ - lib/cucumber/formatter/html.rb
533
+ - lib/cucumber/formatter/http_io.rb
518
534
  - lib/cucumber/formatter/ignore_missing_messages.rb
519
535
  - lib/cucumber/formatter/interceptor.rb
520
536
  - lib/cucumber/formatter/io.rb
521
537
  - lib/cucumber/formatter/json.rb
522
538
  - lib/cucumber/formatter/junit.rb
539
+ - lib/cucumber/formatter/message.rb
540
+ - lib/cucumber/formatter/message_builder.rb
523
541
  - lib/cucumber/formatter/pretty.rb
524
542
  - lib/cucumber/formatter/progress.rb
543
+ - lib/cucumber/formatter/query/hook_by_test_step.rb
544
+ - lib/cucumber/formatter/query/pickle_by_test.rb
545
+ - lib/cucumber/formatter/query/pickle_step_by_test_step.rb
546
+ - lib/cucumber/formatter/query/step_definitions_by_test_step.rb
547
+ - lib/cucumber/formatter/query/test_case_started_by_test_case.rb
525
548
  - lib/cucumber/formatter/rerun.rb
526
549
  - lib/cucumber/formatter/stepdefs.rb
527
550
  - lib/cucumber/formatter/steps.rb
@@ -577,7 +600,7 @@ metadata:
577
600
  documentation_uri: https://www.rubydoc.info/github/cucumber/cucumber-ruby/
578
601
  mailing_list_uri: https://groups.google.com/forum/#!forum/cukes
579
602
  source_code_uri: https://github.com/cucumber/cucumber-ruby
580
- post_install_message:
603
+ post_install_message:
581
604
  rdoc_options:
582
605
  - "--charset=UTF-8"
583
606
  require_paths:
@@ -589,12 +612,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
589
612
  version: '2.3'
590
613
  required_rubygems_version: !ruby/object:Gem::Requirement
591
614
  requirements:
592
- - - ">"
615
+ - - ">="
593
616
  - !ruby/object:Gem::Version
594
- version: 1.3.1
617
+ version: '0'
595
618
  requirements: []
596
- rubygems_version: 3.0.3
597
- signing_key:
619
+ rubygems_version: 3.0.6
620
+ signing_key:
598
621
  specification_version: 4
599
- summary: cucumber-4.0.0.rc.3
622
+ summary: cucumber-4.0.1
600
623
  test_files: []