cucumber 3.1.1 → 3.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -19
- data/lib/cucumber/cli/options.rb +15 -15
- data/lib/cucumber/configuration.rb +7 -7
- data/lib/cucumber/events/gherkin_source_parsed.rb~ +14 -0
- data/lib/cucumber/filters/retry.rb +1 -1
- data/lib/cucumber/formatter/ast_lookup.rb~ +9 -0
- data/lib/cucumber/formatter/console.rb +2 -2
- data/lib/cucumber/formatter/html.rb +3 -3
- data/lib/cucumber/formatter/json.rb +1 -1
- data/lib/cucumber/formatter/pretty.rb +2 -2
- data/lib/cucumber/formatter/unicode.rb +1 -1
- data/lib/cucumber/formatter/usage.rb +4 -4
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +2 -2
- data/lib/cucumber/glue/registry_and_more.rb +2 -2
- data/lib/cucumber/multiline_argument/data_table.rb +2 -2
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +7 -7
- data/lib/cucumber/rake/task.rb +3 -3
- data/lib/cucumber/runtime.rb +1 -1
- data/lib/cucumber/step_match.rb +1 -1
- data/lib/cucumber/step_match_search.rb +6 -6
- data/lib/cucumber/version +1 -1
- metadata +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fef34be35b9337e5d78fe68a0b9e642e96a5bc8e
|
4
|
+
data.tar.gz: 5331fac4008b678c3bdc18ec18f4df77e3e67bfb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 560857486693d265017f21421942be4bc737f852d2972cd5a76c93f678ffe4ac06a0fd58e91f52b7ccb2d5c63156c2af13cb2e11e2bdaf9e194e516ddd663387
|
7
|
+
data.tar.gz: e3ecdbb8d5a93e5e20d0e72a46be9ccb10021b12caa7d023cd3f16e845882331231764fb772cf7d1935c4db724166dbbe3eb40bbda33a4a84760ff7bd296e54a
|
data/CHANGELOG.md
CHANGED
@@ -10,31 +10,21 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
|
|
10
10
|
|
11
11
|
----
|
12
12
|
|
13
|
-
## [
|
14
|
-
|
15
|
-
### Added
|
16
|
-
|
17
|
-
* N/A
|
13
|
+
## [3.1.2](https://github.com/cucumber/cucumber-ruby/compare/v3.1.1...v3.1.2) (2018-07-13)
|
18
14
|
|
19
15
|
### Changed
|
20
16
|
|
21
|
-
*
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
### Removed
|
28
|
-
|
29
|
-
* N/A
|
17
|
+
* Upgraded to `cucumber-core` 3.2.0
|
18
|
+
* Change to use the gherkin step location in the Json formatter.
|
19
|
+
([#1243](https://github.com/cucumber/cucumber-ruby/pull/1243),
|
20
|
+
[#1108](https://github.com/cucumber/cucumber-ruby/issues/1108)
|
21
|
+
[brasmusson](https://github.com/brasmusson))
|
30
22
|
|
31
23
|
### Fixed
|
32
24
|
|
33
|
-
*
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
* N/A
|
25
|
+
* Support ParameterType with empty capture group.
|
26
|
+
([#404](https://github.com/cucumber/cucumber/issues/404)
|
27
|
+
[aslakhellesoy](https://github.com/aslakhellesoy))
|
38
28
|
|
39
29
|
## [3.1.1](https://github.com/cucumber/cucumber-ruby/compare/v3.1.0...v3.1.1) (2018-06-03)
|
40
30
|
|
data/lib/cucumber/cli/options.rb
CHANGED
@@ -95,32 +95,32 @@ module Cucumber
|
|
95
95
|
|
96
96
|
@args.options do |opts|
|
97
97
|
opts.banner = banner
|
98
|
-
opts.on('-r LIBRARY|DIR', '--require LIBRARY|DIR', *require_files_msg) {|lib| require_files(lib) }
|
98
|
+
opts.on('-r LIBRARY|DIR', '--require LIBRARY|DIR', *require_files_msg) { |lib| require_files(lib) }
|
99
99
|
|
100
100
|
if Cucumber::JRUBY
|
101
|
-
opts.on('-j DIR', '--jars DIR', 'Load all the jars under DIR') {|jars| load_jars(jars) }
|
101
|
+
opts.on('-j DIR', '--jars DIR', 'Load all the jars under DIR') { |jars| load_jars(jars) }
|
102
102
|
end
|
103
103
|
|
104
|
-
opts.on("#{RETRY_FLAG} ATTEMPTS", *retry_msg) {|v| set_option :retry, v.to_i }
|
104
|
+
opts.on("#{RETRY_FLAG} ATTEMPTS", *retry_msg) { |v| set_option :retry, v.to_i }
|
105
105
|
opts.on('--i18n-languages', *i18n_languages_msg) { list_languages_and_exit }
|
106
|
-
opts.on('--i18n-keywords LANG', *i18n_keywords_msg) {|lang| language lang }
|
106
|
+
opts.on('--i18n-keywords LANG', *i18n_keywords_msg) { |lang| language lang }
|
107
107
|
opts.on(FAIL_FAST_FLAG, 'Exit immediately following the first failing scenario') { set_option :fail_fast }
|
108
108
|
opts.on('-f FORMAT', '--format FORMAT', *format_msg, *FORMAT_HELP) do |v|
|
109
109
|
add_option :formats, [*parse_formats(v), @out_stream]
|
110
110
|
end
|
111
|
-
opts.on('--init', *init_msg) {|v| initialize_project }
|
112
|
-
opts.on('-o', '--out [FILE|DIR]', *out_msg) {|v| out_stream v }
|
113
|
-
opts.on('-t TAG_EXPRESSION', '--tags TAG_EXPRESSION', *tags_msg) {|v| add_tag v }
|
114
|
-
opts.on('-n NAME', '--name NAME', *name_msg) {|v| add_option :name_regexps, /#{v}/ }
|
115
|
-
opts.on('-e', '--exclude PATTERN', *exclude_msg) {|v| add_option :excludes, Regexp.new(v) }
|
116
|
-
opts.on(PROFILE_SHORT_FLAG, "#{PROFILE_LONG_FLAG} PROFILE", *profile_short_flag_msg) {|v| add_profile v }
|
117
|
-
opts.on(NO_PROFILE_SHORT_FLAG, NO_PROFILE_LONG_FLAG, *no_profile_short_flag_msg) {|v| disable_profile_loading }
|
118
|
-
opts.on('-c', '--[no-]color', *color_msg) {|v| color v }
|
111
|
+
opts.on('--init', *init_msg) { |v| initialize_project }
|
112
|
+
opts.on('-o', '--out [FILE|DIR]', *out_msg) { |v| out_stream v }
|
113
|
+
opts.on('-t TAG_EXPRESSION', '--tags TAG_EXPRESSION', *tags_msg) { |v| add_tag v }
|
114
|
+
opts.on('-n NAME', '--name NAME', *name_msg) { |v| add_option :name_regexps, /#{v}/ }
|
115
|
+
opts.on('-e', '--exclude PATTERN', *exclude_msg) { |v| add_option :excludes, Regexp.new(v) }
|
116
|
+
opts.on(PROFILE_SHORT_FLAG, "#{PROFILE_LONG_FLAG} PROFILE", *profile_short_flag_msg) { |v| add_profile v }
|
117
|
+
opts.on(NO_PROFILE_SHORT_FLAG, NO_PROFILE_LONG_FLAG, *no_profile_short_flag_msg) { |v| disable_profile_loading }
|
118
|
+
opts.on('-c', '--[no-]color', *color_msg) { |v| color v }
|
119
119
|
opts.on('-d', '--dry-run', *dry_run_msg) { set_dry_run_and_duration }
|
120
120
|
opts.on('-m', '--no-multiline', "Don't print multiline strings and tables under steps.") { set_option :no_multiline }
|
121
121
|
opts.on('-s', '--no-source', "Don't print the file and line of the step definition with the steps.") { set_option :source, false }
|
122
122
|
opts.on('-i', '--no-snippets', "Don't print snippets for pending steps.") { set_option :snippets, false }
|
123
|
-
opts.on('-I', '--snippet-type TYPE', *snippet_type_msg) {|v| set_option :snippet_type, v.to_sym }
|
123
|
+
opts.on('-I', '--snippet-type TYPE', *snippet_type_msg) { |v| set_option :snippet_type, v.to_sym }
|
124
124
|
opts.on('-q', '--quiet', 'Alias for --no-snippets --no-source.') { shut_up }
|
125
125
|
opts.on('--no-duration', "Don't print the duration at the end of the summary") { set_option :duration, false }
|
126
126
|
opts.on('-b', '--backtrace', 'Show full backtrace for all errors.') { Cucumber.use_full_backtrace = true }
|
@@ -131,7 +131,7 @@ module Cucumber
|
|
131
131
|
opts.on('-w', '--wip', 'Fail if there are any passing scenarios.') { set_option :wip }
|
132
132
|
opts.on('-v', '--verbose', 'Show the files and features loaded.') { set_option :verbose }
|
133
133
|
opts.on('-g', '--guess', 'Guess best match for Ambiguous steps.') { set_option :guess }
|
134
|
-
opts.on('-l', '--lines LINES', *lines_msg) {|lines| set_option :lines, lines }
|
134
|
+
opts.on('-l', '--lines LINES', *lines_msg) { |lines| set_option :lines, lines }
|
135
135
|
opts.on('-x', '--expand', 'Expand Scenario Outline Tables in output.') { set_option :expand }
|
136
136
|
|
137
137
|
opts.on('--order TYPE[:SEED]', 'Run examples in the specified order. Available types:',
|
@@ -351,7 +351,7 @@ TEXT
|
|
351
351
|
end
|
352
352
|
|
353
353
|
def require_jars(jars)
|
354
|
-
Dir["#{jars}/**/*.jar"].each {|jar| require jar}
|
354
|
+
Dir["#{jars}/**/*.jar"].each { |jar| require jar }
|
355
355
|
end
|
356
356
|
|
357
357
|
def language(lang)
|
@@ -167,8 +167,8 @@ module Cucumber
|
|
167
167
|
end
|
168
168
|
|
169
169
|
def support_to_load
|
170
|
-
support_files = all_files_to_load.select {|f| f =~ %r{/support/} }
|
171
|
-
env_files = support_files.select {|f| f =~ %r{/support/env\..*} }
|
170
|
+
support_files = all_files_to_load.select { |f| f =~ %r{/support/} }
|
171
|
+
env_files = support_files.select { |f| f =~ %r{/support/env\..*} }
|
172
172
|
other_files = support_files - env_files
|
173
173
|
@options[:dry_run] ? other_files : env_files + other_files
|
174
174
|
end
|
@@ -180,14 +180,14 @@ module Cucumber
|
|
180
180
|
File.directory?(path) ? Dir["#{path}/**/*"] : path
|
181
181
|
end.flatten.uniq
|
182
182
|
remove_excluded_files_from(files)
|
183
|
-
files.reject! {|f| !File.file?(f)}
|
184
|
-
files.reject! {|f| File.extname(f) == '.feature' }
|
185
|
-
files.reject! {|f| f =~ /^http/}
|
183
|
+
files.reject! { |f| !File.file?(f) }
|
184
|
+
files.reject! { |f| File.extname(f) == '.feature' }
|
185
|
+
files.reject! { |f| f =~ /^http/ }
|
186
186
|
files.sort
|
187
187
|
end
|
188
188
|
|
189
189
|
def step_defs_to_load
|
190
|
-
all_files_to_load.reject {|f| f =~ %r{/support/} }
|
190
|
+
all_files_to_load.reject { |f| f =~ %r{/support/} }
|
191
191
|
end
|
192
192
|
|
193
193
|
def formatter_factories
|
@@ -272,7 +272,7 @@ module Cucumber
|
|
272
272
|
end
|
273
273
|
|
274
274
|
def remove_excluded_files_from(files)
|
275
|
-
files.reject! {|path| @options[:excludes].detect {|pattern| path =~ pattern } }
|
275
|
+
files.reject! { |path| @options[:excludes].detect { |pattern| path =~ pattern } }
|
276
276
|
end
|
277
277
|
|
278
278
|
def require_dirs
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'cucumber/core/events'
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module Events
|
5
|
+
# Fired after we've read in the contents of a feature file
|
6
|
+
class GherkinSourceRead < Core::Event.new(:path, :body)
|
7
|
+
# The path to the file
|
8
|
+
attr_reader :path
|
9
|
+
|
10
|
+
# The raw Gherkin source
|
11
|
+
attr_reader :body
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -111,7 +111,7 @@ module Cucumber
|
|
111
111
|
# http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/10655
|
112
112
|
def linebreaks(s, max)
|
113
113
|
return s unless max && max > 0
|
114
|
-
s.gsub(/.{1,#{max}}(?:\s|\Z)/) {($& + 5.chr).gsub(/\n\005/, "\n").gsub(/\005/, "\n")}.rstrip
|
114
|
+
s.gsub(/.{1,#{max}}(?:\s|\Z)/) { ($& + 5.chr).gsub(/\n\005/, "\n").gsub(/\005/, "\n") }.rstrip
|
115
115
|
end
|
116
116
|
|
117
117
|
def collect_snippet_data(test_step, result)
|
@@ -182,7 +182,7 @@ module Cucumber
|
|
182
182
|
end
|
183
183
|
|
184
184
|
def print_messages
|
185
|
-
@delayed_messages.each {|message| print_message(message)}
|
185
|
+
@delayed_messages.each { |message| print_message(message) }
|
186
186
|
empty_messages
|
187
187
|
end
|
188
188
|
|
@@ -464,7 +464,7 @@ module Cucumber
|
|
464
464
|
end
|
465
465
|
|
466
466
|
def build_step(keyword, step_match, _status)
|
467
|
-
step_name = step_match.format_args(lambda {|param| %{<span class="param">#{param}</span>}})
|
467
|
+
step_name = step_match.format_args(lambda { |param| %{<span class="param">#{param}</span>} })
|
468
468
|
builder.div(:class => 'step_name') do |div|
|
469
469
|
builder.span(keyword, :class => 'keyword')
|
470
470
|
builder.span(:class => 'step val') do |name|
|
@@ -528,11 +528,11 @@ module Cucumber
|
|
528
528
|
def print_stat_string(_features)
|
529
529
|
string = String.new
|
530
530
|
string << dump_count(@runtime.scenarios.length, 'scenario')
|
531
|
-
scenario_count = print_status_counts {|status| @runtime.scenarios(status)}
|
531
|
+
scenario_count = print_status_counts { |status| @runtime.scenarios(status) }
|
532
532
|
string << scenario_count if scenario_count
|
533
533
|
string << '<br />'
|
534
534
|
string << dump_count(@runtime.steps.length, 'step')
|
535
|
-
step_count = print_status_counts {|status| @runtime.steps(status)}
|
535
|
+
step_count = print_status_counts { |status| @runtime.steps(status) }
|
536
536
|
string << step_count if step_count
|
537
537
|
end
|
538
538
|
|
@@ -163,7 +163,7 @@ module Cucumber
|
|
163
163
|
step_hash = {
|
164
164
|
keyword: step_source.keyword,
|
165
165
|
name: step_source.to_s,
|
166
|
-
line: step_source.
|
166
|
+
line: step_source.original_location.line
|
167
167
|
}
|
168
168
|
step_hash[:comments] = Formatter.create_comments_array(step_source.comments) unless step_source.comments.empty?
|
169
169
|
step_hash[:doc_string] = create_doc_string_hash(step_source.multiline_arg) if step_source.multiline_arg.doc_string?
|
@@ -164,7 +164,7 @@ module Cucumber
|
|
164
164
|
def doc_string(string)
|
165
165
|
return if @options[:no_multiline] || @hide_this_step
|
166
166
|
s = %{"""\n#{string}\n"""}.indent(@indent)
|
167
|
-
s = s.split("\n").map {|l| l =~ /^\s+$/ ? '' : l}.join("\n")
|
167
|
+
s = s.split("\n").map { |l| l =~ /^\s+$/ ? '' : l }.join("\n")
|
168
168
|
@io.puts(format_string(s, @current_step.status))
|
169
169
|
@io.flush
|
170
170
|
end
|
@@ -236,7 +236,7 @@ module Cucumber
|
|
236
236
|
@io.print(format_string(line_comment, :comment))
|
237
237
|
end
|
238
238
|
@io.puts
|
239
|
-
names[1..-1].each {|s| @io.puts s.to_s}
|
239
|
+
names[1..-1].each { |s| @io.puts s.to_s }
|
240
240
|
@io.flush
|
241
241
|
end
|
242
242
|
|
@@ -27,7 +27,7 @@ if Cucumber::WINDOWS
|
|
27
27
|
o.instance_eval do
|
28
28
|
def cucumber_preprocess_output(*a)
|
29
29
|
begin
|
30
|
-
a.map {|arg| arg.to_s.encode(Encoding.default_external)}
|
30
|
+
a.map { |arg| arg.to_s.encode(Encoding.default_external) }
|
31
31
|
rescue Encoding::UndefinedConversionError => e
|
32
32
|
STDERR.cucumber_puts("WARNING: #{e.message}")
|
33
33
|
a
|
@@ -64,9 +64,9 @@ module Cucumber
|
|
64
64
|
aggregate_info
|
65
65
|
|
66
66
|
keys = if config.dry_run?
|
67
|
-
@stepdef_to_match.keys.sort {|a, b| a.regexp_source <=> b.regexp_source}
|
67
|
+
@stepdef_to_match.keys.sort { |a, b| a.regexp_source <=> b.regexp_source }
|
68
68
|
else
|
69
|
-
@stepdef_to_match.keys.sort {|a, b| a.mean_duration <=> b.mean_duration}.reverse
|
69
|
+
@stepdef_to_match.keys.sort { |a, b| a.mean_duration <=> b.mean_duration }.reverse
|
70
70
|
end
|
71
71
|
|
72
72
|
keys.each do |stepdef_key|
|
@@ -112,7 +112,7 @@ module Cucumber
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def max_stepdef_length
|
115
|
-
@stepdef_to_match.keys.flatten.map {|key| key.regexp_source.unpack('U*').length}.max
|
115
|
+
@stepdef_to_match.keys.flatten.map { |key| key.regexp_source.unpack('U*').length }.max
|
116
116
|
end
|
117
117
|
|
118
118
|
def max_step_length
|
@@ -128,7 +128,7 @@ module Cucumber
|
|
128
128
|
key.mean_duration = 0
|
129
129
|
else
|
130
130
|
key.status = worst_status(steps.map { |step| step[:status] })
|
131
|
-
total_duration = steps.inject(0) {|sum, step| step[:duration] + sum}
|
131
|
+
total_duration = steps.inject(0) { |sum, step| step[:duration] + sum }
|
132
132
|
key.mean_duration = total_duration / steps.length
|
133
133
|
end
|
134
134
|
end
|
@@ -78,11 +78,11 @@ module Cucumber
|
|
78
78
|
|
79
79
|
ALIASES.keys.each do |key|
|
80
80
|
define_method(key) do
|
81
|
-
ALIASES[key].split(',').map {|color| COLORS[color]}.join('')
|
81
|
+
ALIASES[key].split(',').map { |color| COLORS[color] }.join('')
|
82
82
|
end
|
83
83
|
|
84
84
|
define_method("#{key}_arg") do
|
85
|
-
ALIASES["#{key}_arg"].split(',').map {|color| COLORS[color]}.join('')
|
85
|
+
ALIASES["#{key}_arg"].split(',').map { |color| COLORS[color] }.join('')
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
@@ -135,7 +135,7 @@ module Cucumber
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def hooks_for(phase, scenario) #:nodoc:
|
138
|
-
hooks[phase.to_sym].select {|hook| scenario.accept_hook?(hook)}
|
138
|
+
hooks[phase.to_sym].select { |hook| scenario.accept_hook?(hook) }
|
139
139
|
end
|
140
140
|
|
141
141
|
def unmatched_step_definitions
|
@@ -175,7 +175,7 @@ module Cucumber
|
|
175
175
|
end
|
176
176
|
|
177
177
|
def hooks
|
178
|
-
@hooks ||= Hash.new {|h, k| h[k] = []}
|
178
|
+
@hooks ||= Hash.new { |h, k| h[k] = [] }
|
179
179
|
end
|
180
180
|
end
|
181
181
|
|
@@ -375,7 +375,7 @@ module Cucumber
|
|
375
375
|
end
|
376
376
|
|
377
377
|
def has_text?(text) #:nodoc:
|
378
|
-
raw.flatten.compact.detect {|cell_value| cell_value.index(text)}
|
378
|
+
raw.flatten.compact.detect { |cell_value| cell_value.index(text) }
|
379
379
|
end
|
380
380
|
|
381
381
|
def cells_rows #:nodoc:
|
@@ -554,7 +554,7 @@ module Cucumber
|
|
554
554
|
end
|
555
555
|
|
556
556
|
def width
|
557
|
-
map {|cell| cell.value ? escape_cell(cell.value.to_s).unpack('U*').length : 0}.max
|
557
|
+
map { |cell| cell.value ? escape_cell(cell.value.to_s).unpack('U*').length : 0 }.max
|
558
558
|
end
|
559
559
|
end
|
560
560
|
|
@@ -26,7 +26,7 @@ module Cucumber
|
|
26
26
|
@original_header = other_table_cell_matrix[0]
|
27
27
|
pad_and_match
|
28
28
|
@padded_width = cell_matrix[0].length
|
29
|
-
@row_indices = Array.new(other_table_cell_matrix.length) {|n| n}
|
29
|
+
@row_indices = Array.new(other_table_cell_matrix.length) { |n| n }
|
30
30
|
end
|
31
31
|
|
32
32
|
# Pads two cell matrices to same column width and matches columns according to header value.
|
@@ -38,19 +38,19 @@ module Cucumber
|
|
38
38
|
matched_cols = []
|
39
39
|
|
40
40
|
header_values.each_with_index do |v, i|
|
41
|
-
mapped_index = unmatched_cols.index {|unmapped_col| unmapped_col.first == v}
|
41
|
+
mapped_index = unmatched_cols.index { |unmapped_col| unmapped_col.first == v }
|
42
42
|
if mapped_index
|
43
43
|
matched_cols << unmatched_cols.delete_at(mapped_index)
|
44
44
|
else
|
45
45
|
mark_as_missing(cols[i])
|
46
|
-
empty_col = ensure_2d(other_table_cell_matrix).collect {SurplusCell.new(nil, self, -1)}
|
46
|
+
empty_col = ensure_2d(other_table_cell_matrix).collect { SurplusCell.new(nil, self, -1) }
|
47
47
|
empty_col.first.value = v
|
48
48
|
matched_cols << empty_col
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
unmatched_cols.each do
|
53
|
-
empty_col = cell_matrix.collect {SurplusCell.new(nil, self, -1)}
|
53
|
+
empty_col = cell_matrix.collect { SurplusCell.new(nil, self, -1) }
|
54
54
|
cols << empty_col
|
55
55
|
end
|
56
56
|
|
@@ -76,13 +76,13 @@ module Cucumber
|
|
76
76
|
changes.each do |change|
|
77
77
|
if change.action == '-'
|
78
78
|
@missing_row_pos = change.position + inserted
|
79
|
-
cell_matrix[missing_row_pos].each {|cell| cell.status = :undefined}
|
79
|
+
cell_matrix[missing_row_pos].each { |cell| cell.status = :undefined }
|
80
80
|
row_indices.insert(missing_row_pos, nil)
|
81
81
|
missing += 1
|
82
82
|
else # '+'
|
83
83
|
@insert_row_pos = change.position + missing
|
84
84
|
inserted_row = change.element
|
85
|
-
inserted_row.each {|cell| cell.status = :comment}
|
85
|
+
inserted_row.each { |cell| cell.status = :comment }
|
86
86
|
cell_matrix.insert(insert_row_pos, inserted_row)
|
87
87
|
row_indices[insert_row_pos] = nil
|
88
88
|
inspect_rows(cell_matrix[missing_row_pos], inserted_row) if last_change == '-'
|
@@ -121,7 +121,7 @@ module Cucumber
|
|
121
121
|
end
|
122
122
|
|
123
123
|
def missing_col
|
124
|
-
cell_matrix[0].find {|cell| cell.status == :undefined}
|
124
|
+
cell_matrix[0].find { |cell| cell.status == :undefined }
|
125
125
|
end
|
126
126
|
|
127
127
|
def surplus_col
|
data/lib/cucumber/rake/task.rb
CHANGED
@@ -39,7 +39,7 @@ module Cucumber
|
|
39
39
|
|
40
40
|
def initialize(libs, cucumber_opts, feature_files)
|
41
41
|
raise 'libs must be an Array when running in-process' unless Array === libs
|
42
|
-
libs.reverse.each {|lib| $LOAD_PATH.unshift(lib)}
|
42
|
+
libs.reverse.each { |lib| $LOAD_PATH.unshift(lib) }
|
43
43
|
@args = (
|
44
44
|
cucumber_opts +
|
45
45
|
feature_files
|
@@ -161,7 +161,7 @@ module Cucumber
|
|
161
161
|
end
|
162
162
|
|
163
163
|
def cucumber_opts_with_profile #:nodoc:
|
164
|
-
Array(cucumber_opts).concat Array(@profile).flat_map {|p| ['--profile', p] }
|
164
|
+
Array(cucumber_opts).concat Array(@profile).flat_map { |p| ['--profile', p] }
|
165
165
|
end
|
166
166
|
|
167
167
|
def feature_files #:nodoc:
|
@@ -169,7 +169,7 @@ module Cucumber
|
|
169
169
|
end
|
170
170
|
|
171
171
|
def make_command_line_safe(list)
|
172
|
-
list.map {|string| string.gsub(' ', '\ ')}
|
172
|
+
list.map { |string| string.gsub(' ', '\ ') }
|
173
173
|
end
|
174
174
|
end
|
175
175
|
end
|
data/lib/cucumber/runtime.rb
CHANGED
@@ -273,7 +273,7 @@ module Cucumber
|
|
273
273
|
end
|
274
274
|
|
275
275
|
def install_wire_plugin
|
276
|
-
Cucumber::Wire::Plugin.new(@configuration).install if @configuration.all_files_to_load.any? {|f| f =~ %r{\.wire$} }
|
276
|
+
Cucumber::Wire::Plugin.new(@configuration).install if @configuration.all_files_to_load.any? { |f| f =~ %r{\.wire$} }
|
277
277
|
end
|
278
278
|
|
279
279
|
def log
|
data/lib/cucumber/step_match.rb
CHANGED
@@ -35,16 +35,16 @@ module Cucumber
|
|
35
35
|
private
|
36
36
|
|
37
37
|
def best_matches(_step_name, step_matches) #:nodoc:
|
38
|
-
no_groups = step_matches.select {|step_match| step_match.args.empty?}
|
39
|
-
max_arg_length = step_matches.map {|step_match| step_match.args.length }.max
|
40
|
-
top_groups = step_matches.select {|step_match| step_match.args.length == max_arg_length }
|
38
|
+
no_groups = step_matches.select { |step_match| step_match.args.empty? }
|
39
|
+
max_arg_length = step_matches.map { |step_match| step_match.args.length }.max
|
40
|
+
top_groups = step_matches.select { |step_match| step_match.args.length == max_arg_length }
|
41
41
|
|
42
42
|
if no_groups.any?
|
43
43
|
longest_regexp_length = no_groups.map(&:text_length).max
|
44
|
-
no_groups.select {|step_match| step_match.text_length == longest_regexp_length }
|
44
|
+
no_groups.select { |step_match| step_match.text_length == longest_regexp_length }
|
45
45
|
elsif top_groups.any?
|
46
|
-
shortest_capture_length = top_groups.map {|step_match| step_match.args.inject(0) {|sum, c| sum + c.to_s.length } }.min
|
47
|
-
top_groups.select {|step_match| step_match.args.inject(0) {|sum, c| sum + c.to_s.length } == shortest_capture_length }
|
46
|
+
shortest_capture_length = top_groups.map { |step_match| step_match.args.inject(0) { |sum, c| sum + c.to_s.length } }.min
|
47
|
+
top_groups.select { |step_match| step_match.args.inject(0) { |sum, c| sum + c.to_s.length } == shortest_capture_length }
|
48
48
|
else
|
49
49
|
top_groups
|
50
50
|
end
|
data/lib/cucumber/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.1.
|
1
|
+
3.1.2
|
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.1.
|
4
|
+
version: 3.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: 2018-
|
13
|
+
date: 2018-07-13 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: builder
|
@@ -32,28 +32,28 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 3.
|
35
|
+
version: 3.2.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 3.
|
42
|
+
version: 3.2.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: cucumber-expressions
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 6.0.
|
49
|
+
version: 6.0.1
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 6.0.
|
56
|
+
version: 6.0.1
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: cucumber-wire
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -345,6 +345,7 @@ files:
|
|
345
345
|
- lib/cucumber/encoding.rb
|
346
346
|
- lib/cucumber/errors.rb
|
347
347
|
- lib/cucumber/events.rb
|
348
|
+
- lib/cucumber/events/gherkin_source_parsed.rb~
|
348
349
|
- lib/cucumber/events/gherkin_source_read.rb
|
349
350
|
- lib/cucumber/events/step_activated.rb
|
350
351
|
- lib/cucumber/events/step_definition_registered.rb
|
@@ -371,6 +372,7 @@ files:
|
|
371
372
|
- lib/cucumber/filters/tag_limits/test_case_index.rb
|
372
373
|
- lib/cucumber/filters/tag_limits/verifier.rb
|
373
374
|
- lib/cucumber/formatter/ansicolor.rb
|
375
|
+
- lib/cucumber/formatter/ast_lookup.rb~
|
374
376
|
- lib/cucumber/formatter/backtrace_filter.rb
|
375
377
|
- lib/cucumber/formatter/console.rb
|
376
378
|
- lib/cucumber/formatter/console_counts.rb
|
@@ -466,8 +468,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
466
468
|
version: '0'
|
467
469
|
requirements: []
|
468
470
|
rubyforge_project:
|
469
|
-
rubygems_version: 2.
|
471
|
+
rubygems_version: 2.5.2
|
470
472
|
signing_key:
|
471
473
|
specification_version: 4
|
472
|
-
summary: cucumber-3.1.
|
474
|
+
summary: cucumber-3.1.2
|
473
475
|
test_files: []
|