rubocop-govuk 3.13.0 → 3.17.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62dc759573252798424f235663c439372ba78633ddfc4c364a56c2c990bd0d81
4
- data.tar.gz: 9db1279a3a90e925dca92097c850ca80be8f7192767c0ae9904244d83fabd5e3
3
+ metadata.gz: 8ef0a8b1f526bdba1c8152abe1e2c64899667bae4333034e8fe522860a96fedc
4
+ data.tar.gz: ae376a5117e15ba9ce86e83524df9422c6211d56f3298a24344101ac5cfb24e3
5
5
  SHA512:
6
- metadata.gz: 7c161b73b6ef22befd230cfc80c014feabe843f129ccaad1f06d47ee95f7d354af51521dab59e623d68f4b296891fc6ac7b010365a0fd035e7da6beac9ecff35
7
- data.tar.gz: 2ea28a10f3244ee3527a9d0adbe7e07f7c3c6f9a0416a2ecd5ddb6b52034fdb0541ada3e0daaa74b9c2b9b6c67b24ccbac3033198b698a77b1eff3e74716f236
6
+ metadata.gz: 3f8c2597c64a1842bb5e8c5a9a78fb7dac3b898865c3da60dfad238a0c022ff95bf32cb2f3bee1ffe2ab7e9897378c93670ced073d428613e4bc1267c9e662a5
7
+ data.tar.gz: 32b99fa71506c6314f783ae30b84f077ec56de20dc6a27f1530fb829581b7b0cbf7404d5cc70aaa1761792f60b886865f2736cddddb125c0ae3b1792a48a7ee9
@@ -1,3 +1,32 @@
1
+ # 3.17.1
2
+
3
+ - Pin rubocop-ast to 0.8.0
4
+
5
+ # 3.17.0
6
+
7
+ - Enable Rails/SaveBang
8
+ - Enable Style/DateTime
9
+ - Enforce strict Time.zone.now
10
+ - Bump rubocop to 0.87.1
11
+ - Bump rubocop-rspec to 1.42.0
12
+
13
+ # 3.16.0
14
+
15
+ - Bump and lock rubocop-rails to 2.6.0
16
+ - Bump and lock rubocop-rspec to 1.39.0
17
+
18
+ # 3.15.0
19
+
20
+ - Remove cops that are RuboCop defaults (#88)
21
+ - Disable Rails/DynamicFindBy
22
+ - Permit "and", "but" with RSpec/ContextWording
23
+
24
+ # 3.14.0
25
+
26
+ - Disable Rails/InverseOf
27
+ - Disable Rails/HasManyOrHasOneDependent
28
+ - Disable Rails/OutputSafety
29
+
1
30
  # 3.13.0
2
31
 
3
32
  - Disable Layout/FirstMethodArgumentLineBreak (#79)
data/README.md CHANGED
@@ -11,35 +11,39 @@ Add `rubocop-govuk` to your Gemfile and then run `bundle install`:
11
11
  gem 'rubocop-govuk'
12
12
  ```
13
13
 
14
- Inherit rules from the gem by adding the following to your project's RuboCop config:
14
+ Then inherit the default rules by adding the following in your project:
15
15
 
16
16
  ```yaml
17
17
  # .rubocop.yml
18
18
  inherit_gem:
19
19
  rubocop-govuk:
20
20
  - config/default.yml
21
+
22
+ inherit_mode:
23
+ merge:
24
+ - Exclude
21
25
  ```
22
26
 
23
- or if you also need Rails specific rules:
27
+ You can also configure additional rules for Rails and RSpec:
24
28
 
25
29
  ```yaml
26
30
  # .rubocop.yml
27
31
  inherit_gem:
28
32
  rubocop-govuk:
29
- - config/default.yml
33
+ ...
30
34
  - config/rails.yml
31
-
32
- inherit_mode:
33
- merge:
34
- - Exclude
35
35
  ```
36
36
 
37
- ## Usage
37
+ ```yaml
38
+ # .rubocop.yml
39
+ inherit_gem:
40
+ rubocop-govuk:
41
+ ...
42
+ - config/rspec.yml
43
+ ```
38
44
 
39
- Run RuboCop:
45
+ ## Testing
40
46
 
41
- ```sh
42
- bundle exec rubocop
43
- ```
47
+ Run `bundle exec rake`.
44
48
 
45
49
  [guides]: https://github.com/alphagov/styleguides
@@ -1,10 +1,3 @@
1
- # Part of the orignal GDS styleguide
2
- # "Use empty lines between defs and to break up a method into logical paragraphs."
3
- # https://github.com/alphagov/styleguides/blob/6395a10d41c3938f4c147cda443fd83f854c3e7a/ruby.md#general
4
- Layout/EmptyLineBetweenDefs:
5
- Enabled: true
6
- AllowAdjacentOneLineDefs: false
7
-
8
1
  # https://github.com/alphagov/govuk-lint/pull/7
9
2
  # "There are occasions where following this rule forces you to make the
10
3
  # code less readable. This is particularly the case for tests where method
@@ -13,6 +13,17 @@ AllCops:
13
13
  Rails:
14
14
  Enabled: true
15
15
 
16
+ # We have custom find_by methods in several repos, which
17
+ # we're not going to rename. This Cop also raises false
18
+ # positives for find_by methods that are unrelated to model
19
+ # classes, as well as for repos using Mongoid. The value
20
+ # of the consistency this brings is limited, since we mostly
21
+ # use find_by(key: value) anyway.
22
+ #
23
+ # https://github.com/rubocop-hq/rubocop/issues/3758
24
+ Rails/DynamicFindBy:
25
+ Enabled: false
26
+
16
27
  # We commonly print output in Ruby code that has been
17
28
  # extracted from a Rake task in 'lib/'.
18
29
  Rails/Output:
@@ -40,3 +51,44 @@ Rails/SkipsModelValidations:
40
51
  # relationships are just # many-to-many, and that's it.
41
52
  Rails/HasAndBelongsToMany:
42
53
  Enabled: false
54
+
55
+ # While using 'inverse_of' can reduce DB queries, we have
56
+ # not found this to be a problem in practice. The advantage
57
+ # of turning this on would be that we make the inverse
58
+ # behaviour explicit everywhere ActiveRecord can't apply it
59
+ # automatically, but this is rarely a surprise for developers.
60
+ # We also don't want to add 'inverse_of: false' everywhere;
61
+ # at the time of writing, there is no auto-correct for this.
62
+ Rails/InverseOf:
63
+ Enabled: false
64
+
65
+ # This is incompatible with the more robust use of foreign
66
+ # key constraints, which provide the same behaviour.
67
+ #
68
+ # Example: https://github.com/alphagov/content-publisher/blob/f26d9b551842fdf2084159b5b7f1bb078da56936/db/schema.rb#L396
69
+ Rails/HasManyOrHasOneDependent:
70
+ Enabled: false
71
+
72
+ # We commonly want to render HTML without escaping it, which
73
+ # is what 'html_safe' is for. In many cases, the content we
74
+ # render has already been sanitised (e.g. through Govspeak),
75
+ # or is otherwise trusted e.g. from a content item. We trust
76
+ # that developers will use 'html_safe' responsibly, and prefer
77
+ # the default, escaped output otherwise. At the time of writing,
78
+ # this Cop is disabled in a lot of repos, indicating it offers
79
+ # little value to many developers.
80
+ Rails/OutputSafety:
81
+ Enabled: false
82
+
83
+ # We seldom check the return value of 'update' to see if
84
+ # the operation was successful. Since we assume success, we
85
+ # should raise an exception if this is not the case.
86
+ Rails/SaveBang:
87
+ Enabled: true
88
+
89
+ # We should avoid unnecessary ambiguity between 'Time.current'
90
+ # and 'Time.zone.now', where 'Time.current' behaves differently
91
+ # depending on application config. We should always be explicit
92
+ # about whether we mean 'Time[.zone].now'.
93
+ Rails/TimeZone:
94
+ EnforcedStyle: "strict"
@@ -35,3 +35,13 @@ RSpec/MessageSpies:
35
35
  # it's not clear what action to take to fix an issue.
36
36
  RSpec/NestedGroups:
37
37
  Enabled: false
38
+
39
+ # Nested contexts make more sense with "and" or "but", since
40
+ # they are a refinement of an outer context.
41
+ RSpec/ContextWording:
42
+ Prefixes:
43
+ - when
44
+ - with
45
+ - without
46
+ - and
47
+ - but
@@ -13,20 +13,6 @@ Style/IfUnlessModifier:
13
13
  Style/MethodCalledOnDoEndBlock:
14
14
  Enabled: true
15
15
 
16
- # Part of the orignal GDS styleguide
17
- # "Omit the parentheses when the method doesn’t accept any arguments"
18
- # https://github.com/alphagov/styleguides/blob/6395a10d41c3938f4c147cda443fd83f854c3e7a/ruby.md#syntax
19
- Style/MethodCallWithoutArgsParentheses:
20
- Enabled: true
21
-
22
- # Part of the orignal GDS styleguide
23
- # "Use Ruby 1.9 syntax for symbolic hash keys.
24
- # This includes method calls."
25
- # https://github.com/alphagov/styleguides/blob/6395a10d41c3938f4c147cda443fd83f854c3e7a/ruby.md#collections
26
- Style/HashSyntax:
27
- Exclude:
28
- - 'db/schema.rb'
29
-
30
16
  # Part of the orignal GDS styleguide
31
17
  # "Add a trailing comma to multi-line array [...]
32
18
  # for clearer diffs with less line noise."
@@ -153,14 +139,17 @@ Style/RegexpLiteral:
153
139
  Style/SafeNavigation:
154
140
  Enabled: false
155
141
 
156
- # We should allow for single line empty methods, as this
157
- # is a convention for Rails controller actions.
158
- Style/SingleLineMethods:
159
- AllowIfMethodIsEmpty: true
160
-
161
142
  # Introduced in: b171d652d3e434b74ddc621df3b5be24c49bc7e8
162
143
  # This cop was added in preperation for a Ruby feature
163
144
  # that is no longer likely to become part of the language.
164
145
  # https://github.com/rubocop-hq/rubocop/issues/7197
165
146
  Style/FrozenStringLiteralComment:
166
147
  Enabled: false
148
+
149
+ # We should only use DateTime when it's necessary to account
150
+ # for ancient calendar changes. Otherwise, the arbitrary use
151
+ # of this class in place of Date or Time is confusing.
152
+ #
153
+ # https://rubystyle.guide/#no-datetime
154
+ Style/DateTime:
155
+ Enabled: true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-govuk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.13.0
4
+ version: 3.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Government Digital Service
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-21 00:00:00.000000000 Z
11
+ date: 2020-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -16,70 +16,84 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '13.0'
19
+ version: '13'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '13.0'
26
+ version: '13'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.83.0
33
+ version: 0.87.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.83.0
40
+ version: 0.87.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop-ast
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.8.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.8.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rubocop-rails
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - '='
46
60
  - !ruby/object:Gem::Version
47
- version: '2'
61
+ version: 2.8.1
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - '='
53
67
  - !ruby/object:Gem::Version
54
- version: '2'
68
+ version: 2.8.1
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rubocop-rake
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
73
+ - - '='
60
74
  - !ruby/object:Gem::Version
61
75
  version: 0.5.1
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - "~>"
80
+ - - '='
67
81
  - !ruby/object:Gem::Version
68
82
  version: 0.5.1
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rubocop-rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - '='
74
88
  - !ruby/object:Gem::Version
75
- version: '1.28'
89
+ version: 1.42.0
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - '='
81
95
  - !ruby/object:Gem::Version
82
- version: '1.28'
96
+ version: 1.42.0
83
97
  description: Shared RuboCop rules for Ruby projects in GOV.UK
84
98
  email:
85
99
  - govuk-dev@digital.cabinet-office.gov.uk
@@ -118,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
132
  - !ruby/object:Gem::Version
119
133
  version: '0'
120
134
  requirements: []
121
- rubygems_version: 3.1.3
135
+ rubygems_version: 3.1.4
122
136
  signing_key:
123
137
  specification_version: 4
124
138
  summary: RuboCop GOV.UK