cucumber 9.1.0 → 9.1.1

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: 757154e702f016f75cb37fc68451c18a9a9e742957a197055e127cbe5ebefac6
4
- data.tar.gz: '010178d0bb40315be3e1c0923c569ec9f5a8d4684da6446b7a396c45da03371c'
3
+ metadata.gz: 81294b0304068bde0d87c31fc0d58451d79a59c73bc743bf4ea282dcf5c2ba2c
4
+ data.tar.gz: 9f8e3297cfd2fdf1f977a1e748abf2a2cd08f742709884042d56213ab4ff6499
5
5
  SHA512:
6
- metadata.gz: f9c2e02d96f40e5564643f994be4cb5ac6bc5f36849551d5a5f102225a4e62526efabf00d14b961f59a954fdf41345f06c45c4469913bfae93d775c33ac2f5e0
7
- data.tar.gz: c20336a8e85dc299322e0a5cd92ba39fc7b5091195d7003b26ed014d58a3dfeb2ae8f0be6a88a6f26238589dc15acb40103049d49415431e075a1bcda4f86487
6
+ metadata.gz: 380511f8909d71467d326c13510820ed9e16517c4aaf68e3bcc6bf14a9a7e9588060e04238e970a1e4d37ed8dd4b725347c4153dd12357dae2c7ffcf548e6949
7
+ data.tar.gz: 3ee41bcacdfb4b040cd5cab60c3c94c5a7fcb533b06fc73d2a58e49aa12652b0e834298931425e537ef15b51f528a4469c833044dc577e277374175a9fbdbacc
data/VERSION CHANGED
@@ -1 +1 @@
1
- 9.1.0
1
+ 9.1.1
@@ -49,7 +49,7 @@ module Cucumber
49
49
  rescue Errno::EACCES, Errno::ENOENT => e
50
50
  @err.puts("#{e.message} (#{e.class})")
51
51
  exit_unable_to_finish
52
- rescue Exception => e # rubocop:disable Lint/RescueException
52
+ rescue Exception => e
53
53
  @err.puts("#{e.message} (#{e.class})")
54
54
  @err.puts(e.backtrace.join("\n"))
55
55
  exit_unable_to_finish
@@ -92,13 +92,13 @@ module Cucumber
92
92
  @options[key] = value
93
93
  end
94
94
 
95
- def parse!(args) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
95
+ def parse!(args)
96
96
  @args = args
97
97
  @expanded_args = @args.dup
98
98
 
99
99
  @args.extend(::OptionParser::Arguable)
100
100
 
101
- @args.options do |opts| # rubocop:disable Metrics/BlockLength
101
+ @args.options do |opts|
102
102
  opts.banner = banner
103
103
  opts.on('--publish', 'Publish a report to https://reports.cucumber.io') do
104
104
  set_option :publish_enabled, true
@@ -143,11 +143,11 @@ module Cucumber
143
143
  opts.on('-x', '--expand', 'Expand Scenario Outline Tables in output.') { set_option :expand }
144
144
 
145
145
  opts.on('--order TYPE[:SEED]', 'Run examples in the specified order. Available types:',
146
- *<<-TEXT.split("\n")) do |order|
147
- [defined] Run scenarios in the order they were defined (default).
148
- [random] Shuffle scenarios before running.
149
- Specify SEED to reproduce the shuffling from a previous run.
150
- e.g. --order random:5738
146
+ *<<~TEXT.split("\n")) do |order|
147
+ [defined] Run scenarios in the order they were defined (default).
148
+ [random] Shuffle scenarios before running.
149
+ Specify SEED to reproduce the shuffling from a previous run.
150
+ e.g. --order random:5738
151
151
  TEXT
152
152
  @options[:order], @options[:seed] = *order.split(':')
153
153
  raise "'#{@options[:order]}' is not a recognised order type. Please use one of #{ORDER_TYPES.join(', ')}." unless ORDER_TYPES.include?(@options[:order])
@@ -522,7 +522,7 @@ Specify SEED to reproduce the shuffling from a previous run.
522
522
  @profile_loader ||= ProfileLoader.new
523
523
  end
524
524
 
525
- def reverse_merge(other_options) # rubocop:disable Metrics/AbcSize
525
+ def reverse_merge(other_options)
526
526
  @options = other_options.options.merge(@options)
527
527
  @options[:require] += other_options[:require]
528
528
  @options[:excludes] += other_options[:excludes]
@@ -11,11 +11,11 @@ module Cucumber
11
11
 
12
12
  def args_from(profile)
13
13
  unless cucumber_yml.key?(profile)
14
- raise(ProfileNotFound, <<-END_OF_ERROR)
15
- Could not find profile: '#{profile}'
14
+ raise(ProfileNotFound, <<~END_OF_ERROR)
15
+ Could not find profile: '#{profile}'
16
16
 
17
- Defined profiles in cucumber.yml:
18
- * #{cucumber_yml.keys.sort.join("\n * ")}
17
+ Defined profiles in cucumber.yml:
18
+ * #{cucumber_yml.keys.sort.join("\n * ")}
19
19
  END_OF_ERROR
20
20
  end
21
21
 
@@ -84,7 +84,7 @@ Defined profiles in cucumber.yml:
84
84
  def load_configuration
85
85
  require 'yaml'
86
86
  begin
87
- @cucumber_yml = YAML.load(@cucumber_erb) # rubocop:disable Security/YAMLLoad
87
+ @cucumber_yml = YAML.load(@cucumber_erb)
88
88
  rescue StandardError
89
89
  raise(YmlLoadError, "cucumber.yml was found, but could not be parsed. Please refer to cucumber's documentation on correct profile usage.\n")
90
90
  end
@@ -213,7 +213,7 @@ module Cucumber
213
213
  yield factory,
214
214
  formatter_options,
215
215
  path_or_io
216
- rescue Exception => e # rubocop:disable Lint/RescueException
216
+ rescue Exception => e
217
217
  raise e, "#{e.message}\nError creating formatter: #{format}", e.backtrace
218
218
  end
219
219
  end
@@ -3,7 +3,7 @@
3
3
  require 'cucumber/platform'
4
4
  require 'cucumber/term/ansicolor'
5
5
 
6
- Cucumber::Term::ANSIColor.coloring = false if !$stdout.tty? && !ENV.key?('AUTOTEST')
6
+ Cucumber::Term::ANSIColor.coloring = false unless $stdout.tty?
7
7
 
8
8
  module Cucumber
9
9
  module Formatter
@@ -70,14 +70,14 @@ module Cucumber
70
70
  "#{h[Regexp.last_match(1)]},bold"
71
71
  end.merge(
72
72
  'undefined' => 'yellow',
73
- 'pending' => 'yellow',
74
- 'flaky' => 'yellow',
75
- 'failed' => 'red',
76
- 'passed' => 'green',
77
- 'outline' => 'cyan',
78
- 'skipped' => 'cyan',
79
- 'comment' => 'grey',
80
- 'tag' => 'cyan'
73
+ 'pending' => 'yellow',
74
+ 'flaky' => 'yellow',
75
+ 'failed' => 'red',
76
+ 'passed' => 'green',
77
+ 'outline' => 'cyan',
78
+ 'skipped' => 'cyan',
79
+ 'comment' => 'grey',
80
+ 'tag' => 'cyan'
81
81
  )
82
82
  # :startdoc:
83
83
 
@@ -114,7 +114,7 @@ module Cucumber
114
114
  end
115
115
 
116
116
  def current_feature
117
- @feature_hash ||= {} # rubocop:disable Naming/MemoizedInstanceVariableName
117
+ @feature_hash ||= {}
118
118
  end
119
119
 
120
120
  def feature_elements
@@ -395,7 +395,7 @@ module Cucumber
395
395
  end
396
396
  end
397
397
 
398
- def print_outline_data(scenario_outline) # rubocop:disable Metrics/AbcSize
398
+ def print_outline_data(scenario_outline)
399
399
  print_comments(scenario_outline.location.line, 2)
400
400
  print_tags(scenario_outline.tags, 2)
401
401
  @source_indent = calculate_source_indent_for_ast_node(scenario_outline) if options[:source]
@@ -41,30 +41,30 @@ module Cucumber
41
41
  # Although not listed, you can also use <tt>grey</tt>
42
42
  module AnsiEscapes
43
43
  COLORS = {
44
- 'black' => "\e[30m",
45
- 'red' => "\e[31m",
46
- 'green' => "\e[32m",
47
- 'yellow' => "\e[33m",
48
- 'blue' => "\e[34m",
44
+ 'black' => "\e[30m",
45
+ 'red' => "\e[31m",
46
+ 'green' => "\e[32m",
47
+ 'yellow' => "\e[33m",
48
+ 'blue' => "\e[34m",
49
49
  'magenta' => "\e[35m",
50
- 'cyan' => "\e[36m",
51
- 'white' => "\e[37m",
52
- 'grey' => "\e[90m",
53
- 'bold' => "\e[1m"
50
+ 'cyan' => "\e[36m",
51
+ 'white' => "\e[37m",
52
+ 'grey' => "\e[90m",
53
+ 'bold' => "\e[1m"
54
54
  }.freeze
55
55
 
56
56
  ALIASES = Hash.new do |h, k|
57
57
  "#{h[Regexp.last_match(1)]},bold" if k.to_s =~ /(.*)_arg/
58
58
  end.merge(
59
59
  'undefined' => 'yellow',
60
- 'pending' => 'yellow',
60
+ 'pending' => 'yellow',
61
61
  'executing' => 'grey',
62
- 'failed' => 'red',
63
- 'passed' => 'green',
64
- 'outline' => 'cyan',
65
- 'skipped' => 'cyan',
66
- 'comments' => 'grey',
67
- 'tag' => 'cyan'
62
+ 'failed' => 'red',
63
+ 'passed' => 'green',
64
+ 'outline' => 'cyan',
65
+ 'skipped' => 'cyan',
66
+ 'comments' => 'grey',
67
+ 'tag' => 'cyan'
68
68
  )
69
69
 
70
70
  # Example: export GHERKIN_COLORS="passed=red:failed=yellow"
@@ -48,7 +48,7 @@ module Cucumber
48
48
 
49
49
  def self.cucumber_run_with_backtrace_filtering(pseudo_method)
50
50
  yield
51
- rescue Exception => e # rubocop:disable Lint/RescueException
51
+ rescue Exception => e
52
52
  instance_exec_invocation_line = "#{__FILE__}:#{__LINE__ - 2}:in `cucumber_run_with_backtrace_filtering'"
53
53
  replace_instance_exec_invocation_line!((e.backtrace || []), instance_exec_invocation_line, pseudo_method)
54
54
  raise e
@@ -27,7 +27,7 @@ module Cucumber
27
27
  # This will store <tt>[['a', 'b'], ['c', 'd']]</tt> in the <tt>data</tt> variable.
28
28
  #
29
29
  class DataTable
30
- def self.default_arg_name # :nodoc:
30
+ def self.default_arg_name
31
31
  'table'
32
32
  end
33
33
 
@@ -194,7 +194,7 @@ module Cucumber
194
194
  end
195
195
  end
196
196
 
197
- def column_names # :nodoc:
197
+ def column_names
198
198
  @column_names ||= cell_matrix[0].map(&:value)
199
199
  end
200
200
 
@@ -204,7 +204,7 @@ module Cucumber
204
204
  end
205
205
  end
206
206
 
207
- def each_cells_row(&proc) # :nodoc:
207
+ def each_cells_row(&proc)
208
208
  cells_rows.each(&proc)
209
209
  end
210
210
 
@@ -340,7 +340,7 @@ module Cucumber
340
340
  cells_rows.map { |cells| cells.map(&:value) }
341
341
  end
342
342
 
343
- def cells_to_hash(cells) # :nodoc:
343
+ def cells_to_hash(cells)
344
344
  hash = Hash.new do |hash_inner, key|
345
345
  hash_inner[key.to_s] if key.is_a?(Symbol)
346
346
  end
@@ -350,51 +350,51 @@ module Cucumber
350
350
  hash
351
351
  end
352
352
 
353
- def index(cells) # :nodoc:
353
+ def index(cells)
354
354
  cells_rows.index(cells)
355
355
  end
356
356
 
357
- def verify_column(column_name) # :nodoc:
357
+ def verify_column(column_name)
358
358
  raise %(The column named "#{column_name}" does not exist) unless raw[0].include?(column_name)
359
359
  end
360
360
 
361
- def verify_table_width(width) # :nodoc:
361
+ def verify_table_width(width)
362
362
  raise %(The table must have exactly #{width} columns) unless raw[0].size == width
363
363
  end
364
364
 
365
365
  # TODO: remove the below function if it's not actually being used.
366
366
  # Nothing else in this repo calls it.
367
- def text?(text) # :nodoc:
367
+ def text?(text)
368
368
  raw.flatten.compact.detect { |cell_value| cell_value.index(text) }
369
369
  end
370
370
 
371
- def cells_rows # :nodoc:
372
- @rows ||= cell_matrix.map do |cell_row| # rubocop:disable Naming/MemoizedInstanceVariableName
371
+ def cells_rows
372
+ @rows ||= cell_matrix.map do |cell_row|
373
373
  Cells.new(self, cell_row)
374
374
  end
375
375
  end
376
376
 
377
- def headers # :nodoc:
377
+ def headers
378
378
  raw.first
379
379
  end
380
380
 
381
- def header_cell(col) # :nodoc:
381
+ def header_cell(col)
382
382
  cells_rows[0][col]
383
383
  end
384
384
 
385
385
  attr_reader :cell_matrix
386
386
 
387
- def col_width(col) # :nodoc:
387
+ def col_width(col)
388
388
  columns[col].__send__(:width)
389
389
  end
390
390
 
391
- def to_s(options = {}) # :nodoc:
391
+ def to_s(options = {})
392
392
  indentation = options.key?(:indent) ? options[:indent] : 2
393
393
  prefixes = options.key?(:prefixes) ? options[:prefixes] : TO_S_PREFIXES
394
394
  DataTablePrinter.new(self, indentation, prefixes).to_s
395
395
  end
396
396
 
397
- class DataTablePrinter # :nodoc:
397
+ class DataTablePrinter
398
398
  include Cucumber::Gherkin::Formatter::Escaping
399
399
  attr_reader :data_table, :indentation, :prefixes
400
400
  private :data_table, :indentation, :prefixes
@@ -433,7 +433,7 @@ module Cucumber
433
433
  end
434
434
  end
435
435
 
436
- def columns # :nodoc:
436
+ def columns
437
437
  @columns ||= cell_matrix.transpose.map do |cell_row|
438
438
  Cells.new(self, cell_row)
439
439
  end
@@ -456,7 +456,7 @@ module Cucumber
456
456
  cells_rows[1..].map(&:to_hash)
457
457
  end
458
458
 
459
- def create_cell_matrix(ast_table) # :nodoc:
459
+ def create_cell_matrix(ast_table)
460
460
  ast_table.raw.map do |raw_row|
461
461
  line = begin
462
462
  raw_row.line
@@ -469,7 +469,7 @@ module Cucumber
469
469
  end
470
470
  end
471
471
 
472
- def convert_columns! # :nodoc:
472
+ def convert_columns!
473
473
  @conversion_procs.each do |column_name, conversion_proc|
474
474
  verify_column(column_name) if conversion_proc[:strict]
475
475
  end
@@ -483,7 +483,7 @@ module Cucumber
483
483
  end
484
484
  end
485
485
 
486
- def convert_headers! # :nodoc:
486
+ def convert_headers!
487
487
  header_cells = cell_matrix[0]
488
488
 
489
489
  if @header_conversion_proc
@@ -501,11 +501,11 @@ module Cucumber
501
501
  end
502
502
  end
503
503
 
504
- def clear_cache! # :nodoc:
504
+ def clear_cache!
505
505
  @hashes = @rows_hash = @column_names = @rows = @columns = nil
506
506
  end
507
507
 
508
- def ensure_table(table_or_array) # :nodoc:
508
+ def ensure_table(table_or_array)
509
509
  return table_or_array if table_or_array.instance_of?(DataTable)
510
510
 
511
511
  DataTable.from(table_or_array)
@@ -516,7 +516,7 @@ module Cucumber
516
516
  end
517
517
 
518
518
  # Represents a row of cells or columns of cells
519
- class Cells # :nodoc:
519
+ class Cells
520
520
  include Enumerable
521
521
  include Cucumber::Gherkin::Formatter::Escaping
522
522
 
@@ -537,15 +537,15 @@ module Cucumber
537
537
  end
538
538
 
539
539
  # For testing only
540
- def to_sexp # :nodoc:
540
+ def to_sexp
541
541
  [:row, line, *@cells.map(&:to_sexp)]
542
542
  end
543
543
 
544
- def to_hash # :nodoc:
544
+ def to_hash
545
545
  @to_hash ||= @table.cells_to_hash(self)
546
546
  end
547
547
 
548
- def value(n) # :nodoc:
548
+ def value(n)
549
549
  self[n].value
550
550
  end
551
551
 
@@ -576,7 +576,7 @@ module Cucumber
576
576
  end
577
577
  end
578
578
 
579
- class Cell # :nodoc:
579
+ class Cell
580
580
  attr_reader :line, :table
581
581
  attr_accessor :status, :value
582
582
 
@@ -603,12 +603,12 @@ module Cucumber
603
603
  end
604
604
 
605
605
  # For testing only
606
- def to_sexp # :nodoc:
606
+ def to_sexp
607
607
  [:cell, @value]
608
608
  end
609
609
  end
610
610
 
611
- class SurplusCell < Cell # :nodoc:
611
+ class SurplusCell < Cell
612
612
  def status
613
613
  :comment
614
614
  end
@@ -235,7 +235,7 @@ module Cucumber
235
235
  end
236
236
 
237
237
  require 'cucumber/core/test/filters'
238
- def filters # rubocop:disable Metrics/AbcSize
238
+ def filters
239
239
  tag_expressions = @configuration.tag_expressions
240
240
  name_regexps = @configuration.name_regexps
241
241
  tag_limits = @configuration.tag_limits
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.1.0
4
+ version: 9.1.1
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-11-14 00:00:00.000000000 Z
13
+ date: 2024-01-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: builder
@@ -84,7 +84,7 @@ dependencies:
84
84
  name: cucumber-gherkin
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - ">"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '24'
90
90
  - - "<"
@@ -94,7 +94,7 @@ dependencies:
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - ">="
97
+ - - ">"
98
98
  - !ruby/object:Gem::Version
99
99
  version: '24'
100
100
  - - "<"
@@ -104,42 +104,42 @@ dependencies:
104
104
  name: cucumber-html-formatter
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - "~>"
107
+ - - ">"
108
108
  - !ruby/object:Gem::Version
109
- version: '20.4'
110
- - - ">="
109
+ version: '20.3'
110
+ - - "<"
111
111
  - !ruby/object:Gem::Version
112
- version: 20.4.0
112
+ version: '22'
113
113
  type: :runtime
114
114
  prerelease: false
115
115
  version_requirements: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - "~>"
117
+ - - ">"
118
118
  - !ruby/object:Gem::Version
119
- version: '20.4'
120
- - - ">="
119
+ version: '20.3'
120
+ - - "<"
121
121
  - !ruby/object:Gem::Version
122
- version: 20.4.0
122
+ version: '22'
123
123
  - !ruby/object:Gem::Dependency
124
124
  name: cucumber-messages
125
125
  requirement: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - ">="
127
+ - - ">"
128
128
  - !ruby/object:Gem::Version
129
129
  version: '19'
130
130
  - - "<"
131
131
  - !ruby/object:Gem::Version
132
- version: '23'
132
+ version: '25'
133
133
  type: :runtime
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - ">="
137
+ - - ">"
138
138
  - !ruby/object:Gem::Version
139
139
  version: '19'
140
140
  - - "<"
141
141
  - !ruby/object:Gem::Version
142
- version: '23'
142
+ version: '25'
143
143
  - !ruby/object:Gem::Dependency
144
144
  name: diff-lcs
145
145
  requirement: !ruby/object:Gem::Requirement
@@ -147,9 +147,6 @@ dependencies:
147
147
  - - "~>"
148
148
  - !ruby/object:Gem::Version
149
149
  version: '1.5'
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: 1.5.0
153
150
  type: :runtime
154
151
  prerelease: false
155
152
  version_requirements: !ruby/object:Gem::Requirement
@@ -157,9 +154,6 @@ dependencies:
157
154
  - - "~>"
158
155
  - !ruby/object:Gem::Version
159
156
  version: '1.5'
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- version: 1.5.0
163
157
  - !ruby/object:Gem::Dependency
164
158
  name: mini_mime
165
159
  requirement: !ruby/object:Gem::Requirement
@@ -226,54 +220,42 @@ dependencies:
226
220
  requirements:
227
221
  - - "~>"
228
222
  - !ruby/object:Gem::Version
229
- version: '14.0'
223
+ version: '14.1'
230
224
  type: :development
231
225
  prerelease: false
232
226
  version_requirements: !ruby/object:Gem::Requirement
233
227
  requirements:
234
228
  - - "~>"
235
229
  - !ruby/object:Gem::Version
236
- version: '14.0'
230
+ version: '14.1'
237
231
  - !ruby/object:Gem::Dependency
238
232
  name: nokogiri
239
233
  requirement: !ruby/object:Gem::Requirement
240
234
  requirements:
241
235
  - - "~>"
242
236
  - !ruby/object:Gem::Version
243
- version: '1.13'
244
- - - ">="
245
- - !ruby/object:Gem::Version
246
- version: 1.13.6
237
+ version: '1.14'
247
238
  type: :development
248
239
  prerelease: false
249
240
  version_requirements: !ruby/object:Gem::Requirement
250
241
  requirements:
251
242
  - - "~>"
252
243
  - !ruby/object:Gem::Version
253
- version: '1.13'
254
- - - ">="
255
- - !ruby/object:Gem::Version
256
- version: 1.13.6
244
+ version: '1.14'
257
245
  - !ruby/object:Gem::Dependency
258
246
  name: rake
259
247
  requirement: !ruby/object:Gem::Requirement
260
248
  requirements:
261
249
  - - "~>"
262
250
  - !ruby/object:Gem::Version
263
- version: '13.0'
264
- - - ">="
265
- - !ruby/object:Gem::Version
266
- version: 13.0.6
251
+ version: '13.1'
267
252
  type: :development
268
253
  prerelease: false
269
254
  version_requirements: !ruby/object:Gem::Requirement
270
255
  requirements:
271
256
  - - "~>"
272
257
  - !ruby/object:Gem::Version
273
- version: '13.0'
274
- - - ">="
275
- - !ruby/object:Gem::Version
276
- version: 13.0.6
258
+ version: '13.1'
277
259
  - !ruby/object:Gem::Dependency
278
260
  name: rspec
279
261
  requirement: !ruby/object:Gem::Requirement
@@ -281,9 +263,6 @@ dependencies:
281
263
  - - "~>"
282
264
  - !ruby/object:Gem::Version
283
265
  version: '3.12'
284
- - - ">="
285
- - !ruby/object:Gem::Version
286
- version: 3.12.0
287
266
  type: :development
288
267
  prerelease: false
289
268
  version_requirements: !ruby/object:Gem::Requirement
@@ -291,9 +270,6 @@ dependencies:
291
270
  - - "~>"
292
271
  - !ruby/object:Gem::Version
293
272
  version: '3.12'
294
- - - ">="
295
- - !ruby/object:Gem::Version
296
- version: 3.12.0
297
273
  - !ruby/object:Gem::Dependency
298
274
  name: rubocop
299
275
  requirement: !ruby/object:Gem::Requirement
@@ -356,14 +332,14 @@ dependencies:
356
332
  requirements:
357
333
  - - "~>"
358
334
  - !ruby/object:Gem::Version
359
- version: 2.24.1
335
+ version: 2.25.0
360
336
  type: :development
361
337
  prerelease: false
362
338
  version_requirements: !ruby/object:Gem::Requirement
363
339
  requirements:
364
340
  - - "~>"
365
341
  - !ruby/object:Gem::Version
366
- version: 2.24.1
342
+ version: 2.25.0
367
343
  - !ruby/object:Gem::Dependency
368
344
  name: simplecov
369
345
  requirement: !ruby/object:Gem::Requirement
@@ -378,46 +354,6 @@ dependencies:
378
354
  - - "~>"
379
355
  - !ruby/object:Gem::Version
380
356
  version: 0.22.0
381
- - !ruby/object:Gem::Dependency
382
- name: syntax
383
- requirement: !ruby/object:Gem::Requirement
384
- requirements:
385
- - - "~>"
386
- - !ruby/object:Gem::Version
387
- version: '1.2'
388
- - - ">="
389
- - !ruby/object:Gem::Version
390
- version: 1.2.2
391
- type: :development
392
- prerelease: false
393
- version_requirements: !ruby/object:Gem::Requirement
394
- requirements:
395
- - - "~>"
396
- - !ruby/object:Gem::Version
397
- version: '1.2'
398
- - - ">="
399
- - !ruby/object:Gem::Version
400
- version: 1.2.2
401
- - !ruby/object:Gem::Dependency
402
- name: test-unit
403
- requirement: !ruby/object:Gem::Requirement
404
- requirements:
405
- - - "~>"
406
- - !ruby/object:Gem::Version
407
- version: '3.6'
408
- - - ">="
409
- - !ruby/object:Gem::Version
410
- version: 3.6.1
411
- type: :development
412
- prerelease: false
413
- version_requirements: !ruby/object:Gem::Requirement
414
- requirements:
415
- - - "~>"
416
- - !ruby/object:Gem::Version
417
- version: '3.6'
418
- - - ">="
419
- - !ruby/object:Gem::Version
420
- version: 3.6.1
421
357
  - !ruby/object:Gem::Dependency
422
358
  name: webrick
423
359
  requirement: !ruby/object:Gem::Requirement
@@ -425,9 +361,6 @@ dependencies:
425
361
  - - "~>"
426
362
  - !ruby/object:Gem::Version
427
363
  version: '1.8'
428
- - - ">="
429
- - !ruby/object:Gem::Version
430
- version: 1.8.1
431
364
  type: :development
432
365
  prerelease: false
433
366
  version_requirements: !ruby/object:Gem::Requirement
@@ -435,69 +368,6 @@ dependencies:
435
368
  - - "~>"
436
369
  - !ruby/object:Gem::Version
437
370
  version: '1.8'
438
- - - ">="
439
- - !ruby/object:Gem::Version
440
- version: 1.8.1
441
- - !ruby/object:Gem::Dependency
442
- name: capybara
443
- requirement: !ruby/object:Gem::Requirement
444
- requirements:
445
- - - "~>"
446
- - !ruby/object:Gem::Version
447
- version: '3.39'
448
- - - ">="
449
- - !ruby/object:Gem::Version
450
- version: 3.39.2
451
- type: :development
452
- prerelease: false
453
- version_requirements: !ruby/object:Gem::Requirement
454
- requirements:
455
- - - "~>"
456
- - !ruby/object:Gem::Version
457
- version: '3.39'
458
- - - ">="
459
- - !ruby/object:Gem::Version
460
- version: 3.39.2
461
- - !ruby/object:Gem::Dependency
462
- name: rack-test
463
- requirement: !ruby/object:Gem::Requirement
464
- requirements:
465
- - - "~>"
466
- - !ruby/object:Gem::Version
467
- version: '2.1'
468
- - - ">="
469
- - !ruby/object:Gem::Version
470
- version: 2.1.0
471
- type: :development
472
- prerelease: false
473
- version_requirements: !ruby/object:Gem::Requirement
474
- requirements:
475
- - - "~>"
476
- - !ruby/object:Gem::Version
477
- version: '2.1'
478
- - - ">="
479
- - !ruby/object:Gem::Version
480
- version: 2.1.0
481
- - !ruby/object:Gem::Dependency
482
- name: sinatra
483
- requirement: !ruby/object:Gem::Requirement
484
- requirements:
485
- - - "~>"
486
- - !ruby/object:Gem::Version
487
- version: '3.1'
488
- - - ">="
489
- - !ruby/object:Gem::Version
490
- version: 3.1.0
491
- type: :development
492
- prerelease: false
493
- version_requirements: !ruby/object:Gem::Requirement
494
- requirements:
495
- - - "~>"
496
- - !ruby/object:Gem::Version
497
- version: '3.1'
498
- - - ">="
499
- - !ruby/object:Gem::Version
500
- version: 3.1.0
501
371
  description: Behaviour Driven Development with elegance and joy
502
372
  email: cukes@googlegroups.com
503
373
  executables:
@@ -509,14 +379,6 @@ files:
509
379
  - README.md
510
380
  - VERSION
511
381
  - bin/cucumber
512
- - lib/autotest/cucumber.rb
513
- - lib/autotest/cucumber_mixin.rb
514
- - lib/autotest/cucumber_rails.rb
515
- - lib/autotest/cucumber_rails_rspec.rb
516
- - lib/autotest/cucumber_rails_rspec2.rb
517
- - lib/autotest/cucumber_rspec.rb
518
- - lib/autotest/cucumber_rspec2.rb
519
- - lib/autotest/discover.rb
520
382
  - lib/cucumber.rb
521
383
  - lib/cucumber/cli/configuration.rb
522
384
  - lib/cucumber/cli/main.rb
@@ -667,5 +529,5 @@ requirements: []
667
529
  rubygems_version: 3.3.5
668
530
  signing_key:
669
531
  specification_version: 4
670
- summary: cucumber-9.1.0
532
+ summary: cucumber-9.1.1
671
533
  test_files: []
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'autotest'
4
- require 'autotest/cucumber_mixin'
5
-
6
- class Autotest::Cucumber < Autotest
7
- include CucumberMixin
8
- end
@@ -1,133 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'autotest'
4
- require 'tempfile'
5
- require 'cucumber'
6
- require 'cucumber/cli/profile_loader'
7
-
8
- module Autotest::CucumberMixin
9
- def self.included(receiver)
10
- receiver::ALL_HOOKS << %i[run_features ran_features]
11
- end
12
-
13
- attr_accessor :features_to_run
14
-
15
- def initialize
16
- super
17
- reset_features
18
- end
19
-
20
- def run
21
- hook :initialize
22
- reset
23
- reset_features
24
- add_sigint_handler
25
-
26
- loop do # ^c handler
27
- wait_for_green
28
- if tainted
29
- rerun_all_tests
30
- rerun_all_features if all_good
31
- else
32
- hook :all_good
33
- end
34
- wait_for_changes
35
- # Once tests and features are green, reset features every
36
- # time a file is changed to see if anything breaks.
37
- reset_features
38
- rescue Interrupt
39
- break if wants_to_quit
40
-
41
- reset
42
- reset_features
43
- end
44
- hook :quit
45
- end
46
-
47
- def all_features_good
48
- features_to_run == ''
49
- end
50
-
51
- def wait_for_green
52
- loop do
53
- super
54
- run_features
55
- wait_for_changes unless all_features_good
56
- break if all_features_good
57
- end
58
- end
59
-
60
- def rerun_all_features
61
- reset_features
62
- run_features
63
- end
64
-
65
- def reset_features
66
- self.features_to_run = :all
67
- end
68
-
69
- def run_features
70
- hook :run_features
71
- Tempfile.open('autotest-cucumber') do |dirty_features_file|
72
- cmd = make_cucumber_cmd(features_to_run, dirty_features_file.path)
73
- break if cmd.empty?
74
-
75
- old_sync = $stdout.sync
76
- $stdout.sync = true
77
- self.results = []
78
- line = []
79
- begin
80
- open("| #{cmd}", 'r') do |f| # rubocop:disable Security/Open
81
- until f.eof?
82
- c = f.getc || break
83
- print(c)
84
- line << c
85
- next unless c == "\n"
86
-
87
- results << line.join
88
- line.clear
89
- end
90
- end
91
- ensure
92
- $stdout.sync = old_sync
93
- end
94
- self.features_to_run = dirty_features_file.read.strip
95
- self.tainted = true unless features_to_run == ''
96
- end
97
- hook :ran_features
98
- end
99
-
100
- def make_cucumber_cmd(features_to_run, _dirty_features_filename)
101
- return '' if features_to_run.empty?
102
-
103
- profile_loader = Cucumber::Cli::ProfileLoader.new
104
-
105
- profile = profile(profile_loader)
106
-
107
- args = created_args(features_to_run, profile)
108
-
109
- "#{Cucumber::RUBY_BINARY} #{Cucumber::BINARY} #{args}"
110
- end
111
-
112
- def profile(profile_loader)
113
- profile ||= 'autotest-all' if profile_loader.profile?('autotest-all') && features_to_run == :all
114
- profile ||= 'autotest' if profile_loader.profile?('autotest')
115
- profile || nil
116
- end
117
-
118
- def created_args(features_to_run, profile)
119
- args = if profile
120
- ['--profile', profile]
121
- else
122
- %w[--format] << (features_to_run == :all ? 'progress' : 'pretty')
123
- end
124
- # No --color option as some IDEs (Netbeans) don't output them very well (1 failed step)
125
- args += %w[--format rerun --out] << dirty_features_filename
126
- args << (features_to_run == :all ? '' : features_to_run)
127
-
128
- # All steps becom undefined during rerun unless the following is run.
129
- args << 'features/step_definitions' << 'features/support' unless features_to_run == :all
130
-
131
- args.join(' ')
132
- end
133
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'autotest/rails'
4
- require 'autotest/cucumber_mixin'
5
-
6
- class Autotest::CucumberRails < Autotest::Rails
7
- include CucumberMixin
8
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'autotest/cucumber_mixin'
4
- require 'autotest/rails_rspec'
5
-
6
- class Autotest::CucumberRailsRspec < Autotest::RailsRspec
7
- include CucumberMixin
8
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'autotest/cucumber_mixin'
4
- require 'autotest/rails_rspec2'
5
-
6
- class Autotest::CucumberRailsRspec2 < Autotest::RailsRspec2
7
- include CucumberMixin
8
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'autotest/cucumber_mixin'
4
- require 'autotest/rspec'
5
-
6
- class Autotest::CucumberRspec < Autotest::Rspec
7
- include CucumberMixin
8
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'autotest/cucumber_mixin'
4
- require 'autotest/rspec2'
5
-
6
- class Autotest::CucumberRspec2 < Autotest::Rspec2
7
- include CucumberMixin
8
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Autotest.add_discovery do
4
- if File.directory?('features')
5
- case ENV['AUTOFEATURE']
6
- when /true/i
7
- 'cucumber'
8
- when /false/i
9
- # noop
10
- else
11
- puts '(Not running features. To run features in autotest, set AUTOFEATURE=true.)'
12
- end
13
- end
14
- end