cucumber 9.1.1 → 9.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81294b0304068bde0d87c31fc0d58451d79a59c73bc743bf4ea282dcf5c2ba2c
4
- data.tar.gz: 9f8e3297cfd2fdf1f977a1e748abf2a2cd08f742709884042d56213ab4ff6499
3
+ metadata.gz: d937b723774ea37f4739f86d3888163faec44b5e815b344c3cb7c8cd2dae8b42
4
+ data.tar.gz: e7cc47f9e50d7d355baacc10594db8e93b7a3dc961a8b43417c21e11a664929d
5
5
  SHA512:
6
- metadata.gz: 380511f8909d71467d326c13510820ed9e16517c4aaf68e3bcc6bf14a9a7e9588060e04238e970a1e4d37ed8dd4b725347c4153dd12357dae2c7ffcf548e6949
7
- data.tar.gz: 3ee41bcacdfb4b040cd5cab60c3c94c5a7fcb533b06fc73d2a58e49aa12652b0e834298931425e537ef15b51f528a4469c833044dc577e277374175a9fbdbacc
6
+ metadata.gz: 104816fd17fed2d4302d43ecfe1d72465a0b863cf79f449ecc44c25bcc6fe8c00824f0f07014fa0b3986f1476f3ab490c5bb36f9f6b9676715e342682d4c3c40
7
+ data.tar.gz: 06cdb6fd33a1347415e85590658a0972243798bf653eb3b2a23bc65b5d2d25fccf39b48e85024d2b58ad3868d86f05630a77c719dd6b244def9741eb04736ced
data/VERSION CHANGED
@@ -1 +1 @@
1
- 9.1.1
1
+ 9.1.2
@@ -12,26 +12,26 @@ module Cucumber
12
12
  CUCUMBER_PUBLISH_URL = ENV['CUCUMBER_PUBLISH_URL'] || 'https://messages.cucumber.io/api/reports -X GET'
13
13
  INDENT = ' ' * 53
14
14
  BUILTIN_FORMATS = {
15
- 'pretty' => ['Cucumber::Formatter::Pretty', 'Prints the feature as is - in colours.'],
16
- 'progress' => ['Cucumber::Formatter::Progress', 'Prints one character per scenario.'],
17
- 'rerun' => ['Cucumber::Formatter::Rerun', 'Prints failing files with line numbers.'],
18
- 'usage' => ['Cucumber::Formatter::Usage', "Prints where step definitions are used.\n" \
19
- "#{INDENT}The slowest step definitions (with duration) are\n" \
20
- "#{INDENT}listed first. If --dry-run is used the duration\n" \
21
- "#{INDENT}is not shown, and step definitions are sorted by\n" \
22
- "#{INDENT}filename instead."],
23
- 'stepdefs' => ['Cucumber::Formatter::Stepdefs', "Prints All step definitions with their locations. Same as\n" \
24
- "#{INDENT}the usage formatter, except that steps are not printed."],
25
- 'junit' => ['Cucumber::Formatter::Junit', "Generates a report similar to Ant+JUnit. Use\n" \
26
- "#{INDENT}junit,fileattribute=true to include a file attribute."],
27
- 'json' => ['Cucumber::Formatter::Json', "Prints the feature as JSON.\n" \
28
- "#{INDENT}The JSON format is in maintenance mode.\n" \
29
- "#{INDENT}Please consider using the message formatter\n"\
30
- "#{INDENT}with the standalone json-formatter\n" \
31
- "#{INDENT}(https://github.com/cucumber/cucumber/tree/master/json-formatter)."],
32
- 'message' => ['Cucumber::Formatter::Message', 'Prints each message in NDJSON form, which can then be consumed by other tools.'],
33
- 'html' => ['Cucumber::Formatter::HTML', 'Outputs HTML report'],
34
- 'summary' => ['Cucumber::Formatter::Summary', 'Summary output of feature and scenarios']
15
+ 'pretty' => ['Cucumber::Formatter::Pretty', 'Prints the feature as is - in colours.'],
16
+ 'progress' => ['Cucumber::Formatter::Progress', 'Prints one character per scenario.'],
17
+ 'rerun' => ['Cucumber::Formatter::Rerun', 'Prints failing files with line numbers.'],
18
+ 'usage' => ['Cucumber::Formatter::Usage', "Prints where step definitions are used.\n" \
19
+ "#{INDENT}The slowest step definitions (with duration) are\n" \
20
+ "#{INDENT}listed first. If --dry-run is used the duration\n" \
21
+ "#{INDENT}is not shown, and step definitions are sorted by\n" \
22
+ "#{INDENT}filename instead."],
23
+ 'stepdefs' => ['Cucumber::Formatter::Stepdefs', "Prints All step definitions with their locations. Same as\n" \
24
+ "#{INDENT}the usage formatter, except that steps are not printed."],
25
+ 'junit' => ['Cucumber::Formatter::Junit', "Generates a report similar to Ant+JUnit. Use\n" \
26
+ "#{INDENT}junit,fileattribute=true to include a file attribute."],
27
+ 'json' => ['Cucumber::Formatter::Json', "Prints the feature as JSON.\n" \
28
+ "#{INDENT}The JSON format is in maintenance mode.\n" \
29
+ "#{INDENT}Please consider using the message formatter\n"\
30
+ "#{INDENT}with the standalone json-formatter\n" \
31
+ "#{INDENT}(https://github.com/cucumber/cucumber/tree/master/json-formatter)."],
32
+ 'message' => ['Cucumber::Formatter::Message', 'Prints each message in NDJSON form, which can then be consumed by other tools.'],
33
+ 'html' => ['Cucumber::Formatter::HTML', 'Outputs HTML report'],
34
+ 'summary' => ['Cucumber::Formatter::Summary', 'Summary output of feature and scenarios']
35
35
  }.freeze
36
36
  max = BUILTIN_FORMATS.keys.map(&:length).max
37
37
  FORMAT_HELP_MSG = [
@@ -295,9 +295,9 @@ module Cucumber
295
295
  ]
296
296
  end
297
297
 
298
- def parse_formats(v)
299
- formatter, *formatter_options = v.split(',')
300
- options_hash = Hash[formatter_options.map { |s| s.split('=') }]
298
+ def parse_formats(value)
299
+ formatter, *formatter_options = value.split(',')
300
+ options_hash = Hash[formatter_options.map { |string| string.split('=') }]
301
301
  [formatter, options_hash]
302
302
  end
303
303
 
@@ -375,12 +375,12 @@ module Cucumber
375
375
  ].join("\n")
376
376
  end
377
377
 
378
- def require_files(v)
379
- @options[:require] << v
380
- return unless Cucumber::JRUBY && File.directory?(v)
378
+ def require_files(filenames)
379
+ @options[:require] << filenames
380
+ return unless Cucumber::JRUBY && File.directory?(filenames)
381
381
 
382
382
  require 'java'
383
- $CLASSPATH << v
383
+ $CLASSPATH << filenames
384
384
  end
385
385
 
386
386
  def require_jars(jars)
@@ -441,8 +441,8 @@ module Cucumber
441
441
  ProjectInitializer.new.run && Kernel.exit(0)
442
442
  end
443
443
 
444
- def add_profile(p)
445
- @profiles << p
444
+ def add_profile(profile)
445
+ @profiles << profile
446
446
  end
447
447
 
448
448
  def set_option(option, value = nil)
@@ -63,7 +63,6 @@ module Cucumber
63
63
  module ANSIColor
64
64
  include Cucumber::Term::ANSIColor
65
65
 
66
- # :stopdoc:
67
66
  ALIASES = Hash.new do |h, k|
68
67
  next unless k.to_s =~ /(.*)_param/
69
68
 
@@ -79,13 +78,8 @@ module Cucumber
79
78
  'comment' => 'grey',
80
79
  'tag' => 'cyan'
81
80
  )
82
- # :startdoc:
83
81
 
84
- # Apply the custom color scheme
85
- #
86
- # example:
87
- #
88
- # apply_custom_colors('passed=white')
82
+ # Apply the custom color scheme -> i.e. apply_custom_colors('passed=white')
89
83
  def self.apply_custom_colors(colors)
90
84
  colors.split(':').each do |pair|
91
85
  a = pair.split('=')
@@ -117,23 +111,21 @@ module Cucumber
117
111
  end
118
112
  end
119
113
 
120
- # :stopdoc:
121
- def cukes(n)
122
- ('(::) ' * n).strip
114
+ def cukes(amount)
115
+ ('(::) ' * amount).strip
123
116
  end
124
117
 
125
- def green_cukes(n)
126
- blink(green(cukes(n)))
118
+ def green_cukes(amount)
119
+ blink(green(cukes(amount)))
127
120
  end
128
121
 
129
- def red_cukes(n)
130
- blink(red(cukes(n)))
122
+ def red_cukes(amount)
123
+ blink(red(cukes(amount)))
131
124
  end
132
125
 
133
- def yellow_cukes(n)
134
- blink(yellow(cukes(n)))
126
+ def yellow_cukes(amount)
127
+ blink(yellow(cukes(amount)))
135
128
  end
136
- # :startdoc:
137
129
 
138
130
  private
139
131
 
@@ -43,9 +43,9 @@ module Cucumber
43
43
  format_string(line, status)
44
44
  end
45
45
 
46
- def format_string(o, status)
46
+ def format_string(input, status)
47
47
  fmt = format_for(status)
48
- o.to_s.split("\n").map do |line|
48
+ input.to_s.split("\n").map do |line|
49
49
  if fmt.instance_of?(Proc)
50
50
  fmt.call(line)
51
51
  else
@@ -92,16 +92,16 @@ module Cucumber
92
92
  @io.flush
93
93
  end
94
94
 
95
- def print_exception(e, status, indent)
96
- string = exception_message_string(e, indent)
95
+ def print_exception(exception, status, indent)
96
+ string = exception_message_string(exception, indent)
97
97
  @io.puts(format_string(string, status))
98
98
  end
99
99
 
100
- def exception_message_string(e, indent_amount)
101
- message = "#{e.message} (#{e.class})".dup.force_encoding('UTF-8')
100
+ def exception_message_string(exception, indent_amount)
101
+ message = "#{exception.message} (#{exception.class})".dup.force_encoding('UTF-8')
102
102
  message = linebreaks(message, ENV['CUCUMBER_TRUNCATE_OUTPUT'].to_i)
103
103
 
104
- indent("#{message}\n#{e.backtrace.join("\n")}", indent_amount)
104
+ indent("#{message}\n#{exception.backtrace.join("\n")}", indent_amount)
105
105
  end
106
106
 
107
107
  # http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/10655
@@ -102,7 +102,7 @@ module Cucumber
102
102
  private
103
103
 
104
104
  def same_feature_as_previous_test_case?(test_case)
105
- current_feature[:uri] == test_case.location.file
105
+ @feature_hash&.fetch(:uri, nil) == test_case.location.file
106
106
  end
107
107
 
108
108
  def first_step_after_background?(test_step)
@@ -113,10 +113,6 @@ module Cucumber
113
113
  test_step.location.file.include?('lib/cucumber/')
114
114
  end
115
115
 
116
- def current_feature
117
- @feature_hash ||= {}
118
- end
119
-
120
116
  def feature_elements
121
117
  @feature_hash[:elements] ||= []
122
118
  end
@@ -71,7 +71,7 @@ module Cucumber
71
71
  end
72
72
 
73
73
  def on_test_run_finished(_event)
74
- @features_data.each { |_file, data| end_feature(data) }
74
+ @features_data.each_value { |data| end_feature(data) }
75
75
  end
76
76
 
77
77
  private
@@ -132,7 +132,7 @@ module Cucumber
132
132
  @step_definitions_by_test_step.step_match_arguments(step).map do |argument|
133
133
  Cucumber::Messages::StepMatchArgument.new(
134
134
  group: argument_group_to_message(argument.group),
135
- parameter_type_name: argument.parameter_type.name
135
+ parameter_type_name: parameter_type_name(argument)
136
136
  )
137
137
  end
138
138
  end
@@ -145,6 +145,10 @@ module Cucumber
145
145
  )
146
146
  end
147
147
 
148
+ def parameter_type_name(step_match_argument)
149
+ step_match_argument.parameter_type&.name if step_match_argument.respond_to?(:parameter_type)
150
+ end
151
+
148
152
  def on_test_run_started(*)
149
153
  message = Cucumber::Messages::Envelope.new(
150
154
  test_run_started: Cucumber::Messages::TestRunStarted.new(
@@ -5,8 +5,7 @@ module Cucumber
5
5
  module Formatter
6
6
  # Defines aliases for ANSI coloured output. Default colours can be overridden by defining
7
7
  # a <tt>GHERKIN_COLORS</tt> variable in your shell, very much like how you can
8
- # tweak the familiar POSIX command <tt>ls</tt> with
9
- # $LSCOLORS: http://linux-sxs.org/housekeeping/lscolors.html
8
+ # tweak the familiar POSIX command <tt>ls</tt> with $LSCOLORS: http://linux-sxs.org/housekeeping/lscolors.html
10
9
  #
11
10
  # The colours that you can change are:
12
11
  #
@@ -87,8 +86,8 @@ module Cucumber
87
86
  "\e[0m"
88
87
  end
89
88
 
90
- def up(n)
91
- "\e[#{n}A"
89
+ def up(amount)
90
+ "\e[#{amount}A"
92
91
  end
93
92
  end
94
93
  end
@@ -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
30
+ def self.default_arg_name
31
31
  'table'
32
32
  end
33
33
 
@@ -200,7 +200,7 @@ module Cucumber
200
200
 
201
201
  def rows
202
202
  hashes.map do |hash|
203
- hash.values_at *headers
203
+ hash.values_at(*headers)
204
204
  end
205
205
  end
206
206
 
@@ -354,11 +354,11 @@ module Cucumber
354
354
  cells_rows.index(cells)
355
355
  end
356
356
 
357
- def verify_column(column_name)
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)
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
 
@@ -384,17 +384,17 @@ module Cucumber
384
384
 
385
385
  attr_reader :cell_matrix
386
386
 
387
- def col_width(col)
387
+ def col_width(col)
388
388
  columns[col].__send__(:width)
389
389
  end
390
390
 
391
- def to_s(options = {})
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
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
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)
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!
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!
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!
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)
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
519
+ class Cells
520
520
  include Enumerable
521
521
  include Cucumber::Gherkin::Formatter::Escaping
522
522
 
@@ -536,21 +536,20 @@ module Cucumber
536
536
  nil
537
537
  end
538
538
 
539
- # For testing only
540
- def to_sexp
539
+ def to_sexp
541
540
  [:row, line, *@cells.map(&:to_sexp)]
542
541
  end
543
542
 
544
- def to_hash
543
+ def to_hash
545
544
  @to_hash ||= @table.cells_to_hash(self)
546
545
  end
547
546
 
548
- def value(n)
549
- self[n].value
547
+ def value(index)
548
+ self[index].value
550
549
  end
551
550
 
552
- def [](n)
553
- @cells[n]
551
+ def [](index)
552
+ @cells[index]
554
553
  end
555
554
 
556
555
  def line
@@ -576,7 +575,7 @@ module Cucumber
576
575
  end
577
576
  end
578
577
 
579
- class Cell
578
+ class Cell
580
579
  attr_reader :line, :table
581
580
  attr_accessor :status, :value
582
581
 
@@ -603,12 +602,12 @@ module Cucumber
603
602
  end
604
603
 
605
604
  # For testing only
606
- def to_sexp
605
+ def to_sexp
607
606
  [:cell, @value]
608
607
  end
609
608
  end
610
609
 
611
- class SurplusCell < Cell
610
+ class SurplusCell < Cell
612
611
  def status
613
612
  :comment
614
613
  end
@@ -50,7 +50,7 @@ module Cucumber
50
50
  end
51
51
 
52
52
  def source_tag_names
53
- tags.map &:name
53
+ tags.map(&:name)
54
54
  end
55
55
 
56
56
  def with_result(result)
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.1
4
+ version: 9.1.2
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: 2024-01-04 00:00:00.000000000 Z
13
+ date: 2024-01-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: builder
@@ -220,14 +220,14 @@ dependencies:
220
220
  requirements:
221
221
  - - "~>"
222
222
  - !ruby/object:Gem::Version
223
- version: '14.1'
223
+ version: '15.0'
224
224
  type: :development
225
225
  prerelease: false
226
226
  version_requirements: !ruby/object:Gem::Requirement
227
227
  requirements:
228
228
  - - "~>"
229
229
  - !ruby/object:Gem::Version
230
- version: '14.1'
230
+ version: '15.0'
231
231
  - !ruby/object:Gem::Dependency
232
232
  name: nokogiri
233
233
  requirement: !ruby/object:Gem::Requirement
@@ -529,5 +529,5 @@ requirements: []
529
529
  rubygems_version: 3.3.5
530
530
  signing_key:
531
531
  specification_version: 4
532
- summary: cucumber-9.1.1
532
+ summary: cucumber-9.1.2
533
533
  test_files: []