cuke_linter 0.13.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -1
  3. data/LICENSE.txt +1 -1
  4. data/README.md +12 -9
  5. data/cuke_linter.gemspec +41 -23
  6. data/exe/cuke_linter +4 -2
  7. data/lib/cuke_linter.rb +119 -180
  8. data/lib/cuke_linter/configuration.rb +45 -0
  9. data/lib/cuke_linter/default_linters.rb +32 -0
  10. data/lib/cuke_linter/formatters/pretty_formatter.rb +63 -35
  11. data/lib/cuke_linter/gherkin.rb +10 -0
  12. data/lib/cuke_linter/linter_registration.rb +32 -0
  13. data/lib/cuke_linter/linters/background_does_more_than_setup_linter.rb +1 -1
  14. data/lib/cuke_linter/linters/element_with_common_tags_linter.rb +23 -14
  15. data/lib/cuke_linter/linters/element_with_duplicate_tags_linter.rb +18 -13
  16. data/lib/cuke_linter/linters/element_with_too_many_tags_linter.rb +17 -11
  17. data/lib/cuke_linter/linters/feature_with_too_many_different_tags_linter.rb +1 -3
  18. data/lib/cuke_linter/linters/feature_without_description_linter.rb +1 -1
  19. data/lib/cuke_linter/linters/linter.rb +17 -13
  20. data/lib/cuke_linter/linters/step_with_too_many_characters_linter.rb +2 -2
  21. data/lib/cuke_linter/linters/test_should_use_background_linter.rb +23 -15
  22. data/lib/cuke_linter/linters/test_with_bad_name_linter.rb +4 -4
  23. data/lib/cuke_linter/linters/test_with_setup_step_as_final_step_linter.rb +1 -1
  24. data/lib/cuke_linter/version.rb +1 -1
  25. data/testing/cucumber/features/command_line.feature +5 -2
  26. data/testing/cucumber/features/configuration/configuring_linters.feature +5 -2
  27. data/testing/cucumber/features/configuration/locally_scoping_linters.feature +7 -2
  28. data/testing/cucumber/features/configuration/using_configurations.feature +2 -1
  29. data/testing/cucumber/features/custom_linters.feature +3 -1
  30. metadata +113 -108
  31. data/.gitignore +0 -19
  32. data/.simplecov +0 -8
  33. data/.travis.yml +0 -33
  34. data/CONTRIBUTING.md +0 -26
  35. data/Gemfile +0 -6
  36. data/Rakefile +0 -63
  37. data/appveyor.yml +0 -43
  38. data/bin/console +0 -14
  39. data/bin/setup +0 -8
  40. data/environments/common_env.rb +0 -12
  41. data/environments/cucumber_env.rb +0 -22
  42. data/environments/rspec_env.rb +0 -50
  43. data/testing/cucumber/step_definitions/action_steps.rb +0 -84
  44. data/testing/cucumber/step_definitions/setup_steps.rb +0 -258
  45. data/testing/cucumber/step_definitions/verification_steps.rb +0 -94
  46. data/testing/file_helper.rb +0 -41
  47. data/testing/formatter_factory.rb +0 -15
  48. data/testing/gemfiles/cuke_modeler1.gemfile +0 -8
  49. data/testing/gemfiles/cuke_modeler2.gemfile +0 -8
  50. data/testing/linter_factory.rb +0 -60
  51. data/testing/model_factory.rb +0 -109
  52. data/testing/rspec/spec/integration/cli_integration_spec.rb +0 -556
  53. data/testing/rspec/spec/integration/configuration_spec.rb +0 -811
  54. data/testing/rspec/spec/integration/cuke_linter_integration_spec.rb +0 -243
  55. data/testing/rspec/spec/integration/formatters/formatter_integration_specs.rb +0 -5
  56. data/testing/rspec/spec/integration/formatters/pretty_formatter_integration_spec.rb +0 -8
  57. data/testing/rspec/spec/integration/linters/background_does_more_than_setup_linter_integration_spec.rb +0 -8
  58. data/testing/rspec/spec/integration/linters/element_with_common_tags_linter_integration_spec.rb +0 -8
  59. data/testing/rspec/spec/integration/linters/element_with_duplicate_tags_linter_integration_spec.rb +0 -8
  60. data/testing/rspec/spec/integration/linters/element_with_too_many_tags_linter_integration_spec.rb +0 -8
  61. data/testing/rspec/spec/integration/linters/example_without_name_linter_integration_spec.rb +0 -8
  62. data/testing/rspec/spec/integration/linters/feature_file_with_invalid_name_integration_spec.rb +0 -8
  63. data/testing/rspec/spec/integration/linters/feature_file_with_mismatched_name_integration_spec.rb +0 -8
  64. data/testing/rspec/spec/integration/linters/feature_with_too_many_different_tags_linter_integration_spec.rb +0 -8
  65. data/testing/rspec/spec/integration/linters/feature_without_description_linter_integration_spec.rb +0 -8
  66. data/testing/rspec/spec/integration/linters/feature_without_name_linter_integration_spec.rb +0 -8
  67. data/testing/rspec/spec/integration/linters/feature_without_scenarios_linter_integration_spec.rb +0 -8
  68. data/testing/rspec/spec/integration/linters/linter_integration_spec.rb +0 -8
  69. data/testing/rspec/spec/integration/linters/linter_integration_specs.rb +0 -7
  70. data/testing/rspec/spec/integration/linters/outline_with_single_example_row_linter_integration_spec.rb +0 -8
  71. data/testing/rspec/spec/integration/linters/single_test_background_linter_integration_spec.rb +0 -8
  72. data/testing/rspec/spec/integration/linters/step_with_end_period_linter_integration_spec.rb +0 -8
  73. data/testing/rspec/spec/integration/linters/step_with_too_many_characters_linter_integration_spec.rb +0 -8
  74. data/testing/rspec/spec/integration/linters/test_should_use_background_linter_integration_spec.rb +0 -8
  75. data/testing/rspec/spec/integration/linters/test_with_action_step_as_final_step_linter_integration_spec.rb +0 -8
  76. data/testing/rspec/spec/integration/linters/test_with_bad_name_integration_spec.rb +0 -8
  77. data/testing/rspec/spec/integration/linters/test_with_no_action_step_integration_spec.rb +0 -8
  78. data/testing/rspec/spec/integration/linters/test_with_no_name_integration_spec.rb +0 -8
  79. data/testing/rspec/spec/integration/linters/test_with_no_verification_step_integration_spec.rb +0 -8
  80. data/testing/rspec/spec/integration/linters/test_with_setup_step_after_action_step_linter_integration_spec.rb +0 -8
  81. data/testing/rspec/spec/integration/linters/test_with_setup_step_after_verification_step_linter_integration_spec.rb +0 -8
  82. data/testing/rspec/spec/integration/linters/test_with_setup_step_as_final_step_linter_integration_spec.rb +0 -8
  83. data/testing/rspec/spec/integration/linters/test_with_too_many_steps_linter_integration_spec.rb +0 -8
  84. data/testing/rspec/spec/unit/cuke_linter_unit_spec.rb +0 -114
  85. data/testing/rspec/spec/unit/formatters/formatter_unit_specs.rb +0 -11
  86. data/testing/rspec/spec/unit/formatters/pretty_formatter_unit_spec.rb +0 -115
  87. data/testing/rspec/spec/unit/linters/background_does_more_than_setup_linter_unit_spec.rb +0 -186
  88. data/testing/rspec/spec/unit/linters/configurable_linter_unit_specs.rb +0 -11
  89. data/testing/rspec/spec/unit/linters/element_with_common_tags_linter_unit_spec.rb +0 -248
  90. data/testing/rspec/spec/unit/linters/element_with_duplicate_tags_linter_unit_spec.rb +0 -203
  91. data/testing/rspec/spec/unit/linters/element_with_too_many_tags_linter_unit_spec.rb +0 -296
  92. data/testing/rspec/spec/unit/linters/example_without_name_linter_unit_spec.rb +0 -81
  93. data/testing/rspec/spec/unit/linters/feature_file_with_invalid_name_linter_unit_spec.rb +0 -106
  94. data/testing/rspec/spec/unit/linters/feature_file_with_mismatched_name_linter_unit_spec.rb +0 -124
  95. data/testing/rspec/spec/unit/linters/feature_with_too_many_different_tags_linter_unit_spec.rb +0 -293
  96. data/testing/rspec/spec/unit/linters/feature_without_description_linter_unit_spec.rb +0 -80
  97. data/testing/rspec/spec/unit/linters/feature_without_name_linter_unit_spec.rb +0 -84
  98. data/testing/rspec/spec/unit/linters/feature_without_scenarios_linter_unit_spec.rb +0 -102
  99. data/testing/rspec/spec/unit/linters/linter_unit_spec.rb +0 -197
  100. data/testing/rspec/spec/unit/linters/linter_unit_specs.rb +0 -57
  101. data/testing/rspec/spec/unit/linters/outline_with_single_example_row_linter_unit_spec.rb +0 -184
  102. data/testing/rspec/spec/unit/linters/single_test_background_linter_unit_spec.rb +0 -89
  103. data/testing/rspec/spec/unit/linters/step_with_end_period_linter_unit_spec.rb +0 -54
  104. data/testing/rspec/spec/unit/linters/step_with_too_many_characters_linter_unit_spec.rb +0 -155
  105. data/testing/rspec/spec/unit/linters/test_should_use_background_linter_unit_spec.rb +0 -464
  106. data/testing/rspec/spec/unit/linters/test_with_action_step_as_final_step_linter_unit_spec.rb +0 -165
  107. data/testing/rspec/spec/unit/linters/test_with_bad_name_linter_unit_spec.rb +0 -81
  108. data/testing/rspec/spec/unit/linters/test_with_no_action_step_linter_unit_spec.rb +0 -244
  109. data/testing/rspec/spec/unit/linters/test_with_no_name_linter_unit_spec.rb +0 -88
  110. data/testing/rspec/spec/unit/linters/test_with_no_verification_step_linter_unit_spec.rb +0 -246
  111. data/testing/rspec/spec/unit/linters/test_with_setup_step_after_action_step_linter_unit_spec.rb +0 -233
  112. data/testing/rspec/spec/unit/linters/test_with_setup_step_after_verification_step_linter_unit_spec.rb +0 -233
  113. data/testing/rspec/spec/unit/linters/test_with_setup_step_as_final_step_linter_unit_spec.rb +0 -164
  114. data/testing/rspec/spec/unit/linters/test_with_too_many_steps_linter_unit_spec.rb +0 -192
@@ -15,8 +15,8 @@ module CukeLinter
15
15
  # The rule used to determine if a model has a problem
16
16
  def rule(model)
17
17
  return false unless model.is_a?(CukeModeler::Step)
18
-
19
- @linted_step_length = model.text&.length || 0
18
+
19
+ @linted_step_length = model.text.nil? ? 0 : model.text.length
20
20
 
21
21
  @linted_step_length > step_length_threshold
22
22
  end
@@ -14,40 +14,48 @@ module CukeLinter
14
14
 
15
15
  return false unless parent_feature_model.tests.count > 1
16
16
 
17
- matching_steps = parent_feature_model.tests.all? do |test|
17
+ matching_steps = all_first_steps_match?(parent_feature_model, model_steps)
18
+ none_parameterized = no_parameterized_steps?(parent_feature_model)
19
+
20
+ matching_steps && none_parameterized
21
+ end
22
+
23
+ # The message used to describe the problem that has been found
24
+ def message
25
+ 'Test shares steps with all other tests in feature. Use a background.'
26
+ end
27
+
28
+
29
+ private
30
+
31
+
32
+ def all_first_steps_match?(feature_model, model_steps)
33
+ feature_model.tests.all? do |test|
18
34
  test_steps = test.steps || []
19
35
  test_steps.first == model_steps.first
20
36
  end
37
+ end
21
38
 
22
- none_parameterized = parent_feature_model.tests.none? do |test|
39
+ def no_parameterized_steps?(feature_model)
40
+ feature_model.tests.none? do |test|
23
41
  next false if test.is_a?(CukeModeler::Scenario)
24
42
 
25
43
  test_steps = test.steps || []
26
44
  params_used_by_test = test.examples.map(&:parameters).flatten.uniq
27
45
 
28
46
  next false unless test_steps.any?
47
+
29
48
  parameterized_step?(test_steps.first, parameters: params_used_by_test)
30
49
  end
31
-
32
- matching_steps && none_parameterized
33
50
  end
34
51
 
35
- # The message used to describe the problem that has been found
36
- def message
37
- 'Test shares steps with all other tests in feature. Use a background.'
38
- end
39
-
40
-
41
- private
42
-
43
-
44
52
  def parameterized_step?(step_model, parameters:)
45
53
  parameters.any? do |parameter|
46
54
  parameter_string = "<#{parameter}>"
47
55
 
48
56
  parameterized_text?(step_model, parameter_string) ||
49
- parameterized_doc_string?(step_model, parameter_string) ||
50
- parameterized_table?(step_model, parameter_string)
57
+ parameterized_doc_string?(step_model, parameter_string) ||
58
+ parameterized_table?(step_model, parameter_string)
51
59
  end
52
60
  end
53
61
 
@@ -9,10 +9,10 @@ module CukeLinter
9
9
  return false unless model.is_a?(CukeModeler::Scenario) || model.is_a?(CukeModeler::Outline)
10
10
 
11
11
  lowercase_name = model.name.downcase
12
- return true if lowercase_name.include?('test') ||
13
- lowercase_name.include?('verif') ||
14
- lowercase_name.include?('check')
15
- false
12
+
13
+ lowercase_name.include?('test') ||
14
+ lowercase_name.include?('verif') ||
15
+ lowercase_name.include?('check')
16
16
  end
17
17
 
18
18
  # The message used to describe the problem that has been found
@@ -27,7 +27,7 @@ module CukeLinter
27
27
  private
28
28
 
29
29
  def given_keywords
30
- @given_keywords || [DEFAULT_GIVEN_KEYWORD]
30
+ @given_keywords || [DEFAULT_GIVEN_KEYWORD]
31
31
  end
32
32
 
33
33
  end
@@ -1,4 +1,4 @@
1
1
  module CukeLinter
2
2
  # The release version of this gem
3
- VERSION = '0.13.0'
3
+ VERSION = '1.2.1'.freeze
4
4
  end
@@ -101,7 +101,8 @@ Feature: Using cuke_linter on the command line
101
101
 
102
102
  Scenario: Specifying a formatter to use
103
103
 
104
- Note: The file containing the formatter class will have to be explicitly loaded if not using one of the built in formatters
104
+ Note: The file containing the formatter class will have to be explicitly loaded if not using one
105
+ of the built in formatters
105
106
 
106
107
  Given the following feature file "some.feature":
107
108
  """
@@ -134,7 +135,9 @@ Feature: Using cuke_linter on the command line
134
135
 
135
136
  Scenario: Redirecting output for specific formatters
136
137
 
137
- Note: Formatters match to output locations in the same order that they are specified. Formatters that do not have their output location specified will output to STDOUT. Output locations that are not matched to a formatter will use the default formatter.
138
+ Note: Formatters match to output locations in the same order that they are specified. Formatters
139
+ that do not have their output location specified will output to STDOUT. Output locations
140
+ that are not matched to a formatter will use the default formatter.
138
141
 
139
142
  Given the following feature file "some.feature":
140
143
  """
@@ -1,6 +1,8 @@
1
1
  Feature: Configuration of linters
2
2
 
3
- Instead of having to modify the linting object directly in a script at runtime, a configuration file can be used so that specific linters can be configured in a more convenient, static manner. Some configurable properties are available across all linters while some are linter specific.
3
+ Instead of having to modify the linting object directly in a script at runtime, a configuration file can
4
+ be used so that specific linters can be configured in a more convenient, static manner. Some configurable
5
+ properties are available across all linters while some are linter specific.
4
6
 
5
7
 
6
8
  Scenario: Disabling a linter
@@ -20,7 +22,8 @@ Feature: Configuration of linters
20
22
 
21
23
  Scenario: Setting a common configuration for all linters
22
24
 
23
- Note: Any property could be set for all linters, but disabling them (and then re-enabling a select few) is one of the few things that you are likely to want to do to all linters.
25
+ Note: Any property could be set for all linters, but disabling them (and then re-enabling a select few) is
26
+ one of the few things that you are likely to want to do to all linters.
24
27
 
25
28
  Given a linter registered as "AlwaysFindsAProblem"
26
29
  And the following configuration file:
@@ -4,12 +4,17 @@ Feature: Locally scoping linters
4
4
  I want to be able to limit the scope of linters for certain portions of the documentation
5
5
  So that exceptions to rules can be made
6
6
 
7
- In addition to using configurations to change whether or not a given linter is used when linting, linters can be enabled/disabled for specific portions of a `.feature` file. To enable/disable one (or more) linters, add a comment line before the portion of the file where the change should apply. Add a comment with the opposite change at the point in the file when the default behavior should resume. Unless so countermanded, changes remain in effect for the remainder of the feature file.
7
+ In addition to using configurations to change whether or not a given linter is used when linting, linters
8
+ can be enabled/disabled for specific portions of a `.feature` file. To enable/disable one (or more) linters,
9
+ add a comment line before the portion of the file where the change should apply. Add a comment with the
10
+ opposite change at the point in the file when the default behavior should resume. Unless so countermanded,
11
+ changes remain in effect for the remainder of the feature file.
8
12
 
9
13
 
10
14
  Scenario: Enabling/disabling a linter within a feature file
11
15
 
12
- Note: This example disables linters that are enabled by default but enabling a linter that is disabled by default works in the same manner
16
+ Note: This example disables linters that are enabled by default but enabling a linter that is disabled by
17
+ default works in the same manner
13
18
 
14
19
  Given the default linters are being used
15
20
  And a feature file model based on the following text:
@@ -1,6 +1,7 @@
1
1
  Feature: Using a configuration
2
2
 
3
- Configuration can be done during a script or through a configuration file. This file can be explicitly provided or a default configuration file will be used.
3
+ Configuration can be done during a script or through a configuration file. This file can be explicitly
4
+ provided or a default configuration file will be used.
4
5
 
5
6
 
6
7
  Scenario: Providing a configuration directly
@@ -1,6 +1,8 @@
1
1
  Feature: Custom linters
2
2
 
3
- In addition to the linters provided by CukeLinter, custom linters can be used. A linter is essentially any object that provides a few needed methods. In order to simplify the creation of custom linters, a base linter class is available that provides these needed methods.
3
+ In addition to the linters provided by CukeLinter, custom linters can be used. A linter is
4
+ essentially any object that provides a few needed methods. In order to simplify the creation
5
+ of custom linters, a base linter class is available that provides these needed methods.
4
6
 
5
7
 
6
8
  Scenario: Creating a custom linter object
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuke_linter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Kessler
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-02 00:00:00.000000000 Z
11
+ date: 2021-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cuke_modeler
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '1.5'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '3.0'
22
+ version: '4.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '1.5'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '3.0'
32
+ version: '4.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: bundler
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -44,22 +44,56 @@ dependencies:
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '3.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: childprocess
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '4.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '4.0'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: cucumber
49
63
  requirement: !ruby/object:Gem::Requirement
50
64
  requirements:
51
- - - "~>"
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: '5.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '5.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: cuke_slicer
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 2.0.2
82
+ - - "<"
52
83
  - !ruby/object:Gem::Version
53
84
  version: '3.0'
54
85
  type: :development
55
86
  prerelease: false
56
87
  version_requirements: !ruby/object:Gem::Requirement
57
88
  requirements:
58
- - - "~>"
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: 2.0.2
92
+ - - "<"
59
93
  - !ruby/object:Gem::Version
60
94
  version: '3.0'
61
95
  - !ruby/object:Gem::Dependency
62
- name: racatt
96
+ name: ffi
63
97
  requirement: !ruby/object:Gem::Requirement
64
98
  requirements:
65
99
  - - "~>"
@@ -72,6 +106,34 @@ dependencies:
72
106
  - - "~>"
73
107
  - !ruby/object:Gem::Version
74
108
  version: '1.0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: parallel
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '1.0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '1.0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: rainbow
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "<"
128
+ - !ruby/object:Gem::Version
129
+ version: 4.0.0
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: 4.0.0
75
137
  - !ruby/object:Gem::Dependency
76
138
  name: rake
77
139
  requirement: !ruby/object:Gem::Requirement
@@ -114,49 +176,65 @@ dependencies:
114
176
  - - "~>"
115
177
  - !ruby/object:Gem::Version
116
178
  version: '3.0'
179
+ - !ruby/object:Gem::Dependency
180
+ name: rubocop
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "<="
184
+ - !ruby/object:Gem::Version
185
+ version: 0.57.2
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "<="
191
+ - !ruby/object:Gem::Version
192
+ version: 0.57.2
117
193
  - !ruby/object:Gem::Dependency
118
194
  name: simplecov
119
195
  requirement: !ruby/object:Gem::Requirement
120
196
  requirements:
121
197
  - - "<"
122
198
  - !ruby/object:Gem::Version
123
- version: 1.0.0
199
+ version: '1.0'
124
200
  type: :development
125
201
  prerelease: false
126
202
  version_requirements: !ruby/object:Gem::Requirement
127
203
  requirements:
128
204
  - - "<"
129
205
  - !ruby/object:Gem::Version
130
- version: 1.0.0
206
+ version: '1.0'
131
207
  - !ruby/object:Gem::Dependency
132
- name: coveralls
208
+ name: simplecov-lcov
133
209
  requirement: !ruby/object:Gem::Requirement
134
210
  requirements:
135
211
  - - "<"
136
212
  - !ruby/object:Gem::Version
137
- version: 1.0.0
213
+ version: '1.0'
138
214
  type: :development
139
215
  prerelease: false
140
216
  version_requirements: !ruby/object:Gem::Requirement
141
217
  requirements:
142
218
  - - "<"
143
219
  - !ruby/object:Gem::Version
144
- version: 1.0.0
220
+ version: '1.0'
145
221
  - !ruby/object:Gem::Dependency
146
- name: rainbow
222
+ name: yard
147
223
  requirement: !ruby/object:Gem::Requirement
148
224
  requirements:
149
225
  - - "<"
150
226
  - !ruby/object:Gem::Version
151
- version: 4.0.0
227
+ version: '1.0'
152
228
  type: :development
153
229
  prerelease: false
154
230
  version_requirements: !ruby/object:Gem::Requirement
155
231
  requirements:
156
232
  - - "<"
157
233
  - !ruby/object:Gem::Version
158
- version: 4.0.0
159
- description:
234
+ version: '1.0'
235
+ description: This gem provides linters for detecting common 'smells' in `.feature`
236
+ files. In addition to the provided linters, custom linters can be made in order
237
+ to create custom linting rules.
160
238
  email:
161
239
  - morrow748@gmail.com
162
240
  executables:
@@ -164,25 +242,17 @@ executables:
164
242
  extensions: []
165
243
  extra_rdoc_files: []
166
244
  files:
167
- - ".gitignore"
168
- - ".simplecov"
169
- - ".travis.yml"
170
245
  - CHANGELOG.md
171
- - CONTRIBUTING.md
172
- - Gemfile
173
246
  - LICENSE.txt
174
247
  - README.md
175
- - Rakefile
176
- - appveyor.yml
177
- - bin/console
178
- - bin/setup
179
248
  - cuke_linter.gemspec
180
- - environments/common_env.rb
181
- - environments/cucumber_env.rb
182
- - environments/rspec_env.rb
183
249
  - exe/cuke_linter
184
250
  - lib/cuke_linter.rb
251
+ - lib/cuke_linter/configuration.rb
252
+ - lib/cuke_linter/default_linters.rb
185
253
  - lib/cuke_linter/formatters/pretty_formatter.rb
254
+ - lib/cuke_linter/gherkin.rb
255
+ - lib/cuke_linter/linter_registration.rb
186
256
  - lib/cuke_linter/linters/background_does_more_than_setup_linter.rb
187
257
  - lib/cuke_linter/linters/element_with_common_tags_linter.rb
188
258
  - lib/cuke_linter/linters/element_with_duplicate_tags_linter.rb
@@ -242,100 +312,35 @@ files:
242
312
  - testing/cucumber/features/linters/test_with_setup_step_after_verification_step.feature
243
313
  - testing/cucumber/features/linters/test_with_setup_step_as_final_step.feature
244
314
  - testing/cucumber/features/linters/test_with_too_many_steps.feature
245
- - testing/cucumber/step_definitions/action_steps.rb
246
- - testing/cucumber/step_definitions/setup_steps.rb
247
- - testing/cucumber/step_definitions/verification_steps.rb
248
- - testing/file_helper.rb
249
- - testing/formatter_factory.rb
250
- - testing/gemfiles/cuke_modeler1.gemfile
251
- - testing/gemfiles/cuke_modeler2.gemfile
252
- - testing/linter_factory.rb
253
- - testing/model_factory.rb
254
- - testing/rspec/spec/integration/cli_integration_spec.rb
255
- - testing/rspec/spec/integration/configuration_spec.rb
256
- - testing/rspec/spec/integration/cuke_linter_integration_spec.rb
257
- - testing/rspec/spec/integration/formatters/formatter_integration_specs.rb
258
- - testing/rspec/spec/integration/formatters/pretty_formatter_integration_spec.rb
259
- - testing/rspec/spec/integration/linters/background_does_more_than_setup_linter_integration_spec.rb
260
- - testing/rspec/spec/integration/linters/element_with_common_tags_linter_integration_spec.rb
261
- - testing/rspec/spec/integration/linters/element_with_duplicate_tags_linter_integration_spec.rb
262
- - testing/rspec/spec/integration/linters/element_with_too_many_tags_linter_integration_spec.rb
263
- - testing/rspec/spec/integration/linters/example_without_name_linter_integration_spec.rb
264
- - testing/rspec/spec/integration/linters/feature_file_with_invalid_name_integration_spec.rb
265
- - testing/rspec/spec/integration/linters/feature_file_with_mismatched_name_integration_spec.rb
266
- - testing/rspec/spec/integration/linters/feature_with_too_many_different_tags_linter_integration_spec.rb
267
- - testing/rspec/spec/integration/linters/feature_without_description_linter_integration_spec.rb
268
- - testing/rspec/spec/integration/linters/feature_without_name_linter_integration_spec.rb
269
- - testing/rspec/spec/integration/linters/feature_without_scenarios_linter_integration_spec.rb
270
- - testing/rspec/spec/integration/linters/linter_integration_spec.rb
271
- - testing/rspec/spec/integration/linters/linter_integration_specs.rb
272
- - testing/rspec/spec/integration/linters/outline_with_single_example_row_linter_integration_spec.rb
273
- - testing/rspec/spec/integration/linters/single_test_background_linter_integration_spec.rb
274
- - testing/rspec/spec/integration/linters/step_with_end_period_linter_integration_spec.rb
275
- - testing/rspec/spec/integration/linters/step_with_too_many_characters_linter_integration_spec.rb
276
- - testing/rspec/spec/integration/linters/test_should_use_background_linter_integration_spec.rb
277
- - testing/rspec/spec/integration/linters/test_with_action_step_as_final_step_linter_integration_spec.rb
278
- - testing/rspec/spec/integration/linters/test_with_bad_name_integration_spec.rb
279
- - testing/rspec/spec/integration/linters/test_with_no_action_step_integration_spec.rb
280
- - testing/rspec/spec/integration/linters/test_with_no_name_integration_spec.rb
281
- - testing/rspec/spec/integration/linters/test_with_no_verification_step_integration_spec.rb
282
- - testing/rspec/spec/integration/linters/test_with_setup_step_after_action_step_linter_integration_spec.rb
283
- - testing/rspec/spec/integration/linters/test_with_setup_step_after_verification_step_linter_integration_spec.rb
284
- - testing/rspec/spec/integration/linters/test_with_setup_step_as_final_step_linter_integration_spec.rb
285
- - testing/rspec/spec/integration/linters/test_with_too_many_steps_linter_integration_spec.rb
286
- - testing/rspec/spec/unit/cuke_linter_unit_spec.rb
287
- - testing/rspec/spec/unit/formatters/formatter_unit_specs.rb
288
- - testing/rspec/spec/unit/formatters/pretty_formatter_unit_spec.rb
289
- - testing/rspec/spec/unit/linters/background_does_more_than_setup_linter_unit_spec.rb
290
- - testing/rspec/spec/unit/linters/configurable_linter_unit_specs.rb
291
- - testing/rspec/spec/unit/linters/element_with_common_tags_linter_unit_spec.rb
292
- - testing/rspec/spec/unit/linters/element_with_duplicate_tags_linter_unit_spec.rb
293
- - testing/rspec/spec/unit/linters/element_with_too_many_tags_linter_unit_spec.rb
294
- - testing/rspec/spec/unit/linters/example_without_name_linter_unit_spec.rb
295
- - testing/rspec/spec/unit/linters/feature_file_with_invalid_name_linter_unit_spec.rb
296
- - testing/rspec/spec/unit/linters/feature_file_with_mismatched_name_linter_unit_spec.rb
297
- - testing/rspec/spec/unit/linters/feature_with_too_many_different_tags_linter_unit_spec.rb
298
- - testing/rspec/spec/unit/linters/feature_without_description_linter_unit_spec.rb
299
- - testing/rspec/spec/unit/linters/feature_without_name_linter_unit_spec.rb
300
- - testing/rspec/spec/unit/linters/feature_without_scenarios_linter_unit_spec.rb
301
- - testing/rspec/spec/unit/linters/linter_unit_spec.rb
302
- - testing/rspec/spec/unit/linters/linter_unit_specs.rb
303
- - testing/rspec/spec/unit/linters/outline_with_single_example_row_linter_unit_spec.rb
304
- - testing/rspec/spec/unit/linters/single_test_background_linter_unit_spec.rb
305
- - testing/rspec/spec/unit/linters/step_with_end_period_linter_unit_spec.rb
306
- - testing/rspec/spec/unit/linters/step_with_too_many_characters_linter_unit_spec.rb
307
- - testing/rspec/spec/unit/linters/test_should_use_background_linter_unit_spec.rb
308
- - testing/rspec/spec/unit/linters/test_with_action_step_as_final_step_linter_unit_spec.rb
309
- - testing/rspec/spec/unit/linters/test_with_bad_name_linter_unit_spec.rb
310
- - testing/rspec/spec/unit/linters/test_with_no_action_step_linter_unit_spec.rb
311
- - testing/rspec/spec/unit/linters/test_with_no_name_linter_unit_spec.rb
312
- - testing/rspec/spec/unit/linters/test_with_no_verification_step_linter_unit_spec.rb
313
- - testing/rspec/spec/unit/linters/test_with_setup_step_after_action_step_linter_unit_spec.rb
314
- - testing/rspec/spec/unit/linters/test_with_setup_step_after_verification_step_linter_unit_spec.rb
315
- - testing/rspec/spec/unit/linters/test_with_setup_step_as_final_step_linter_unit_spec.rb
316
- - testing/rspec/spec/unit/linters/test_with_too_many_steps_linter_unit_spec.rb
317
315
  homepage: https://github.com/enkessler/cuke_linter
318
316
  licenses:
319
317
  - MIT
320
- metadata: {}
321
- post_install_message:
318
+ metadata:
319
+ bug_tracker_uri: https://github.com/enkessler/cuke_linter/issues
320
+ changelog_uri: https://github.com/enkessler/cuke_linter/blob/master/CHANGELOG.md
321
+ documentation_uri: https://www.rubydoc.info/gems/cuke_linter
322
+ homepage_uri: https://github.com/enkessler/cuke_linter
323
+ source_code_uri: https://github.com/enkessler/cuke_linter
324
+ post_install_message:
322
325
  rdoc_options: []
323
326
  require_paths:
324
327
  - lib
325
328
  required_ruby_version: !ruby/object:Gem::Requirement
326
329
  requirements:
327
- - - "~>"
330
+ - - ">="
331
+ - !ruby/object:Gem::Version
332
+ version: '2.1'
333
+ - - "<"
328
334
  - !ruby/object:Gem::Version
329
- version: '2.0'
335
+ version: '4.0'
330
336
  required_rubygems_version: !ruby/object:Gem::Requirement
331
337
  requirements:
332
338
  - - ">="
333
339
  - !ruby/object:Gem::Version
334
340
  version: '0'
335
341
  requirements: []
336
- rubyforge_project:
337
- rubygems_version: 2.7.6
338
- signing_key:
342
+ rubygems_version: 3.2.3
343
+ signing_key:
339
344
  specification_version: 4
340
345
  summary: Lints feature files used by Cucumber and other similar frameworks.
341
346
  test_files: []