betterlint 1.17.0 → 1.19.0
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 +4 -4
- data/README.md +21 -0
- data/config/default.yml +11 -0
- data/lib/rubocop/cop/betterment/active_job_performable.rb +1 -1
- data/lib/rubocop/cop/betterment/allowlist_blocklist.rb +2 -2
- data/lib/rubocop/cop/betterment/authorization_in_controller.rb +5 -5
- data/lib/rubocop/cop/betterment/direct_delayed_enqueue.rb +1 -0
- data/lib/rubocop/cop/betterment/dynamic_params.rb +2 -1
- data/lib/rubocop/cop/betterment/environment_configuration.rb +20 -0
- data/lib/rubocop/cop/betterment/fetch_boolean.rb +1 -0
- data/lib/rubocop/cop/betterment/hardcoded_id.rb +1 -0
- data/lib/rubocop/cop/betterment/implicit_redirect_type.rb +2 -1
- data/lib/rubocop/cop/betterment/internals_protection.rb +1 -0
- data/lib/rubocop/cop/betterment/memoization_with_arguments.rb +2 -2
- data/lib/rubocop/cop/betterment/non_standard_actions.rb +2 -3
- data/lib/rubocop/cop/betterment/non_standard_controller.rb +1 -0
- data/lib/rubocop/cop/betterment/server_error_assertion.rb +2 -1
- data/lib/rubocop/cop/betterment/site_prism_loaded.rb +10 -11
- data/lib/rubocop/cop/betterment/spec_helper_required_outside_spec_dir.rb +2 -1
- data/lib/rubocop/cop/betterment/timeout.rb +2 -1
- data/lib/rubocop/cop/betterment/unsafe_job.rb +4 -5
- data/lib/rubocop/cop/betterment/unscoped_find.rb +4 -4
- data/lib/rubocop/cop/betterment/use_global_strict_loading.rb +2 -0
- data/lib/rubocop/cop/betterment/vague_serialize.rb +1 -0
- data/lib/rubocop/cop/betterment.rb +1 -0
- metadata +19 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0adfef8c242987ffe23f5281c1bf5adceefbe66b1d21e4720cc3eecb5a11f7ef
|
4
|
+
data.tar.gz: 824104f6bbba860b30dcc6231935774307c238ef96d077a50a7f30faf79fab27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71e15b73154d81aef392ee4acefb64548ed6c51ce0789ee7d74fb9010077cb91361752faeed7d45331ea0311ac934073f5ba924cf2f887e77702ed863dbd1b25
|
7
|
+
data.tar.gz: 944e4b25de84d12030f27c1346e79311906426216bd45ae7a6431aa6341c2d51828b601d16ed0ae2b6ddc9d03a08ea102f405c0a613b58300e3cc78825b3a0fe
|
data/README.md
CHANGED
@@ -130,6 +130,27 @@ end
|
|
130
130
|
```
|
131
131
|
|
132
132
|
All three `params.permit` calls will be flagged.
|
133
|
+
|
134
|
+
### Betterment/EnvironmentConfiguration
|
135
|
+
|
136
|
+
This cop identifies references to `ENV` outside of the config directory.
|
137
|
+
|
138
|
+
Environment variables should be parsed at boot time. If an environment variable is missing or invalid,
|
139
|
+
the application should fail to boot.
|
140
|
+
|
141
|
+
If there isn't a better place to assign your environment variable, Rails provides the `config.x` namespace
|
142
|
+
for [custom configuration](https://guides.rubyonrails.org/configuring.html#custom-configuration):
|
143
|
+
|
144
|
+
```ruby
|
145
|
+
config.x.whatever = ENV.fetch('WHATEVER')
|
146
|
+
```
|
147
|
+
|
148
|
+
Here's how you'd reference this configuration parameter at runtime:
|
149
|
+
|
150
|
+
```ruby
|
151
|
+
Rails.configuration.x.whatever
|
152
|
+
```
|
153
|
+
|
133
154
|
### Betterment/InternalsProtection
|
134
155
|
|
135
156
|
This cop is not enabled by default, and must be enabled from your `.rubocop.yml` file:
|
data/config/default.yml
CHANGED
@@ -31,12 +31,21 @@ Betterment/AuthorizationInController:
|
|
31
31
|
Description: Detects unsafe handling of id-like parameters in controllers.
|
32
32
|
Enabled: false
|
33
33
|
StyleGuide: '#bettermentauthorizationincontroller'
|
34
|
+
unsafe_regex: ".*_id$"
|
35
|
+
unsafe_parameters: []
|
34
36
|
|
35
37
|
Betterment/DirectDelayedEnqueue:
|
36
38
|
StyleGuide: '#bettermentdirectdelayedenqueue'
|
37
39
|
|
38
40
|
Betterment/DynamicParams:
|
39
41
|
StyleGuide: '#bettermentdynamicparams'
|
42
|
+
|
43
|
+
Betterment/EnvironmentConfiguration:
|
44
|
+
StyleGuide: '#bettermentenvironmentconfiguration'
|
45
|
+
Exclude:
|
46
|
+
- config/**/*.rb
|
47
|
+
- spec/**/*.rb
|
48
|
+
- test/**/*.rb
|
40
49
|
|
41
50
|
Betterment/HardcodedID:
|
42
51
|
AutoCorrect: false
|
@@ -94,6 +103,7 @@ Betterment/SitePrismLoaded:
|
|
94
103
|
Betterment/UnsafeJob:
|
95
104
|
Enabled: false
|
96
105
|
StyleGuide: '#bettermentunsafejob'
|
106
|
+
class_regex: ".*Job$"
|
97
107
|
sensitive_params:
|
98
108
|
- password
|
99
109
|
- social_security_number
|
@@ -101,6 +111,7 @@ Betterment/UnsafeJob:
|
|
101
111
|
|
102
112
|
Betterment/UnscopedFind:
|
103
113
|
StyleGuide: '#bettermentunscopedfind'
|
114
|
+
unauthenticated_models: []
|
104
115
|
|
105
116
|
Betterment/UseGlobalStrictLoading/ByDefaultForModels:
|
106
117
|
Enabled: true
|
@@ -4,8 +4,8 @@
|
|
4
4
|
module RuboCop
|
5
5
|
module Cop
|
6
6
|
module Betterment
|
7
|
-
class AllowlistBlocklist <
|
8
|
-
MSG =
|
7
|
+
class AllowlistBlocklist < Base
|
8
|
+
MSG = <<~DOC
|
9
9
|
Avoid usages of whitelist & blacklist, in favor of more inclusive and descriptive language.
|
10
10
|
For consistency, favor 'allowlist' and 'blocklist' where possible, but other terms (such as
|
11
11
|
denylist, ignorelist, warnlist, safelist, etc) may be appropriate, depending on the use case.
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Betterment
|
6
|
-
class AuthorizationInController <
|
6
|
+
class AuthorizationInController < Base
|
7
7
|
attr_accessor :unsafe_parameters, :unsafe_regex
|
8
8
|
|
9
9
|
# MSG_UNSAFE_CREATE = 'Model created/updated using unsafe parameters'.freeze
|
@@ -34,10 +34,9 @@ module RuboCop
|
|
34
34
|
PATTERN
|
35
35
|
|
36
36
|
def initialize(config = nil, options = nil)
|
37
|
-
super
|
38
|
-
|
39
|
-
@
|
40
|
-
@unsafe_regex = Regexp.new config.fetch("unsafe_regex", ".*_id$")
|
37
|
+
super
|
38
|
+
@unsafe_parameters = cop_config.fetch("unsafe_parameters").map(&:to_sym)
|
39
|
+
@unsafe_regex = Regexp.new cop_config.fetch("unsafe_regex")
|
41
40
|
@param_wrappers = []
|
42
41
|
end
|
43
42
|
|
@@ -67,6 +66,7 @@ module RuboCop
|
|
67
66
|
end
|
68
67
|
end
|
69
68
|
end
|
69
|
+
alias on_csend on_send
|
70
70
|
|
71
71
|
private
|
72
72
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Betterment
|
6
|
-
class DynamicParams <
|
6
|
+
class DynamicParams < Base
|
7
7
|
MSG_DYNAMIC_PARAMS = <<~MSG
|
8
8
|
Parameter names accessed dynamically, cannot determine safeness. Please inline the keys explicitly when calling `permit` or when accessing `params` like a hash.
|
9
9
|
|
@@ -22,6 +22,7 @@ module RuboCop
|
|
22
22
|
dynamic_param = find_dynamic_param(arg_nodes)
|
23
23
|
add_offense(dynamic_param, message: MSG_DYNAMIC_PARAMS) if dynamic_param
|
24
24
|
end
|
25
|
+
alias on_csend on_send
|
25
26
|
|
26
27
|
private
|
27
28
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Betterment
|
6
|
+
class EnvironmentConfiguration < Base
|
7
|
+
MSG =
|
8
|
+
"Environment variables should be parsed at boot time and assigned " \
|
9
|
+
"to `Rails.configuration` or some other configurable object."
|
10
|
+
|
11
|
+
# @!method env?(node)
|
12
|
+
def_node_matcher :env?, '(const nil? :ENV)'
|
13
|
+
|
14
|
+
def on_const(node)
|
15
|
+
add_offense(node) if env?(node)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -14,7 +14,7 @@ module RuboCop
|
|
14
14
|
# # good
|
15
15
|
# get '/', redirect('/dashboard', status: 301)
|
16
16
|
# get(status: 302) { |params, request| '/dashboard' }
|
17
|
-
class ImplicitRedirectType <
|
17
|
+
class ImplicitRedirectType < Base
|
18
18
|
ROUTES_FILE_NAME = 'routes.rb'
|
19
19
|
MSG =
|
20
20
|
'Rails will create a permanent (301) redirect, which is dangerous. ' \
|
@@ -60,6 +60,7 @@ module RuboCop
|
|
60
60
|
add_offense(node)
|
61
61
|
end
|
62
62
|
end
|
63
|
+
alias on_csend on_send
|
63
64
|
|
64
65
|
private
|
65
66
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Betterment
|
6
|
-
class MemoizationWithArguments <
|
6
|
+
class MemoizationWithArguments < Base
|
7
7
|
MSG = 'Memoized method `%<method>s` accepts arguments, ' \
|
8
8
|
'which may cause it to return a stale result. ' \
|
9
9
|
'Remove memoization or refactor to remove arguments.'
|
@@ -26,7 +26,7 @@ module RuboCop
|
|
26
26
|
return if ivar_assign.nil? || node.arguments.empty? || method_name == :initialize
|
27
27
|
|
28
28
|
msg = format(MSG, method: method_name)
|
29
|
-
add_offense(
|
29
|
+
add_offense(ivar_assign, message: msg)
|
30
30
|
end
|
31
31
|
alias on_defs on_def
|
32
32
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Betterment
|
6
|
-
class NonStandardActions <
|
6
|
+
class NonStandardActions < Base
|
7
7
|
MSG_GENERAL = 'Use a new controller instead of custom actions.'
|
8
8
|
MSG_RESOURCE_ONLY = "Resource route refers to a non-standard action in it's 'only:' param. #{MSG_GENERAL}".freeze
|
9
9
|
MSG_ROUTE_TO = "Route goes to a non-standard controller action. #{MSG_GENERAL}".freeze
|
@@ -62,9 +62,8 @@ module RuboCop
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
-
# NOTE: The InternalAffairs/UndefinedConfig rule seems to have a bug where it can't fine these configs in config/default.yml
|
66
65
|
def allowed_actions
|
67
|
-
@allowed_actions ||= cop_config['StandardActions'] + cop_config['AdditionalAllowedActions']
|
66
|
+
@allowed_actions ||= cop_config['StandardActions'] + cop_config['AdditionalAllowedActions']
|
68
67
|
end
|
69
68
|
|
70
69
|
def allowed_action?(action)
|
@@ -29,7 +29,7 @@ module RuboCop
|
|
29
29
|
#
|
30
30
|
# # good
|
31
31
|
# expect(response).to have_http_status 422
|
32
|
-
class ServerErrorAssertion <
|
32
|
+
class ServerErrorAssertion < Base
|
33
33
|
MSG = 'Do not assert on 5XX statuses. Use a semantic status (e.g., 403, 422, etc.) or treat them as bugs (omit tests).'
|
34
34
|
BAD_STATUSES = %i(
|
35
35
|
internal_server_error
|
@@ -57,6 +57,7 @@ module RuboCop
|
|
57
57
|
|
58
58
|
add_offense(node)
|
59
59
|
end
|
60
|
+
alias on_csend on_send
|
60
61
|
end
|
61
62
|
end
|
62
63
|
end
|
@@ -3,24 +3,23 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Betterment
|
6
|
-
class SitePrismLoaded <
|
6
|
+
class SitePrismLoaded < Base
|
7
|
+
extend AutoCorrector
|
8
|
+
|
7
9
|
MSG = 'Use `be_loaded` instead of `be_displayed`'
|
8
10
|
|
9
|
-
def_node_matcher :
|
10
|
-
(send (send nil? :expect _) _ (send nil? :be_displayed))
|
11
|
+
def_node_matcher :on_be_displayed, <<-PATTERN
|
12
|
+
(send (send nil? :expect _) _ $(send nil? :be_displayed))
|
11
13
|
PATTERN
|
12
14
|
|
13
15
|
def on_send(node)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
def autocorrect(node)
|
20
|
-
lambda do |corrector|
|
21
|
-
corrector.replace(node.children[2], 'be_loaded')
|
16
|
+
on_be_displayed(node) do |be_displayed|
|
17
|
+
add_offense(be_displayed) do |corrector|
|
18
|
+
corrector.replace(be_displayed, 'be_loaded')
|
19
|
+
end
|
22
20
|
end
|
23
21
|
end
|
22
|
+
alias on_csend on_send
|
24
23
|
end
|
25
24
|
end
|
26
25
|
end
|
@@ -14,7 +14,7 @@ module RuboCop
|
|
14
14
|
# # good
|
15
15
|
# spec/models/my_class_spec.rb
|
16
16
|
# require 'rails_helper'
|
17
|
-
class SpecHelperRequiredOutsideSpecDir <
|
17
|
+
class SpecHelperRequiredOutsideSpecDir < Base
|
18
18
|
MSG = 'Spec helper required outside of a spec/ directory.'
|
19
19
|
|
20
20
|
def_node_matcher :requires_spec_helper?, <<-PATTERN
|
@@ -25,6 +25,7 @@ module RuboCop
|
|
25
25
|
def on_send(node)
|
26
26
|
add_offense(node) if requires_spec_helper?(node) && !spec_directory?
|
27
27
|
end
|
28
|
+
alias on_csend on_send
|
28
29
|
|
29
30
|
private
|
30
31
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Betterment
|
6
|
-
class Timeout <
|
6
|
+
class Timeout < Base
|
7
7
|
MSG = 'Using Timeout.timeout without a custom exception can prevent rescue blocks from executing'
|
8
8
|
|
9
9
|
def_node_matcher :timeout_call?, <<-PATTERN
|
@@ -15,6 +15,7 @@ module RuboCop
|
|
15
15
|
|
16
16
|
add_offense(node)
|
17
17
|
end
|
18
|
+
alias on_csend on_send
|
18
19
|
end
|
19
20
|
end
|
20
21
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Betterment
|
6
|
-
class UnsafeJob <
|
6
|
+
class UnsafeJob < Base
|
7
7
|
attr_accessor :sensitive_params, :class_regex
|
8
8
|
|
9
9
|
MSG = <<~MSG
|
@@ -14,10 +14,9 @@ module RuboCop
|
|
14
14
|
MSG
|
15
15
|
|
16
16
|
def initialize(config = nil, options = nil)
|
17
|
-
super
|
18
|
-
|
19
|
-
@
|
20
|
-
@class_regex = Regexp.new config.fetch("class_regex", ".*Job$")
|
17
|
+
super
|
18
|
+
@sensitive_params = cop_config.fetch("sensitive_params").map(&:to_sym)
|
19
|
+
@class_regex = Regexp.new cop_config.fetch("class_regex")
|
21
20
|
end
|
22
21
|
|
23
22
|
def on_def(node)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Betterment
|
6
|
-
class UnscopedFind <
|
6
|
+
class UnscopedFind < Base
|
7
7
|
attr_accessor :unauthenticated_models
|
8
8
|
|
9
9
|
MSG = <<~MSG
|
@@ -36,9 +36,8 @@ module RuboCop
|
|
36
36
|
PATTERN
|
37
37
|
|
38
38
|
def initialize(config = nil, options = nil)
|
39
|
-
super
|
40
|
-
|
41
|
-
@unauthenticated_models = config.fetch("unauthenticated_models", []).map(&:to_sym)
|
39
|
+
super
|
40
|
+
@unauthenticated_models = cop_config.fetch("unauthenticated_models").map(&:to_sym)
|
42
41
|
end
|
43
42
|
|
44
43
|
def on_class(node)
|
@@ -56,6 +55,7 @@ module RuboCop
|
|
56
55
|
|
57
56
|
add_offense(node) if find_param_arg(arg_nodes) || graphql_file? || graphql_namespace?(node)
|
58
57
|
end
|
58
|
+
alias on_csend on_send
|
59
59
|
|
60
60
|
private
|
61
61
|
|
@@ -23,6 +23,7 @@ module RuboCop
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
26
|
+
alias on_csend on_send
|
26
27
|
end
|
27
28
|
|
28
29
|
# This cop ensures that `strict_loading: <any value>` is not set in ActiveRecord associations.
|
@@ -46,6 +47,7 @@ module RuboCop
|
|
46
47
|
end
|
47
48
|
end
|
48
49
|
end
|
50
|
+
alias on_csend on_send
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
@@ -6,6 +6,7 @@ require 'rubocop/cop/betterment/allowlist_blocklist'
|
|
6
6
|
require 'rubocop/cop/betterment/authorization_in_controller'
|
7
7
|
require 'rubocop/cop/betterment/direct_delayed_enqueue'
|
8
8
|
require 'rubocop/cop/betterment/dynamic_params'
|
9
|
+
require 'rubocop/cop/betterment/environment_configuration'
|
9
10
|
require 'rubocop/cop/betterment/fetch_boolean'
|
10
11
|
require 'rubocop/cop/betterment/hardcoded_id'
|
11
12
|
require 'rubocop/cop/betterment/implicit_redirect_type'
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: betterlint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Development
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date: 2025-
|
10
|
+
date: 2025-03-26 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: rubocop
|
@@ -16,84 +15,84 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - "~>"
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
18
|
+
version: '1.71'
|
20
19
|
type: :runtime
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
25
|
+
version: '1.71'
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
27
|
name: rubocop-graphql
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
30
29
|
requirements:
|
31
30
|
- - "~>"
|
32
31
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.5
|
32
|
+
version: '1.5'
|
34
33
|
type: :runtime
|
35
34
|
prerelease: false
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.5
|
39
|
+
version: '1.5'
|
41
40
|
- !ruby/object:Gem::Dependency
|
42
41
|
name: rubocop-performance
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
44
43
|
requirements:
|
45
44
|
- - "~>"
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
46
|
+
version: '1.23'
|
48
47
|
type: :runtime
|
49
48
|
prerelease: false
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
51
50
|
requirements:
|
52
51
|
- - "~>"
|
53
52
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
53
|
+
version: '1.23'
|
55
54
|
- !ruby/object:Gem::Dependency
|
56
55
|
name: rubocop-rails
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
58
57
|
requirements:
|
59
58
|
- - "~>"
|
60
59
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.
|
60
|
+
version: '2.29'
|
62
61
|
type: :runtime
|
63
62
|
prerelease: false
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
65
64
|
requirements:
|
66
65
|
- - "~>"
|
67
66
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.
|
67
|
+
version: '2.29'
|
69
68
|
- !ruby/object:Gem::Dependency
|
70
69
|
name: rubocop-rake
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
72
71
|
requirements:
|
73
72
|
- - "~>"
|
74
73
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.6
|
74
|
+
version: '0.6'
|
76
75
|
type: :runtime
|
77
76
|
prerelease: false
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
79
78
|
requirements:
|
80
79
|
- - "~>"
|
81
80
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.6
|
81
|
+
version: '0.6'
|
83
82
|
- !ruby/object:Gem::Dependency
|
84
83
|
name: rubocop-rspec
|
85
84
|
requirement: !ruby/object:Gem::Requirement
|
86
85
|
requirements:
|
87
86
|
- - "~>"
|
88
87
|
- !ruby/object:Gem::Version
|
89
|
-
version: 2.
|
88
|
+
version: '2.29'
|
90
89
|
type: :runtime
|
91
90
|
prerelease: false
|
92
91
|
version_requirements: !ruby/object:Gem::Requirement
|
93
92
|
requirements:
|
94
93
|
- - "~>"
|
95
94
|
- !ruby/object:Gem::Version
|
96
|
-
version: 2.
|
95
|
+
version: '2.29'
|
97
96
|
description: Betterment rubocop configuration
|
98
97
|
email:
|
99
98
|
- development@betterment.com
|
@@ -110,6 +109,7 @@ files:
|
|
110
109
|
- lib/rubocop/cop/betterment/authorization_in_controller.rb
|
111
110
|
- lib/rubocop/cop/betterment/direct_delayed_enqueue.rb
|
112
111
|
- lib/rubocop/cop/betterment/dynamic_params.rb
|
112
|
+
- lib/rubocop/cop/betterment/environment_configuration.rb
|
113
113
|
- lib/rubocop/cop/betterment/fetch_boolean.rb
|
114
114
|
- lib/rubocop/cop/betterment/hardcoded_id.rb
|
115
115
|
- lib/rubocop/cop/betterment/implicit_redirect_type.rb
|
@@ -136,12 +136,11 @@ licenses:
|
|
136
136
|
- MIT
|
137
137
|
metadata:
|
138
138
|
homepage_uri: https://github.com/Betterment/betterlint
|
139
|
-
source_code_uri: https://github.com/Betterment/betterlint/tree/v1.
|
140
|
-
changelog_uri: https://github.com/Betterment/betterlint/blob/v1.
|
139
|
+
source_code_uri: https://github.com/Betterment/betterlint/tree/v1.19.0
|
140
|
+
changelog_uri: https://github.com/Betterment/betterlint/blob/v1.19.0/CHANGELOG.md
|
141
141
|
bug_tracker_uri: https://github.com/Betterment/betterlint/issues
|
142
|
-
documentation_uri: https://www.rubydoc.info/gems/betterlint/1.
|
142
|
+
documentation_uri: https://www.rubydoc.info/gems/betterlint/1.19.0
|
143
143
|
rubygems_mfa_required: 'true'
|
144
|
-
post_install_message:
|
145
144
|
rdoc_options: []
|
146
145
|
require_paths:
|
147
146
|
- lib
|
@@ -156,8 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
155
|
- !ruby/object:Gem::Version
|
157
156
|
version: '0'
|
158
157
|
requirements: []
|
159
|
-
rubygems_version: 3.5
|
160
|
-
signing_key:
|
158
|
+
rubygems_version: 3.6.5
|
161
159
|
specification_version: 4
|
162
160
|
summary: Betterment rubocop configuration
|
163
161
|
test_files: []
|