chutney 3.11.0 → 3.11.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: c008b1c26d32fdc61e5971638623f09d6f34526e0482b31c9e6c98ca7770a5e6
4
- data.tar.gz: 4868772b4ffea1157e0c443772d779dc5b693aa7ec693d3e37718d392ab6676b
3
+ metadata.gz: ec37ccd0377c50adf8968133abf55a2e6ffe76f5e6388d24681cd2c9aa925244
4
+ data.tar.gz: 793ca207c66e94d4c48d8f5f752880730e06cc043c8d1ff0b3db972663fb33de
5
5
  SHA512:
6
- metadata.gz: 03c10adcf4fe4c184ef0a867f7b735c1f39e9845ce691c6d6bb2679a3f81917d65e417dd32e80776a5db036afa11de056f35464fdf54db3caf55c82015803cce
7
- data.tar.gz: 90fb24d6851765a01e014f1c838c51eed6d0190ce85265ab0344f481fded24ff9b632bdbc847263ddf2b20e80a81f61140cc452409785c52dcc000a105b4c8c4
6
+ metadata.gz: 16e1f2824bd0183a4d7bf3d383713bdad718abd335f075190fdcdc4a671ac4b272f27f5bf63fe4561fd0a266ee104957d12acd18ca89c3a46783ac2689ce77c3
7
+ data.tar.gz: bea0fa1997bf1d06a776dceb8d6d4e0ed31d384cc84a076ffc958077caa0f078fd8f42b7b950047821f7b9f29e8b930b481943bd2b3a05e8967d47fb12f493e4
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ gemspec
6
6
 
7
7
  gem 'coveralls', '~> 0.8'
8
8
  gem 'cucumber', '>= 9.0'
9
- gem 'pry-byebug', '~> 3.0'
9
+ gem 'irb', '>= 1.0'
10
10
  gem 'rake', '~> 13.0'
11
11
  gem 'rerun', '~> 0.13'
12
12
  gem 'rspec', '~> 3.13'
@@ -50,6 +50,8 @@ InvalidStepFlow:
50
50
  Enabled: true
51
51
  RequiredTagsStartsWith:
52
52
  Enabled: false
53
+ SameScenario:
54
+ Enabled: true
53
55
  SameTagDifferentCase:
54
56
  Enabled: true
55
57
  SameTagForAllScenarios:
@@ -1,28 +1,33 @@
1
- module Chutney
1
+ # frozen_string_literal: true
2
2
 
3
+ module Chutney
4
+ # Rule to find all the duplicated scenarios
3
5
  class SameScenario < Linter
4
- def lint
5
- dictionary = Hash.new { |hash, key| hash[key] = [] }
6
+ def self.dictionary
7
+ @dictionary ||= Hash.new { |hash, key| hash[key] = [] }
8
+ end
6
9
 
10
+ def lint
7
11
  scenarios do |feature, scenario|
8
12
  text = scenario
9
- .steps
10
- .map { |step| "#{step.text} #{child_text(step)}" }
11
- .join("\n") + example_text(scenario)
13
+ .steps
14
+ .map { |step| "#{step.text} #{child_text(step)}" }
15
+ .join("\n") + example_text(scenario)
12
16
 
13
17
  digest = Digest::SHA2.hexdigest(text)
14
- dictionary[digest] << { scenario:, feature: }
18
+ SameScenario.dictionary[digest] << { scenario:, feature: }
15
19
  end
16
20
 
17
- dictionary.filter { |k, v| v.size > 1 }
18
- .each_value do |v|
19
- v[1...].each { |problem|
21
+ SameScenario.dictionary.filter { |_k, v| v.size > 1 }
22
+ .each_value do |v|
23
+ v[1...].each do |problem|
20
24
  add_issue(I18n.t('linters.same_scenario',
21
25
  feature: problem[:feature].name,
22
26
  scenario: problem[:scenario].name,
23
27
  original_feature: v.first[:feature].name,
24
28
  original_scenario: v.first[:scenario].name),
25
- problem[:feature], problem[:scenario], nil) }
29
+ problem[:feature], problem[:scenario], nil)
30
+ end
26
31
  end
27
32
  end
28
33
 
@@ -49,4 +54,4 @@ module Chutney
49
54
  end
50
55
  end
51
56
  end
52
- end
57
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Chutney
4
- VERSION = '3.11.0'
4
+ VERSION = '3.11.2'
5
5
  end
data/lib/chutney.rb CHANGED
@@ -49,6 +49,7 @@ require 'chutney/locator'
49
49
  require 'chutney/version'
50
50
 
51
51
  require 'cuke_modeler'
52
+ require 'digest'
52
53
  require 'forwardable'
53
54
  require 'i18n'
54
55
  require 'yaml'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chutney
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.0
4
+ version: 3.11.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nigel Brookes-Thomas