cucumber 3.0.2 → 4.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.
Files changed (145) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +216 -17
  3. data/CONTRIBUTING.md +4 -21
  4. data/README.md +8 -10
  5. data/bin/cucumber +1 -1
  6. data/lib/autotest/cucumber.rb +1 -0
  7. data/lib/autotest/cucumber_mixin.rb +35 -39
  8. data/lib/autotest/cucumber_rails.rb +1 -0
  9. data/lib/autotest/cucumber_rails_rspec.rb +1 -0
  10. data/lib/autotest/cucumber_rails_rspec2.rb +1 -0
  11. data/lib/autotest/cucumber_rspec.rb +1 -0
  12. data/lib/autotest/cucumber_rspec2.rb +1 -0
  13. data/lib/autotest/discover.rb +1 -0
  14. data/lib/cucumber.rb +2 -1
  15. data/lib/cucumber/cli/configuration.rb +6 -5
  16. data/lib/cucumber/cli/main.rb +14 -14
  17. data/lib/cucumber/cli/options.rb +113 -116
  18. data/lib/cucumber/cli/profile_loader.rb +50 -29
  19. data/lib/cucumber/cli/rerun_file.rb +1 -0
  20. data/lib/cucumber/configuration.rb +38 -29
  21. data/lib/cucumber/constantize.rb +8 -10
  22. data/lib/cucumber/core_ext/string.rb +1 -0
  23. data/lib/cucumber/deprecate.rb +32 -8
  24. data/lib/cucumber/encoding.rb +2 -1
  25. data/lib/cucumber/errors.rb +6 -7
  26. data/lib/cucumber/events.rb +14 -7
  27. data/lib/cucumber/events/envelope.rb +9 -0
  28. data/lib/cucumber/events/gherkin_source_parsed.rb +11 -0
  29. data/lib/cucumber/events/gherkin_source_read.rb +1 -4
  30. data/lib/cucumber/events/hook_test_step_created.rb +13 -0
  31. data/lib/cucumber/events/step_activated.rb +6 -6
  32. data/lib/cucumber/events/step_definition_registered.rb +4 -8
  33. data/lib/cucumber/events/test_case_created.rb +13 -0
  34. data/lib/cucumber/events/test_case_finished.rb +0 -4
  35. data/lib/cucumber/events/test_case_ready.rb +12 -0
  36. data/lib/cucumber/events/test_case_started.rb +0 -4
  37. data/lib/cucumber/events/test_run_finished.rb +2 -3
  38. data/lib/cucumber/events/test_run_started.rb +2 -4
  39. data/lib/cucumber/events/test_step_created.rb +13 -0
  40. data/lib/cucumber/events/test_step_finished.rb +0 -4
  41. data/lib/cucumber/events/test_step_started.rb +1 -5
  42. data/lib/cucumber/events/undefined_parameter_type.rb +10 -0
  43. data/lib/cucumber/file_specs.rb +7 -6
  44. data/lib/cucumber/filters.rb +2 -0
  45. data/lib/cucumber/filters/activate_steps.rb +6 -4
  46. data/lib/cucumber/filters/apply_after_hooks.rb +1 -0
  47. data/lib/cucumber/filters/apply_after_step_hooks.rb +1 -0
  48. data/lib/cucumber/filters/apply_around_hooks.rb +1 -0
  49. data/lib/cucumber/filters/apply_before_hooks.rb +1 -0
  50. data/lib/cucumber/filters/broadcast_test_case_ready_event.rb +12 -0
  51. data/lib/cucumber/filters/broadcast_test_run_started_event.rb +2 -1
  52. data/lib/cucumber/filters/gated_receiver.rb +1 -2
  53. data/lib/cucumber/filters/prepare_world.rb +6 -13
  54. data/lib/cucumber/filters/quit.rb +3 -6
  55. data/lib/cucumber/filters/randomizer.rb +6 -7
  56. data/lib/cucumber/filters/retry.rb +2 -2
  57. data/lib/cucumber/filters/tag_limits.rb +2 -2
  58. data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -2
  59. data/lib/cucumber/filters/tag_limits/verifier.rb +3 -6
  60. data/lib/cucumber/formatter/ansicolor.rb +33 -37
  61. data/lib/cucumber/formatter/ast_lookup.rb +165 -0
  62. data/lib/cucumber/formatter/backtrace_filter.rb +10 -10
  63. data/lib/cucumber/formatter/console.rb +65 -74
  64. data/lib/cucumber/formatter/console_counts.rb +4 -9
  65. data/lib/cucumber/formatter/console_issues.rb +9 -6
  66. data/lib/cucumber/formatter/duration.rb +2 -1
  67. data/lib/cucumber/formatter/duration_extractor.rb +4 -2
  68. data/lib/cucumber/formatter/errors.rb +6 -0
  69. data/lib/cucumber/formatter/fail_fast.rb +9 -6
  70. data/lib/cucumber/formatter/fanout.rb +3 -3
  71. data/lib/cucumber/formatter/html.rb +11 -602
  72. data/lib/cucumber/formatter/http_io.rb +146 -0
  73. data/lib/cucumber/formatter/ignore_missing_messages.rb +2 -3
  74. data/lib/cucumber/formatter/interceptor.rb +11 -18
  75. data/lib/cucumber/formatter/io.rb +18 -11
  76. data/lib/cucumber/formatter/json.rb +102 -109
  77. data/lib/cucumber/formatter/junit.rb +73 -68
  78. data/lib/cucumber/formatter/message.rb +22 -0
  79. data/lib/cucumber/formatter/message_builder.rb +255 -0
  80. data/lib/cucumber/formatter/pretty.rb +360 -153
  81. data/lib/cucumber/formatter/progress.rb +31 -32
  82. data/lib/cucumber/formatter/query/hook_by_test_step.rb +31 -0
  83. data/lib/cucumber/formatter/query/pickle_by_test.rb +26 -0
  84. data/lib/cucumber/formatter/query/pickle_step_by_test_step.rb +26 -0
  85. data/lib/cucumber/formatter/query/step_definitions_by_test_step.rb +40 -0
  86. data/lib/cucumber/formatter/query/test_case_started_by_test_case.rb +40 -0
  87. data/lib/cucumber/formatter/rerun.rb +23 -4
  88. data/lib/cucumber/formatter/stepdefs.rb +2 -2
  89. data/lib/cucumber/formatter/steps.rb +4 -5
  90. data/lib/cucumber/formatter/summary.rb +17 -9
  91. data/lib/cucumber/formatter/unicode.rb +16 -18
  92. data/lib/cucumber/formatter/usage.rb +30 -26
  93. data/lib/cucumber/gherkin/data_table_parser.rb +18 -6
  94. data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +83 -86
  95. data/lib/cucumber/gherkin/formatter/escaping.rb +13 -12
  96. data/lib/cucumber/gherkin/i18n.rb +1 -0
  97. data/lib/cucumber/gherkin/steps_parser.rb +18 -8
  98. data/lib/cucumber/glue/dsl.rb +2 -1
  99. data/lib/cucumber/glue/hook.rb +35 -11
  100. data/lib/cucumber/glue/invoke_in_world.rb +15 -20
  101. data/lib/cucumber/glue/proto_world.rb +47 -39
  102. data/lib/cucumber/glue/registry_and_more.rb +54 -23
  103. data/lib/cucumber/glue/snippet.rb +24 -27
  104. data/lib/cucumber/glue/step_definition.rb +51 -28
  105. data/lib/cucumber/glue/world_factory.rb +1 -3
  106. data/lib/cucumber/hooks.rb +24 -14
  107. data/lib/cucumber/load_path.rb +1 -0
  108. data/lib/cucumber/multiline_argument.rb +6 -8
  109. data/lib/cucumber/multiline_argument/data_table.rb +106 -73
  110. data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +8 -11
  111. data/lib/cucumber/multiline_argument/doc_string.rb +2 -1
  112. data/lib/cucumber/platform.rb +4 -3
  113. data/lib/cucumber/project_initializer.rb +1 -1
  114. data/lib/cucumber/rake/task.rb +21 -18
  115. data/lib/cucumber/rspec/disable_option_parser.rb +10 -8
  116. data/lib/cucumber/rspec/doubles.rb +1 -0
  117. data/lib/cucumber/running_test_case.rb +4 -54
  118. data/lib/cucumber/runtime.rb +57 -61
  119. data/lib/cucumber/runtime/after_hooks.rb +9 -4
  120. data/lib/cucumber/runtime/before_hooks.rb +9 -4
  121. data/lib/cucumber/runtime/for_programming_languages.rb +12 -9
  122. data/lib/cucumber/runtime/step_hooks.rb +5 -2
  123. data/lib/cucumber/runtime/support_code.rb +16 -22
  124. data/lib/cucumber/runtime/user_interface.rb +8 -19
  125. data/lib/cucumber/step_definition_light.rb +6 -4
  126. data/lib/cucumber/step_definitions.rb +3 -2
  127. data/lib/cucumber/step_match.rb +20 -18
  128. data/lib/cucumber/step_match_search.rb +9 -9
  129. data/lib/cucumber/term/ansicolor.rb +39 -39
  130. data/lib/cucumber/unit.rb +1 -0
  131. data/lib/cucumber/version +1 -1
  132. data/lib/simplecov_setup.rb +1 -0
  133. metadata +214 -127
  134. data/lib/cucumber/formatter/cucumber.css +0 -286
  135. data/lib/cucumber/formatter/cucumber.sass +0 -247
  136. data/lib/cucumber/formatter/hook_query_visitor.rb +0 -41
  137. data/lib/cucumber/formatter/html_builder.rb +0 -120
  138. data/lib/cucumber/formatter/inline-js.js +0 -30
  139. data/lib/cucumber/formatter/jquery-min.js +0 -154
  140. data/lib/cucumber/formatter/json_pretty.rb +0 -10
  141. data/lib/cucumber/formatter/legacy_api/adapter.rb +0 -1028
  142. data/lib/cucumber/formatter/legacy_api/ast.rb +0 -394
  143. data/lib/cucumber/formatter/legacy_api/results.rb +0 -50
  144. data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +0 -32
  145. data/lib/cucumber/step_argument.rb +0 -24
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Cucumber
3
4
  module StepMatchSearch
4
5
  def self.new(search, configuration)
@@ -12,7 +13,8 @@ module Cucumber
12
13
 
13
14
  class AssertUnambiguousMatch
14
15
  def initialize(search, configuration)
15
- @search, @configuration = search, configuration
16
+ @search = search
17
+ @configuration = configuration
16
18
  end
17
19
 
18
20
  def call(step_name)
@@ -34,21 +36,20 @@ module Cucumber
34
36
  private
35
37
 
36
38
  def best_matches(_step_name, step_matches) #:nodoc:
37
- no_groups = step_matches.select {|step_match| step_match.args.empty?}
38
- max_arg_length = step_matches.map {|step_match| step_match.args.length }.max
39
- top_groups = step_matches.select {|step_match| step_match.args.length == max_arg_length }
39
+ no_groups = step_matches.select { |step_match| step_match.args.empty? }
40
+ max_arg_length = step_matches.map { |step_match| step_match.args.length }.max
41
+ top_groups = step_matches.select { |step_match| step_match.args.length == max_arg_length }
40
42
 
41
43
  if no_groups.any?
42
44
  longest_regexp_length = no_groups.map(&:text_length).max
43
- no_groups.select {|step_match| step_match.text_length == longest_regexp_length }
45
+ no_groups.select { |step_match| step_match.text_length == longest_regexp_length }
44
46
  elsif top_groups.any?
45
- shortest_capture_length = top_groups.map {|step_match| step_match.args.inject(0) {|sum, c| sum + c.to_s.length } }.min
46
- top_groups.select {|step_match| step_match.args.inject(0) {|sum, c| sum + c.to_s.length } == shortest_capture_length }
47
+ shortest_capture_length = top_groups.map { |step_match| step_match.args.inject(0) { |sum, c| sum + c.to_s.length } }.min
48
+ top_groups.select { |step_match| step_match.args.inject(0) { |sum, c| sum + c.to_s.length } == shortest_capture_length }
47
49
  else
48
50
  top_groups
49
51
  end
50
52
  end
51
-
52
53
  end
53
54
 
54
55
  require 'delegate'
@@ -62,6 +63,5 @@ module Cucumber
62
63
  @match_cache[step_name] = super(step_name)
63
64
  end
64
65
  end
65
-
66
66
  end
67
67
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Cucumber
3
4
  module Term
4
5
  # The ANSIColor module can be used for namespacing and mixed into your own
@@ -6,35 +7,35 @@ module Cucumber
6
7
  module ANSIColor
7
8
  # :stopdoc:
8
9
  ATTRIBUTES = [
9
- [ :clear , 0 ],
10
- [ :reset , 0 ], # synonym for :clear
11
- [ :bold , 1 ],
12
- [ :dark , 2 ],
13
- [ :italic , 3 ], # not widely implemented
14
- [ :underline , 4 ],
15
- [ :underscore , 4 ], # synonym for :underline
16
- [ :blink , 5 ],
17
- [ :rapid_blink , 6 ], # not widely implemented
18
- [ :negative , 7 ], # no reverse because of String#reverse
19
- [ :concealed , 8 ],
20
- [ :strikethrough, 9 ], # not widely implemented
21
- [ :black , 30 ],
22
- [ :red , 31 ],
23
- [ :green , 32 ],
24
- [ :yellow , 33 ],
25
- [ :blue , 34 ],
26
- [ :magenta , 35 ],
27
- [ :cyan , 36 ],
28
- [ :white , 37 ],
29
- [ :on_black , 40 ],
30
- [ :on_red , 41 ],
31
- [ :on_green , 42 ],
32
- [ :on_yellow , 43 ],
33
- [ :on_blue , 44 ],
34
- [ :on_magenta , 45 ],
35
- [ :on_cyan , 46 ],
36
- [ :on_white , 47 ]
37
- ]
10
+ [:clear, 0],
11
+ [:reset, 0], # synonym for :clear
12
+ [:bold, 1],
13
+ [:dark, 2],
14
+ [:italic, 3], # not widely implemented
15
+ [:underline, 4],
16
+ [:underscore, 4], # synonym for :underline
17
+ [:blink, 5],
18
+ [:rapid_blink, 6], # not widely implemented
19
+ [:negative, 7], # no reverse because of String#reverse
20
+ [:concealed, 8],
21
+ [:strikethrough, 9], # not widely implemented
22
+ [:black, 30],
23
+ [:red, 31],
24
+ [:green, 32],
25
+ [:yellow, 33],
26
+ [:blue, 34],
27
+ [:magenta, 35],
28
+ [:cyan, 36],
29
+ [:white, 37],
30
+ [:on_black, 40],
31
+ [:on_red, 41],
32
+ [:on_green, 42],
33
+ [:on_yellow, 43],
34
+ [:on_blue, 44],
35
+ [:on_magenta, 45],
36
+ [:on_cyan, 46],
37
+ [:on_white, 47]
38
+ ].freeze
38
39
 
39
40
  ATTRIBUTE_NAMES = ATTRIBUTES.transpose.first
40
41
  # :startdoc:
@@ -53,10 +54,11 @@ module Cucumber
53
54
  end
54
55
  self.coloring = true
55
56
 
57
+ # rubocop:disable Security/Eval
56
58
  ATTRIBUTES.each do |c, v|
57
- eval %Q{
59
+ eval <<-END_EVAL, binding, __FILE__, __LINE__ + 1
58
60
  def #{c}(string = nil)
59
- result = ''
61
+ result = String.new
60
62
  result << "\e[#{v}m" if Cucumber::Term::ANSIColor.coloring?
61
63
  if block_given?
62
64
  result << yield
@@ -70,24 +72,23 @@ module Cucumber
70
72
  result << "\e[0m" if Cucumber::Term::ANSIColor.coloring?
71
73
  result
72
74
  end
73
- }
75
+ END_EVAL
74
76
  end
77
+ # rubocop:enable Security/Eval
75
78
 
76
79
  # Regular expression that is used to scan for ANSI-sequences while
77
80
  # uncoloring strings.
78
81
  COLORED_REGEXP = /\e\[(?:[34][0-7]|[0-9])?m/
79
82
 
80
-
81
83
  def self.included(klass)
82
- if klass == String
83
- ATTRIBUTES.delete(:clear)
84
- ATTRIBUTE_NAMES.delete(:clear)
85
- end
84
+ return unless klass == String
85
+ ATTRIBUTES.delete(:clear)
86
+ ATTRIBUTE_NAMES.delete(:clear)
86
87
  end
87
88
 
88
89
  # Returns an uncolored version of the string, that is all
89
90
  # ANSI-sequences are stripped from the string.
90
- def uncolored(string = nil) # :yields:
91
+ def uncolored(string = nil)
91
92
  if block_given?
92
93
  yield.gsub(COLORED_REGEXP, '')
93
94
  elsif string
@@ -105,7 +106,6 @@ module Cucumber
105
106
  def attributes
106
107
  ATTRIBUTE_NAMES
107
108
  end
108
- extend self
109
109
  end
110
110
  end
111
111
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Cucumber
3
4
  class Unit
4
5
  def initialize(step_collection)
@@ -1 +1 @@
1
- 3.0.2
1
+ 4.0.0
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  if ENV['SIMPLECOV']
3
4
  begin
4
5
  # Suppress warnings in order not to pollute stdout which tests expectations rely on
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: 3.0.2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
@@ -10,364 +10,442 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-11-11 00:00:00.000000000 Z
13
+ date: 2020-06-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: cucumber-core
16
+ name: builder
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 3.0.0
21
+ version: '3.2'
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 3.2.3
22
25
  type: :runtime
23
26
  prerelease: false
24
27
  version_requirements: !ruby/object:Gem::Requirement
25
28
  requirements:
26
29
  - - "~>"
27
30
  - !ruby/object:Gem::Version
28
- version: 3.0.0
31
+ version: '3.2'
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 3.2.3
29
35
  - !ruby/object:Gem::Dependency
30
- name: builder
36
+ name: cucumber-core
31
37
  requirement: !ruby/object:Gem::Requirement
32
38
  requirements:
33
39
  - - ">="
34
40
  - !ruby/object:Gem::Version
35
- version: 2.1.2
41
+ version: 7.0.0
42
+ - - "~>"
43
+ - !ruby/object:Gem::Version
44
+ version: '7.0'
36
45
  type: :runtime
37
46
  prerelease: false
38
47
  version_requirements: !ruby/object:Gem::Requirement
39
48
  requirements:
40
49
  - - ">="
41
50
  - !ruby/object:Gem::Version
42
- version: 2.1.2
51
+ version: 7.0.0
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '7.0'
43
55
  - !ruby/object:Gem::Dependency
44
- name: diff-lcs
56
+ name: cucumber-cucumber-expressions
45
57
  requirement: !ruby/object:Gem::Requirement
46
58
  requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 10.1.0
47
62
  - - "~>"
48
63
  - !ruby/object:Gem::Version
49
- version: '1.3'
64
+ version: '10.1'
50
65
  type: :runtime
51
66
  prerelease: false
52
67
  version_requirements: !ruby/object:Gem::Requirement
53
68
  requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 10.1.0
54
72
  - - "~>"
55
73
  - !ruby/object:Gem::Version
56
- version: '1.3'
74
+ version: '10.1'
57
75
  - !ruby/object:Gem::Dependency
58
- name: gherkin
76
+ name: cucumber-gherkin
59
77
  requirement: !ruby/object:Gem::Requirement
60
78
  requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 13.0.0
61
82
  - - "~>"
62
83
  - !ruby/object:Gem::Version
63
- version: '4.0'
84
+ version: '13.0'
64
85
  type: :runtime
65
86
  prerelease: false
66
87
  version_requirements: !ruby/object:Gem::Requirement
67
88
  requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: 13.0.0
68
92
  - - "~>"
69
93
  - !ruby/object:Gem::Version
70
- version: '4.0'
94
+ version: '13.0'
71
95
  - !ruby/object:Gem::Dependency
72
- name: multi_json
96
+ name: cucumber-html-formatter
73
97
  requirement: !ruby/object:Gem::Requirement
74
98
  requirements:
75
- - - ">="
99
+ - - "~>"
76
100
  - !ruby/object:Gem::Version
77
- version: 1.7.5
78
- - - "<"
101
+ version: '6.0'
102
+ - - ">="
79
103
  - !ruby/object:Gem::Version
80
- version: '2.0'
104
+ version: 6.0.1
81
105
  type: :runtime
82
106
  prerelease: false
83
107
  version_requirements: !ruby/object:Gem::Requirement
84
108
  requirements:
85
- - - ">="
109
+ - - "~>"
86
110
  - !ruby/object:Gem::Version
87
- version: 1.7.5
88
- - - "<"
111
+ version: '6.0'
112
+ - - ">="
89
113
  - !ruby/object:Gem::Version
90
- version: '2.0'
114
+ version: 6.0.1
91
115
  - !ruby/object:Gem::Dependency
92
- name: multi_test
116
+ name: cucumber-messages
93
117
  requirement: !ruby/object:Gem::Requirement
94
118
  requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '12.1'
95
122
  - - ">="
96
123
  - !ruby/object:Gem::Version
97
- version: 0.1.2
124
+ version: 12.1.1
98
125
  type: :runtime
99
126
  prerelease: false
100
127
  version_requirements: !ruby/object:Gem::Requirement
101
128
  requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '12.1'
102
132
  - - ">="
103
133
  - !ruby/object:Gem::Version
104
- version: 0.1.2
134
+ version: 12.1.1
105
135
  - !ruby/object:Gem::Dependency
106
136
  name: cucumber-wire
107
137
  requirement: !ruby/object:Gem::Requirement
108
138
  requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 3.0.0
109
142
  - - "~>"
110
143
  - !ruby/object:Gem::Version
111
- version: 0.0.1
144
+ version: '3.0'
112
145
  type: :runtime
113
146
  prerelease: false
114
147
  version_requirements: !ruby/object:Gem::Requirement
115
148
  requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: 3.0.0
116
152
  - - "~>"
117
153
  - !ruby/object:Gem::Version
118
- version: 0.0.1
154
+ version: '3.0'
119
155
  - !ruby/object:Gem::Dependency
120
- name: cucumber-expressions
156
+ name: diff-lcs
121
157
  requirement: !ruby/object:Gem::Requirement
122
158
  requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '1.3'
123
162
  - - "~>"
124
163
  - !ruby/object:Gem::Version
125
- version: 4.0.3
164
+ version: '1.3'
126
165
  type: :runtime
127
166
  prerelease: false
128
167
  version_requirements: !ruby/object:Gem::Requirement
129
168
  requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '1.3'
130
172
  - - "~>"
131
173
  - !ruby/object:Gem::Version
132
- version: 4.0.3
174
+ version: '1.3'
133
175
  - !ruby/object:Gem::Dependency
134
- name: bundler
176
+ name: multi_test
135
177
  requirement: !ruby/object:Gem::Requirement
136
178
  requirements:
137
179
  - - "~>"
138
180
  - !ruby/object:Gem::Version
139
- version: 1.16.0
140
- type: :development
181
+ version: '0.1'
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: 0.1.2
185
+ type: :runtime
141
186
  prerelease: false
142
187
  version_requirements: !ruby/object:Gem::Requirement
143
188
  requirements:
144
189
  - - "~>"
145
190
  - !ruby/object:Gem::Version
146
- version: 1.16.0
191
+ version: '0.1'
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: 0.1.2
147
195
  - !ruby/object:Gem::Dependency
148
- name: aruba
196
+ name: sys-uname
149
197
  requirement: !ruby/object:Gem::Requirement
150
198
  requirements:
151
199
  - - "~>"
152
200
  - !ruby/object:Gem::Version
153
- version: 0.6.1
154
- type: :development
201
+ version: '1.0'
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: 1.0.2
205
+ type: :runtime
155
206
  prerelease: false
156
207
  version_requirements: !ruby/object:Gem::Requirement
157
208
  requirements:
158
209
  - - "~>"
159
210
  - !ruby/object:Gem::Version
160
- version: 0.6.1
211
+ version: '1.0'
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: 1.0.2
161
215
  - !ruby/object:Gem::Dependency
162
- name: json
216
+ name: nokogiri
163
217
  requirement: !ruby/object:Gem::Requirement
164
218
  requirements:
165
219
  - - "~>"
166
220
  - !ruby/object:Gem::Version
167
- version: 1.8.6
221
+ version: '1.10'
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: 1.10.4
168
225
  type: :development
169
226
  prerelease: false
170
227
  version_requirements: !ruby/object:Gem::Requirement
171
228
  requirements:
172
229
  - - "~>"
173
230
  - !ruby/object:Gem::Version
174
- version: 1.8.6
231
+ version: '1.10'
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: 1.10.4
175
235
  - !ruby/object:Gem::Dependency
176
- name: nokogiri
236
+ name: pry
177
237
  requirement: !ruby/object:Gem::Requirement
178
238
  requirements:
179
239
  - - "~>"
180
240
  - !ruby/object:Gem::Version
181
- version: 1.8.1
241
+ version: '0.12'
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: 0.12.2
182
245
  type: :development
183
246
  prerelease: false
184
247
  version_requirements: !ruby/object:Gem::Requirement
185
248
  requirements:
186
249
  - - "~>"
187
250
  - !ruby/object:Gem::Version
188
- version: 1.8.1
251
+ version: '0.12'
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: 0.12.2
189
255
  - !ruby/object:Gem::Dependency
190
256
  name: rake
191
257
  requirement: !ruby/object:Gem::Requirement
192
258
  requirements:
259
+ - - "~>"
260
+ - !ruby/object:Gem::Version
261
+ version: '12.3'
193
262
  - - ">="
194
263
  - !ruby/object:Gem::Version
195
- version: 0.9.2
264
+ version: 12.3.3
196
265
  type: :development
197
266
  prerelease: false
198
267
  version_requirements: !ruby/object:Gem::Requirement
199
268
  requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: '12.3'
200
272
  - - ">="
201
273
  - !ruby/object:Gem::Version
202
- version: 0.9.2
274
+ version: 12.3.3
203
275
  - !ruby/object:Gem::Dependency
204
276
  name: rspec
205
277
  requirement: !ruby/object:Gem::Requirement
206
278
  requirements:
207
279
  - - ">="
208
280
  - !ruby/object:Gem::Version
209
- version: '3.6'
281
+ version: 3.8.0
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '3.8'
210
285
  type: :development
211
286
  prerelease: false
212
287
  version_requirements: !ruby/object:Gem::Requirement
213
288
  requirements:
214
289
  - - ">="
215
290
  - !ruby/object:Gem::Version
216
- version: '3.6'
291
+ version: 3.8.0
292
+ - - "~>"
293
+ - !ruby/object:Gem::Version
294
+ version: '3.8'
217
295
  - !ruby/object:Gem::Dependency
218
296
  name: simplecov
219
297
  requirement: !ruby/object:Gem::Requirement
220
298
  requirements:
221
299
  - - ">="
222
300
  - !ruby/object:Gem::Version
223
- version: 0.6.2
301
+ version: 0.17.0
302
+ - - "~>"
303
+ - !ruby/object:Gem::Version
304
+ version: '0.17'
224
305
  type: :development
225
306
  prerelease: false
226
307
  version_requirements: !ruby/object:Gem::Requirement
227
308
  requirements:
228
309
  - - ">="
229
310
  - !ruby/object:Gem::Version
230
- version: 0.6.2
311
+ version: 0.17.0
312
+ - - "~>"
313
+ - !ruby/object:Gem::Version
314
+ version: '0.17'
231
315
  - !ruby/object:Gem::Dependency
232
316
  name: syntax
233
317
  requirement: !ruby/object:Gem::Requirement
234
318
  requirements:
319
+ - - "~>"
320
+ - !ruby/object:Gem::Version
321
+ version: '1.2'
235
322
  - - ">="
236
323
  - !ruby/object:Gem::Version
237
- version: 1.0.0
324
+ version: 1.2.2
238
325
  type: :development
239
326
  prerelease: false
240
327
  version_requirements: !ruby/object:Gem::Requirement
241
328
  requirements:
329
+ - - "~>"
330
+ - !ruby/object:Gem::Version
331
+ version: '1.2'
242
332
  - - ">="
243
333
  - !ruby/object:Gem::Version
244
- version: 1.0.0
334
+ version: 1.2.2
245
335
  - !ruby/object:Gem::Dependency
246
- name: pry
336
+ name: test-unit
247
337
  requirement: !ruby/object:Gem::Requirement
248
338
  requirements:
339
+ - - "~>"
340
+ - !ruby/object:Gem::Version
341
+ version: '1.2'
249
342
  - - ">="
250
343
  - !ruby/object:Gem::Version
251
- version: '0'
344
+ version: 1.2.3
252
345
  type: :development
253
346
  prerelease: false
254
347
  version_requirements: !ruby/object:Gem::Requirement
255
348
  requirements:
349
+ - - "~>"
350
+ - !ruby/object:Gem::Version
351
+ version: '1.2'
256
352
  - - ">="
257
353
  - !ruby/object:Gem::Version
258
- version: '0'
354
+ version: 1.2.3
259
355
  - !ruby/object:Gem::Dependency
260
- name: rubocop
356
+ name: webrick
261
357
  requirement: !ruby/object:Gem::Requirement
262
358
  requirements:
359
+ - - ">="
360
+ - !ruby/object:Gem::Version
361
+ version: 1.6.0
263
362
  - - "~>"
264
363
  - !ruby/object:Gem::Version
265
- version: 0.40.0
364
+ version: '1.6'
266
365
  type: :development
267
366
  prerelease: false
268
367
  version_requirements: !ruby/object:Gem::Requirement
269
368
  requirements:
369
+ - - ">="
370
+ - !ruby/object:Gem::Version
371
+ version: 1.6.0
270
372
  - - "~>"
271
373
  - !ruby/object:Gem::Version
272
- version: 0.40.0
374
+ version: '1.6'
273
375
  - !ruby/object:Gem::Dependency
274
376
  name: octokit
275
377
  requirement: !ruby/object:Gem::Requirement
276
378
  requirements:
277
379
  - - ">="
278
380
  - !ruby/object:Gem::Version
279
- version: '0'
280
- type: :development
281
- prerelease: false
282
- version_requirements: !ruby/object:Gem::Requirement
283
- requirements:
284
- - - ">="
285
- - !ruby/object:Gem::Version
286
- version: '0'
287
- - !ruby/object:Gem::Dependency
288
- name: bcat
289
- requirement: !ruby/object:Gem::Requirement
290
- requirements:
381
+ version: 4.14.0
291
382
  - - "~>"
292
383
  - !ruby/object:Gem::Version
293
- version: 0.6.2
384
+ version: '4.14'
294
385
  type: :development
295
386
  prerelease: false
296
387
  version_requirements: !ruby/object:Gem::Requirement
297
388
  requirements:
389
+ - - ">="
390
+ - !ruby/object:Gem::Version
391
+ version: 4.14.0
298
392
  - - "~>"
299
393
  - !ruby/object:Gem::Version
300
- version: 0.6.2
394
+ version: '4.14'
301
395
  - !ruby/object:Gem::Dependency
302
- name: kramdown
396
+ name: rack-test
303
397
  requirement: !ruby/object:Gem::Requirement
304
398
  requirements:
399
+ - - ">="
400
+ - !ruby/object:Gem::Version
401
+ version: 1.1.0
305
402
  - - "~>"
306
403
  - !ruby/object:Gem::Version
307
- version: '0.14'
404
+ version: '1.1'
308
405
  type: :development
309
406
  prerelease: false
310
407
  version_requirements: !ruby/object:Gem::Requirement
311
408
  requirements:
409
+ - - ">="
410
+ - !ruby/object:Gem::Version
411
+ version: 1.1.0
312
412
  - - "~>"
313
413
  - !ruby/object:Gem::Version
314
- version: '0.14'
414
+ version: '1.1'
315
415
  - !ruby/object:Gem::Dependency
316
- name: yard
416
+ name: sinatra
317
417
  requirement: !ruby/object:Gem::Requirement
318
418
  requirements:
319
419
  - - "~>"
320
420
  - !ruby/object:Gem::Version
321
- version: 0.8.0
322
- type: :development
323
- prerelease: false
324
- version_requirements: !ruby/object:Gem::Requirement
325
- requirements:
326
- - - "~>"
327
- - !ruby/object:Gem::Version
328
- version: 0.8.0
329
- - !ruby/object:Gem::Dependency
330
- name: capybara
331
- requirement: !ruby/object:Gem::Requirement
332
- requirements:
421
+ version: '2.0'
333
422
  - - ">="
334
423
  - !ruby/object:Gem::Version
335
- version: '2.1'
424
+ version: 2.0.5
336
425
  type: :development
337
426
  prerelease: false
338
427
  version_requirements: !ruby/object:Gem::Requirement
339
428
  requirements:
340
- - - ">="
341
- - !ruby/object:Gem::Version
342
- version: '2.1'
343
- - !ruby/object:Gem::Dependency
344
- name: rack-test
345
- requirement: !ruby/object:Gem::Requirement
346
- requirements:
347
- - - ">="
429
+ - - "~>"
348
430
  - !ruby/object:Gem::Version
349
- version: 0.6.1
350
- type: :development
351
- prerelease: false
352
- version_requirements: !ruby/object:Gem::Requirement
353
- requirements:
431
+ version: '2.0'
354
432
  - - ">="
355
433
  - !ruby/object:Gem::Version
356
- version: 0.6.1
434
+ version: 2.0.5
357
435
  - !ruby/object:Gem::Dependency
358
- name: sinatra
436
+ name: capybara
359
437
  requirement: !ruby/object:Gem::Requirement
360
438
  requirements:
361
- - - ">="
439
+ - - '='
362
440
  - !ruby/object:Gem::Version
363
- version: 1.3.2
441
+ version: 3.15.0
364
442
  type: :development
365
443
  prerelease: false
366
444
  version_requirements: !ruby/object:Gem::Requirement
367
445
  requirements:
368
- - - ">="
446
+ - - '='
369
447
  - !ruby/object:Gem::Version
370
- version: 1.3.2
448
+ version: 3.15.0
371
449
  description: Behaviour Driven Development with elegance and joy
372
450
  email: cukes@googlegroups.com
373
451
  executables:
@@ -401,15 +479,22 @@ files:
401
479
  - lib/cucumber/encoding.rb
402
480
  - lib/cucumber/errors.rb
403
481
  - lib/cucumber/events.rb
482
+ - lib/cucumber/events/envelope.rb
483
+ - lib/cucumber/events/gherkin_source_parsed.rb
404
484
  - lib/cucumber/events/gherkin_source_read.rb
485
+ - lib/cucumber/events/hook_test_step_created.rb
405
486
  - lib/cucumber/events/step_activated.rb
406
487
  - lib/cucumber/events/step_definition_registered.rb
488
+ - lib/cucumber/events/test_case_created.rb
407
489
  - lib/cucumber/events/test_case_finished.rb
490
+ - lib/cucumber/events/test_case_ready.rb
408
491
  - lib/cucumber/events/test_case_started.rb
409
492
  - lib/cucumber/events/test_run_finished.rb
410
493
  - lib/cucumber/events/test_run_started.rb
494
+ - lib/cucumber/events/test_step_created.rb
411
495
  - lib/cucumber/events/test_step_finished.rb
412
496
  - lib/cucumber/events/test_step_started.rb
497
+ - lib/cucumber/events/undefined_parameter_type.rb
413
498
  - lib/cucumber/file_specs.rb
414
499
  - lib/cucumber/filters.rb
415
500
  - lib/cucumber/filters/activate_steps.rb
@@ -417,6 +502,7 @@ files:
417
502
  - lib/cucumber/filters/apply_after_step_hooks.rb
418
503
  - lib/cucumber/filters/apply_around_hooks.rb
419
504
  - lib/cucumber/filters/apply_before_hooks.rb
505
+ - lib/cucumber/filters/broadcast_test_case_ready_event.rb
420
506
  - lib/cucumber/filters/broadcast_test_run_started_event.rb
421
507
  - lib/cucumber/filters/gated_receiver.rb
422
508
  - lib/cucumber/filters/prepare_world.rb
@@ -427,33 +513,32 @@ files:
427
513
  - lib/cucumber/filters/tag_limits/test_case_index.rb
428
514
  - lib/cucumber/filters/tag_limits/verifier.rb
429
515
  - lib/cucumber/formatter/ansicolor.rb
516
+ - lib/cucumber/formatter/ast_lookup.rb
430
517
  - lib/cucumber/formatter/backtrace_filter.rb
431
518
  - lib/cucumber/formatter/console.rb
432
519
  - lib/cucumber/formatter/console_counts.rb
433
520
  - lib/cucumber/formatter/console_issues.rb
434
- - lib/cucumber/formatter/cucumber.css
435
- - lib/cucumber/formatter/cucumber.sass
436
521
  - lib/cucumber/formatter/duration.rb
437
522
  - lib/cucumber/formatter/duration_extractor.rb
523
+ - lib/cucumber/formatter/errors.rb
438
524
  - lib/cucumber/formatter/fail_fast.rb
439
525
  - lib/cucumber/formatter/fanout.rb
440
- - lib/cucumber/formatter/hook_query_visitor.rb
441
526
  - lib/cucumber/formatter/html.rb
442
- - lib/cucumber/formatter/html_builder.rb
527
+ - lib/cucumber/formatter/http_io.rb
443
528
  - lib/cucumber/formatter/ignore_missing_messages.rb
444
- - lib/cucumber/formatter/inline-js.js
445
529
  - lib/cucumber/formatter/interceptor.rb
446
530
  - lib/cucumber/formatter/io.rb
447
- - lib/cucumber/formatter/jquery-min.js
448
531
  - lib/cucumber/formatter/json.rb
449
- - lib/cucumber/formatter/json_pretty.rb
450
532
  - lib/cucumber/formatter/junit.rb
451
- - lib/cucumber/formatter/legacy_api/adapter.rb
452
- - lib/cucumber/formatter/legacy_api/ast.rb
453
- - lib/cucumber/formatter/legacy_api/results.rb
454
- - lib/cucumber/formatter/legacy_api/runtime_facade.rb
533
+ - lib/cucumber/formatter/message.rb
534
+ - lib/cucumber/formatter/message_builder.rb
455
535
  - lib/cucumber/formatter/pretty.rb
456
536
  - lib/cucumber/formatter/progress.rb
537
+ - lib/cucumber/formatter/query/hook_by_test_step.rb
538
+ - lib/cucumber/formatter/query/pickle_by_test.rb
539
+ - lib/cucumber/formatter/query/pickle_step_by_test_step.rb
540
+ - lib/cucumber/formatter/query/step_definitions_by_test_step.rb
541
+ - lib/cucumber/formatter/query/test_case_started_by_test_case.rb
457
542
  - lib/cucumber/formatter/rerun.rb
458
543
  - lib/cucumber/formatter/stepdefs.rb
459
544
  - lib/cucumber/formatter/steps.rb
@@ -492,7 +577,6 @@ files:
492
577
  - lib/cucumber/runtime/step_hooks.rb
493
578
  - lib/cucumber/runtime/support_code.rb
494
579
  - lib/cucumber/runtime/user_interface.rb
495
- - lib/cucumber/step_argument.rb
496
580
  - lib/cucumber/step_definition_light.rb
497
581
  - lib/cucumber/step_definitions.rb
498
582
  - lib/cucumber/step_match.rb
@@ -504,7 +588,12 @@ files:
504
588
  homepage: https://cucumber.io/
505
589
  licenses:
506
590
  - MIT
507
- metadata: {}
591
+ metadata:
592
+ bug_tracker_uri: https://github.com/cucumber/cucumber-ruby/issues
593
+ changelog_uri: https://github.com/cucumber/cucumber-ruby/blob/master/CHANGELOG.md
594
+ documentation_uri: https://www.rubydoc.info/github/cucumber/cucumber-ruby/
595
+ mailing_list_uri: https://groups.google.com/forum/#!forum/cukes
596
+ source_code_uri: https://github.com/cucumber/cucumber-ruby
508
597
  post_install_message:
509
598
  rdoc_options:
510
599
  - "--charset=UTF-8"
@@ -514,17 +603,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
514
603
  requirements:
515
604
  - - ">="
516
605
  - !ruby/object:Gem::Version
517
- version: '2.2'
606
+ version: '2.3'
518
607
  required_rubygems_version: !ruby/object:Gem::Requirement
519
608
  requirements:
520
609
  - - ">="
521
610
  - !ruby/object:Gem::Version
522
611
  version: '0'
523
612
  requirements: []
524
- rubyforge_project:
525
- rubygems_version: 2.5.2
613
+ rubygems_version: 3.0.6
526
614
  signing_key:
527
615
  specification_version: 4
528
- summary: cucumber-3.0.2
616
+ summary: cucumber-4.0.0
529
617
  test_files: []
530
- has_rdoc: