chutney 2.0.0.rc1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{LICENSE → LICENSE.txt} +0 -0
- data/README.md +1 -81
- data/chutney.gemspec +5 -6
- data/docs/_config.yml +8 -0
- data/docs/credits.md +15 -0
- data/docs/index.md +21 -0
- data/docs/installation.md +21 -0
- data/docs/usage/configuration.md +12 -0
- data/docs/usage/index.md +16 -0
- data/docs/usage/output.md +26 -0
- data/docs/usage/rules.md +100 -0
- data/docs/usage/selective_enablement.md +14 -0
- data/exe/chutney +3 -1
- data/lib/chutney/formatter.rb +1 -3
- data/lib/chutney/formatter/pie_formatter.rb +4 -5
- data/lib/chutney/version.rb +1 -1
- data/lib/config/locales/en.yml +5 -5
- metadata +19 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 967bc92b45b3c91b5b2ed37a85ece49c49396cd8dcf3ff3c4c84de2f3a796ae9
|
4
|
+
data.tar.gz: 1e841bd73bde6d32fc437dc6663c499296c2eb1614441298117d74ab17f4ac05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2118af0253237df26adb959a9b293492dcc7a699937c291c5c38d0d39128531dc7f08a62a300ca6f3b7f697454eb8c7370d739fc0bb1a9aa6655ca55e964d79e
|
7
|
+
data.tar.gz: b0be880b1fdc7d833db386b713f8c0d98e038b3a6946faaa3b41e8bc32ebe31da16e1104b0d00a51d8ebab5c031b29c7c5367e67fe0c856a1e0b650c5f390533
|
data/{LICENSE → LICENSE.txt}
RENAMED
File without changes
|
data/README.md
CHANGED
@@ -18,84 +18,4 @@
|
|
18
18
|
|
19
19
|
</div>
|
20
20
|
|
21
|
-
|
22
|
-
## Background
|
23
|
-
|
24
|
-
This gem will sniff the Gherkin in your feature files and let you know how fresh it is.
|
25
|
-
|
26
|
-
Getting started with Cucumber is really easy but that also makes it easy to fall into some bad habits. Chutney inspects your features and let's you know if it spots anything bad.
|
27
|
-
|
28
|
-
Under the covers, Chutney uses Cucumber v3 and supports any spoken language that Cucumber does. If anyone wants to help internationalising Chutney's output, that'd be awesome.
|
29
|
-
|
30
|
-
## Usage
|
31
|
-
|
32
|
-
run `chutney` on a list of files
|
33
|
-
|
34
|
-
```
|
35
|
-
chutney '<wild_card_path>' #default is `features/**/*.feature`
|
36
|
-
```
|
37
|
-
|
38
|
-
Checks could be disabled using tags within Feature Files and the Feature or Scenario level. To do so, add `@disableCHECK`, e.g. `@disableTooManyTags`.
|
39
|
-
|
40
|
-
## Formatters
|
41
|
-
|
42
|
-
The output is rendered by formatters. Currently there are:
|
43
|
-
|
44
|
-
- RainbowFormatter (default)
|
45
|
-
- PieFormatter
|
46
|
-
- JSONFormatter
|
47
|
-
|
48
|
-
You can specify which with the `-f` flag
|
49
|
-
|
50
|
-
```
|
51
|
-
chutney f PieFormatter -f RainbowFormatter
|
52
|
-
```
|
53
|
-
|
54
|
-
![screenshot](/img/formatters.png?raw=true)
|
55
|
-
|
56
|
-
|
57
|
-
## Checks
|
58
|
-
|
59
|
-
- [avoid outline for single example](https://github.com/BillyRuffian/chutney/blob/master/features/avoid_outline_for_single_example.feature)
|
60
|
-
- [avoid period](https://github.com/BillyRuffian/chutney/blob/master/features/avoid_period.feature)
|
61
|
-
- [avoid scripting](https://github.com/BillyRuffian/chutney/blob/master/features/avoid_scripting.feature)
|
62
|
-
- [background does more than setup](https://github.com/BillyRuffian/chutney/blob/master/features/background_does_more_than_setup.feature)
|
63
|
-
- [background requires scenario](https://github.com/BillyRuffian/chutney/blob/master/features/background_requires_scenario.feature)
|
64
|
-
- [bad scenario name](https://github.com/BillyRuffian/chutney/blob/master/features/bad_scenario_name.feature)
|
65
|
-
- [file name differs feature name](https://github.com/BillyRuffian/chutney/blob/master/features/file_name_differs_feature_name.feature)
|
66
|
-
- [givens after background](https://github.com/BillyRuffian/chutney/blob/master/features/givens_after_background.feature)
|
67
|
-
- [invalid file name](https://github.com/BillyRuffian/chutney/blob/master/features/invalid_file_name.feature)
|
68
|
-
- [invalid step flow](https://github.com/BillyRuffian/chutney/blob/master/features/invalid_step_flow.feature)
|
69
|
-
- [missing example name](https://github.com/BillyRuffian/chutney/blob/master/features/missing_example_name.feature)
|
70
|
-
- [missing feature description](https://github.com/BillyRuffian/chutney/blob/master/features/missing_feature_description.feature)
|
71
|
-
- [missing feature name](https://github.com/BillyRuffian/chutney/blob/master/features/missing_feature_name.feature)
|
72
|
-
- [missing scenario name](https://github.com/BillyRuffian/chutney/blob/master/features/missing_scenario_name.feature)
|
73
|
-
- [missing test action](https://github.com/BillyRuffian/chutney/blob/master/features/missing_test_action.feature)
|
74
|
-
- [missing verification](https://github.com/BillyRuffian/chutney/blob/master/features/missing_verification.feature)
|
75
|
-
- [same tag for all scenarios](https://github.com/BillyRuffian/chutney/blob/master/features/same_tag_for_all_scenarios.feature)
|
76
|
-
- [scenario name must match pattern](https://github.com/BillyRuffian/chutney/blob/master/features/scenario_names_match.feature)
|
77
|
-
- [tag used multiple times](https://github.com/BillyRuffian/chutney/blob/master/features/tag_used_multiple_times.feature)
|
78
|
-
- [too clumsy](https://github.com/BillyRuffian/chutney/blob/master/features/too_clumsy.feature)
|
79
|
-
- [too long step](https://github.com/BillyRuffian/chutney/blob/master/features/too_long_step.feature)
|
80
|
-
- [too many different tags](https://github.com/BillyRuffian/chutney/blob/master/features/too_many_different_tags.feature)
|
81
|
-
- [too many steps](https://github.com/BillyRuffian/chutney/blob/master/features/too_many_steps.feature)
|
82
|
-
- [too many tags](https://github.com/BillyRuffian/chutney/blob/master/features/too_many_tags.feature)
|
83
|
-
- [unique scenario names](https://github.com/BillyRuffian/chutney/blob/master/features/unique_scenario_names.feature)
|
84
|
-
- [unknown variable](https://github.com/BillyRuffian/chutney/blob/master/features/unknown_variable.feature)
|
85
|
-
- [use background](https://github.com/BillyRuffian/chutney/blob/master/features/use_background.feature)
|
86
|
-
- [use outline](https://github.com/BillyRuffian/chutney/blob/master/features/use_outline.feature)
|
87
|
-
|
88
|
-
## Installation
|
89
|
-
|
90
|
-
Install it with:
|
91
|
-
|
92
|
-
`sudo gem install chutney`
|
93
|
-
|
94
|
-
After that `chutney` executable is available.
|
95
|
-
|
96
|
-
## Configuration
|
97
|
-
If you have a custom configuration you'd like to run on a regular basis instead of passing enable and disable flags through the CLI on every run, you can configure a ```.chutney.yml``` file that will be loaded on execution. The format and available linters are in [```config/chutney.yml```](config/chutney.yml)
|
98
|
-
|
99
|
-
## Extra credit
|
100
|
-
|
101
|
-
Pickle jar image by <a href="https://pixabay.com/users/OpenClipart-Vectors-30363/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=576536">OpenClipart-Vectors</a> from <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=576536">Pixabay</a>
|
21
|
+
Read the documentation [here](https://billyruffian.github.io/chutney/).
|
data/chutney.gemspec
CHANGED
@@ -13,11 +13,10 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.email = ['nigel@brookes-thomas.co.uk']
|
14
14
|
|
15
15
|
spec.summary = 'A linter for English language Gherkin'
|
16
|
-
spec.description = 'A
|
17
|
-
'
|
18
|
-
'with the Cucumber 3 monogem.'
|
16
|
+
spec.description = 'A linter for your Cucumber features. ' \
|
17
|
+
'It supports any spoken language Cucumber v3 supports.'
|
19
18
|
|
20
|
-
spec.homepage = 'https://github.
|
19
|
+
spec.homepage = 'https://billyruffian.github.io/faker_maker/'
|
21
20
|
spec.license = 'MIT'
|
22
21
|
|
23
22
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
@@ -25,9 +24,9 @@ Gem::Specification.new do |spec|
|
|
25
24
|
if spec.respond_to?(:metadata)
|
26
25
|
# spec.metadata['allowed_push_host'] = 'TODO: Set to 'http://mygemserver.com''
|
27
26
|
|
28
|
-
|
27
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
29
28
|
spec.metadata['source_code_uri'] = 'https://github.com/BillyRuffian/chutney'
|
30
|
-
|
29
|
+
spec.metadata['changelog_uri'] = 'https://github.com/BillyRuffian/chutney/releases'
|
31
30
|
else
|
32
31
|
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
33
32
|
'public gem pushes.'
|
data/docs/_config.yml
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
remote_theme: pmarsceill/just-the-docs
|
2
|
+
logo: "https://raw.githubusercontent.com/BillyRuffian/chutney/master/docs/logo.png"
|
3
|
+
title: Chutney
|
4
|
+
description: A linter for Gherkin
|
5
|
+
aux_links:
|
6
|
+
"Chutney on GitHub":
|
7
|
+
- "https://github.com/BillyRuffian/chutney"
|
8
|
+
footer_content: "Copyright © 2019-2020 Nigel Brookes-Thomas. Distributed by an <a href=\"https://github.com/BillyRuffian/chutney/blob/master/LICENSE.txt\">MIT license.</a>"
|
data/docs/credits.md
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Credits
|
4
|
+
nav_order: 4
|
5
|
+
---
|
6
|
+
|
7
|
+
# Credits
|
8
|
+
|
9
|
+
This linter started life as a fork of the abandoned [gherkin_lint](https://github.com/funkwerk/gherkin_lint) and very great deal of credit for the linting rules goes to the original author(s) of that project.
|
10
|
+
|
11
|
+
I've dusted it off and brought it up to date with Cucumber 3 and improved the internals.
|
12
|
+
|
13
|
+
# Logo
|
14
|
+
|
15
|
+
Pickle jar image by [OpenClipart-Vectors](https://pixabay.com/users/OpenClipart-Vectors-30363/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=576536) from [Pixabay](https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=576536).
|
data/docs/index.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Home
|
4
|
+
nav_order: 1
|
5
|
+
permalink: /
|
6
|
+
---
|
7
|
+
|
8
|
+
# Best practice for your Cucumber feature files
|
9
|
+
{: .fs-9 }
|
10
|
+
|
11
|
+
|
12
|
+
Chutney tastes your Cumber feature files and lets you know if they're tasty or nasty.
|
13
|
+
{: .fs-6 .fw-300 }
|
14
|
+
|
15
|
+
---
|
16
|
+
|
17
|
+
You're trying to follow TDD or ATDD principles, you're writing executable specifications in gherkin using Cucumber, you're trying to do *the right thing* but are you doing *the thing right*?
|
18
|
+
|
19
|
+
Cucumber itself is an awesome tool which bridges with gap between business language, software development language and the language of testers. With all these folks interested, it's easy to write problematic and hard to maintain features. Chutney tries to help with that by having a common set of quality rules for your feature files.
|
20
|
+
|
21
|
+
Chutney is able to lint feature files in any spoken language supported by Cucumber 3.
|
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Installing
|
4
|
+
nav_order: 2
|
5
|
+
---
|
6
|
+
|
7
|
+
# Installing
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'faker_maker', require: false
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install chutney
|
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Configuration
|
4
|
+
parent: Usage
|
5
|
+
nav_order: 3
|
6
|
+
---
|
7
|
+
|
8
|
+
# Configuration
|
9
|
+
|
10
|
+
Chutney looks for a configuration file in the current directory called `config/chutney.yml`. This configuration mostly switches on individual linters globally, but a few have addition parameters which can be configured (e.g. the maximum characters in a step).
|
11
|
+
|
12
|
+
A default configuration can be found [here](https://github.com/BillyRuffian/chutney/blob/master/config/default.yml).
|
data/docs/usage/index.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Usage
|
4
|
+
nav_order: 3
|
5
|
+
has_children: true
|
6
|
+
---
|
7
|
+
|
8
|
+
# Usage
|
9
|
+
|
10
|
+
Chutney expects to be able to find your Cucumber `.feature` files. By default, it will look for a folder called `features` in the current directory and will dig through all subfolders to find features.
|
11
|
+
|
12
|
+
You can give Chutney a path (using Ruby's globbing rules) or a single file if you want.
|
13
|
+
|
14
|
+
```
|
15
|
+
chutney '<wild_card_path>' #default is `features/**/*.feature`
|
16
|
+
```
|
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Output & Exit Codes
|
4
|
+
parent: Usage
|
5
|
+
nav_order: 1
|
6
|
+
---
|
7
|
+
|
8
|
+
# Output
|
9
|
+
|
10
|
+
Chutney ships with a few formatters, the default being the Rainbow Formatter (it has coloured terminal output). Others included are the Pie Formatter which presents a textual pie chart of all the violations, and a JSON Formatter which, as is sounds, dumps the result as a JSON string.
|
11
|
+
|
12
|
+
You can specify one or formatters with the `-f` flag. For instance...
|
13
|
+
|
14
|
+
```
|
15
|
+
chutney -f RainbowFormatter -f PieFormatter -f JSONFormatter
|
16
|
+
```
|
17
|
+
|
18
|
+
## Building Your Own Formatters
|
19
|
+
|
20
|
+
Chutney expects formatters to be namespaced to the `Chutney` module and respond to `results=(results_hash)` and `format`. There is a parent class `Chutney::Formatter` which provides a few utility methods you might find useful.
|
21
|
+
|
22
|
+
Take a look a the JSONFormatter as the most minimal implementation -- it just calls `to_json` on the hash it is given.
|
23
|
+
|
24
|
+
## Exit Codes
|
25
|
+
|
26
|
+
Using the command line, Chutney returns 0 if no violations are found, 1 if one or more are found.
|
data/docs/usage/rules.md
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Rules
|
4
|
+
parent: Usage
|
5
|
+
nav_order: 2
|
6
|
+
---
|
7
|
+
|
8
|
+
# Linting Rules
|
9
|
+
|
10
|
+
Chutney enforces its rules with the linters. These are:
|
11
|
+
|
12
|
+
AvoidFullStop
|
13
|
+
: Don't have a full stop (period) at the end of step because it makes step reuse really hard.
|
14
|
+
|
15
|
+
AvoidOutlineForSingleExample
|
16
|
+
: If you only have a single example in your example table, use a plain-old scenario instead.
|
17
|
+
|
18
|
+
AvoidScripting
|
19
|
+
: You have a lot of steps, are you sure you're not scripting the scenario when you should be specifying the behaviour of the system?
|
20
|
+
|
21
|
+
BackgroundDoesMoreThanSetup
|
22
|
+
: Background in feature files should only do setup activity and so they should only contain `Given` steps.
|
23
|
+
|
24
|
+
BackgroundRequiresMultipleScenarios
|
25
|
+
: If you only have one scenario, don't bother having a Background section.
|
26
|
+
|
27
|
+
BadScenarioName
|
28
|
+
: You should avoid using words like 'test' or 'check' in your scenario names, instead you should define the behaviour of your system.
|
29
|
+
|
30
|
+
FileNameDiffersFeatureName
|
31
|
+
: The feature should have a name that follows the file name.
|
32
|
+
|
33
|
+
GivensAfterBackground
|
34
|
+
: If you have a Background section and your scenario needs more preconditions then it should start immediately with an `And` step and not another `Given`.
|
35
|
+
|
36
|
+
InvalidFileName
|
37
|
+
: Make sure your file name is in snake case, not mixed case or with spaces.
|
38
|
+
|
39
|
+
InvalidStepFlow
|
40
|
+
: Your scenarios should follow Given → When → Then, in that order.
|
41
|
+
|
42
|
+
MissingExampleName
|
43
|
+
: If you have more than one example table in your scenario, they should each be given unique names.
|
44
|
+
|
45
|
+
MissingFeatureDescription
|
46
|
+
: Your feature should have a value statement. These are usually in the form 'As a... I want.. So that...'.
|
47
|
+
|
48
|
+
MissingFeatureName
|
49
|
+
: You should give your features a descriptive name.
|
50
|
+
|
51
|
+
MissingScenarioName
|
52
|
+
: You should name your scenarios and scenario outlines.
|
53
|
+
|
54
|
+
MissingTestAction
|
55
|
+
: You don't have an action (a `When` step) in your scenario.
|
56
|
+
|
57
|
+
MissingVerification
|
58
|
+
: You don't have a verification step (a `Then` step) in your scenario.
|
59
|
+
|
60
|
+
RequiredTagsStartWith
|
61
|
+
: Chutney can enforce a configurable naming prefix for your tags.
|
62
|
+
|
63
|
+
SameTagForAllScenarios
|
64
|
+
: You have the same tag for all you scenarios; move the tag to the feature level instead.
|
65
|
+
|
66
|
+
ScenarioNamesMatch
|
67
|
+
: Chutney can enforce a naming convention for your scenario names.
|
68
|
+
|
69
|
+
TagUsedMultipleTimes
|
70
|
+
: Chutney can warn if you have used a tag a lot with a feature.
|
71
|
+
|
72
|
+
TooClumsy
|
73
|
+
: This is a very long scenario. Consider writing it more concisely.
|
74
|
+
|
75
|
+
TooLongStep
|
76
|
+
: This is a very long step. Consider writing it more concisely.
|
77
|
+
|
78
|
+
TooManyDifferentTags
|
79
|
+
: This feature has a lot of differnt tags.
|
80
|
+
|
81
|
+
TooManySteps
|
82
|
+
: This feature has a lot of steps. Consider writing it more concisely.
|
83
|
+
|
84
|
+
TooManyTags
|
85
|
+
: There are a lot of tags in this feature.
|
86
|
+
|
87
|
+
UniqueScenarioNames
|
88
|
+
: You have duplicated a scenario name when they should be unique.
|
89
|
+
|
90
|
+
UnknownVariable
|
91
|
+
: You are referencing a variable which doesn't appear to be defined. This is a source of subtle errors.
|
92
|
+
|
93
|
+
UnusedVariable
|
94
|
+
: You have a variable which you are not using.
|
95
|
+
|
96
|
+
UseBackground
|
97
|
+
: You have a setup setup used in all of your scenarios. Move it to a Background section.
|
98
|
+
|
99
|
+
UseOutline
|
100
|
+
: You have very similar scenarios. You should consider if they should be combined into a Scenario Outline.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Selectively Disabling Rules
|
4
|
+
parent: Usage
|
5
|
+
nav_order: 4
|
6
|
+
---
|
7
|
+
|
8
|
+
# Selectively Disabling Rules
|
9
|
+
|
10
|
+
Sometimes you want to be able to disable linting rules for just one specific file or one specific scenario.
|
11
|
+
|
12
|
+
To do this, use the tag format `@disable<Linter Name>`. For example `@disableTooLongStep`.
|
13
|
+
|
14
|
+
If used at the feature level, the linter will be deactivated for the whole file, used at the scenario level, only that one scenario will be excused.
|
data/exe/chutney
CHANGED
@@ -10,7 +10,9 @@ formatters = Set.new
|
|
10
10
|
|
11
11
|
OptionParser.new do |opts|
|
12
12
|
opts.banner = 'Usage: chutney [files]'
|
13
|
-
opts.on('-f',
|
13
|
+
opts.on('-f',
|
14
|
+
'--format [formatter]',
|
15
|
+
'One of JSONFormatter, PieFormatter or RainbowFormatter (default).') do |formatter|
|
14
16
|
raise 'No Such Formatter' unless %w[JSONFormatter PieFormatter RainbowFormatter].include? formatter
|
15
17
|
|
16
18
|
formatters << formatter
|
data/lib/chutney/formatter.rb
CHANGED
@@ -21,11 +21,10 @@ module Chutney
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def print_report(data)
|
24
|
-
unless data.empty?
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
# put_summary
|
24
|
+
return unless data.empty?
|
25
|
+
|
26
|
+
print TTY::Pie.new(data: data, radius: 8, legend: { format: '%<label>s %<name>s %<value>i' })
|
27
|
+
puts
|
29
28
|
end
|
30
29
|
|
31
30
|
def top_offences
|
data/lib/chutney/version.rb
CHANGED
data/lib/config/locales/en.yml
CHANGED
@@ -37,7 +37,7 @@ en:
|
|
37
37
|
This scenario is missing an action step -- it does not have a 'When'.
|
38
38
|
missing_example_name: >-
|
39
39
|
You have a scenerio with more than one example table, at least one of which is
|
40
|
-
unnamed or has a duplicate name.
|
40
|
+
unnamed or has a duplicate name.
|
41
41
|
You should give your example tables clear and meaningful names when you have more than one.
|
42
42
|
missing_feature_description: >-
|
43
43
|
Features should have a description / value statement so that the importance of the feature
|
@@ -55,7 +55,7 @@ en:
|
|
55
55
|
required_tags_starts_with: >-
|
56
56
|
You have tags which do not match the required format. Allowed prefixes are '%{allowed}'.
|
57
57
|
scenario_names_match: >-
|
58
|
-
You have scenario name which
|
58
|
+
You have a scenario name which does not match the required format.
|
59
59
|
Allowed patterns are '%{pattern}'.
|
60
60
|
same_tag_for_all_scenarios:
|
61
61
|
feature_level: >-
|
@@ -71,7 +71,7 @@ en:
|
|
71
71
|
This scenario is too clumsy at %{length} characters. Scenarios should be no more than
|
72
72
|
400 characters long.
|
73
73
|
too_long_step: >-
|
74
|
-
This step is too long at %{length} characters. It should be no longer than %{max}
|
74
|
+
This step is too long at %{length} characters. It should be no longer than %{max}
|
75
75
|
characters.
|
76
76
|
too_many_different_tags: >-
|
77
77
|
There are too many tags in this feature. There are %{count} and the maximum is %{max}.
|
@@ -89,5 +89,5 @@ en:
|
|
89
89
|
The step '%{step}' is used in all the scenarios of this feature. It should be moved
|
90
90
|
to the background steps.
|
91
91
|
use_outline: >-
|
92
|
-
Scenarios are similar by %{pct}%, you should use scenario outlines to simplify.
|
93
|
-
%{lhs_name} (%{lhs_line}) vs %{rhs_name} (%{rhs_line})
|
92
|
+
Scenarios are similar by %{pct}%, you should use scenario outlines to simplify.
|
93
|
+
%{lhs_name} (%{lhs_line}) vs %{rhs_name} (%{rhs_line})
|
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: 2.0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nigel Brookes-Thomas
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-02-
|
14
|
+
date: 2020-02-07 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: amatch
|
@@ -181,9 +181,8 @@ dependencies:
|
|
181
181
|
- - "~>"
|
182
182
|
- !ruby/object:Gem::Version
|
183
183
|
version: '3.8'
|
184
|
-
description: A
|
185
|
-
|
186
|
-
monogem.
|
184
|
+
description: A linter for your Cucumber features. It supports any spoken language
|
185
|
+
Cucumber v3 supports.
|
187
186
|
email:
|
188
187
|
- nigel@brookes-thomas.co.uk
|
189
188
|
executables:
|
@@ -197,12 +196,21 @@ files:
|
|
197
196
|
- ".rspec"
|
198
197
|
- ".rubocop.yml"
|
199
198
|
- Gemfile
|
200
|
-
- LICENSE
|
199
|
+
- LICENSE.txt
|
201
200
|
- README.md
|
202
201
|
- Rakefile
|
203
202
|
- chutney.gemspec
|
204
203
|
- config/chutney.yml
|
205
204
|
- docs/.keep
|
205
|
+
- docs/_config.yml
|
206
|
+
- docs/credits.md
|
207
|
+
- docs/index.md
|
208
|
+
- docs/installation.md
|
209
|
+
- docs/usage/configuration.md
|
210
|
+
- docs/usage/index.md
|
211
|
+
- docs/usage/output.md
|
212
|
+
- docs/usage/rules.md
|
213
|
+
- docs/usage/selective_enablement.md
|
206
214
|
- exe/chutney
|
207
215
|
- img/chutney.svg
|
208
216
|
- img/formatters.png
|
@@ -249,11 +257,13 @@ files:
|
|
249
257
|
- lib/config/locales/en.yml
|
250
258
|
- spec/chutney_spec.rb
|
251
259
|
- spec/spec_helper.rb
|
252
|
-
homepage: https://github.
|
260
|
+
homepage: https://billyruffian.github.io/faker_maker/
|
253
261
|
licenses:
|
254
262
|
- MIT
|
255
263
|
metadata:
|
264
|
+
homepage_uri: https://billyruffian.github.io/faker_maker/
|
256
265
|
source_code_uri: https://github.com/BillyRuffian/chutney
|
266
|
+
changelog_uri: https://github.com/BillyRuffian/chutney/releases
|
257
267
|
post_install_message:
|
258
268
|
rdoc_options: []
|
259
269
|
require_paths:
|
@@ -265,9 +275,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
265
275
|
version: '0'
|
266
276
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
267
277
|
requirements:
|
268
|
-
- - "
|
278
|
+
- - ">="
|
269
279
|
- !ruby/object:Gem::Version
|
270
|
-
version:
|
280
|
+
version: '0'
|
271
281
|
requirements: []
|
272
282
|
rubygems_version: 3.1.2
|
273
283
|
signing_key:
|