betterlint 1.25.0 → 1.27.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 +2 -3
- data/STYLEGUIDE.md +33 -0
- data/config/default.yml +15 -9
- data/lib/betterlint/version.rb +5 -0
- data/lib/betterlint.rb +29 -0
- data/lib/rubocop/cop/betterment/authorization_in_controller.rb +1 -1
- data/lib/rubocop/cop/betterment/non_namespaced_class.rb +36 -0
- data/lib/rubocop/cop/betterment/non_standard_actions.rb +4 -0
- data/lib/rubocop/cop/betterment/utils/parser.rb +4 -4
- data/lib/rubocop/cop/betterment.rb +1 -0
- metadata +85 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6bd1ad5be3babcc02d2b5c8f481e9106bf90d575849e9f309d44b137298b1ab0
|
|
4
|
+
data.tar.gz: d999b55f53b8528b169110f2257b1b0cb0127629b50ecdfcc5a59250cb9f79c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: af695c343d0618c7d0ac9bc937a67e99fdc5732e6d507bf8efb6a11d1d4981c437dd3118881bd09e504a3427de8e44a852cc7790502767022671de9c2fa88bfa
|
|
7
|
+
data.tar.gz: 56309c5e67dbdd2c4c6a83eb51cf466b2195f5f3deb6ad9b16409e4595b032c2c7aa3140b731a00b325ee5bbcfe14a694ec96b2c3c0d99c53c124059fb680c18
|
data/README.md
CHANGED
data/STYLEGUIDE.md
CHANGED
|
@@ -110,6 +110,39 @@ expect(response).to have_http_status :internal_server_error
|
|
|
110
110
|
expect(response).to have_http_status 500
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
+
## Betterment/NonNamespacedClass
|
|
114
|
+
|
|
115
|
+
This cop prevents defining classes at the top level without a namespace. All classes should be defined within a module namespace to avoid polluting the global namespace and to better organize code.
|
|
116
|
+
|
|
117
|
+
### BAD:
|
|
118
|
+
|
|
119
|
+
```ruby
|
|
120
|
+
class MyClass
|
|
121
|
+
def my_method
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### GOOD:
|
|
127
|
+
|
|
128
|
+
```ruby
|
|
129
|
+
module MyNamespace
|
|
130
|
+
class MyClass
|
|
131
|
+
def my_method
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
or using the `::` syntax:
|
|
138
|
+
|
|
139
|
+
```ruby
|
|
140
|
+
class MyNamespace::MyClass
|
|
141
|
+
def my_method
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
```
|
|
145
|
+
|
|
113
146
|
## Betterment/SimpleDelegator
|
|
114
147
|
|
|
115
148
|
This cop requires you to use Rail's `delegate` class method instead of `SimpleDelegator` in order to explicitly specify
|
data/config/default.yml
CHANGED
|
@@ -2,11 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
require:
|
|
4
4
|
- rubocop/cop/betterment.rb
|
|
5
|
+
|
|
6
|
+
plugins:
|
|
7
|
+
- rubocop-capybara
|
|
8
|
+
- rubocop-factory_bot
|
|
5
9
|
- rubocop-graphql
|
|
6
10
|
- rubocop-performance
|
|
7
11
|
- rubocop-rails
|
|
8
12
|
- rubocop-rake
|
|
9
13
|
- rubocop-rspec
|
|
14
|
+
- rubocop-rspec_rails
|
|
10
15
|
|
|
11
16
|
AllCops:
|
|
12
17
|
DisplayCopNames: true
|
|
@@ -42,10 +47,9 @@ Betterment/DynamicParams:
|
|
|
42
47
|
|
|
43
48
|
Betterment/EnvironmentConfiguration:
|
|
44
49
|
StyleGuide: '#bettermentenvironmentconfiguration'
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
- test/**/*.rb
|
|
50
|
+
Include:
|
|
51
|
+
- app/**/*.rb
|
|
52
|
+
- lib/**/*.rb
|
|
49
53
|
|
|
50
54
|
Betterment/HardcodedID:
|
|
51
55
|
AutoCorrect: false
|
|
@@ -58,6 +62,11 @@ Betterment/InternalsProtection:
|
|
|
58
62
|
StyleGuide: '#bettermentinternalsprotection'
|
|
59
63
|
Enabled: false
|
|
60
64
|
|
|
65
|
+
Betterment/NonNamespacedClass:
|
|
66
|
+
Description: Detects classes that are not namespaced under a module or constant
|
|
67
|
+
StyleGuide: '#bettermentnonamespacedclass'
|
|
68
|
+
Enabled: false
|
|
69
|
+
|
|
61
70
|
Betterment/NonStandardActions:
|
|
62
71
|
AdditionalAllowedActions: []
|
|
63
72
|
Description: Detects non-standard controller actions.
|
|
@@ -254,7 +263,7 @@ Metrics/PerceivedComplexity:
|
|
|
254
263
|
Naming/HeredocDelimiterNaming:
|
|
255
264
|
Enabled: false
|
|
256
265
|
|
|
257
|
-
Naming/
|
|
266
|
+
Naming/PredicatePrefix:
|
|
258
267
|
ForbiddenPrefixes:
|
|
259
268
|
- is_
|
|
260
269
|
NamePrefix:
|
|
@@ -269,9 +278,6 @@ Performance/RedundantMatch:
|
|
|
269
278
|
RSpec/BeEq:
|
|
270
279
|
Enabled: false
|
|
271
280
|
|
|
272
|
-
RSpec/Capybara/FeatureMethods:
|
|
273
|
-
Enabled: false
|
|
274
|
-
|
|
275
281
|
RSpec/ContextWording:
|
|
276
282
|
Enabled: false
|
|
277
283
|
|
|
@@ -303,7 +309,7 @@ RSpec/ExpectChange:
|
|
|
303
309
|
EnforcedStyle: block
|
|
304
310
|
|
|
305
311
|
RSpec/SpecFilePathSuffix:
|
|
306
|
-
Enabled:
|
|
312
|
+
Enabled: true
|
|
307
313
|
|
|
308
314
|
RSpec/SpecFilePathFormat:
|
|
309
315
|
Enabled: false
|
data/lib/betterlint.rb
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'lint_roller'
|
|
4
|
+
require_relative 'betterlint/version'
|
|
5
|
+
|
|
6
|
+
module Betterlint
|
|
7
|
+
class Plugin < LintRoller::Plugin
|
|
8
|
+
def about
|
|
9
|
+
LintRoller::About.new(
|
|
10
|
+
name: 'betterlint',
|
|
11
|
+
version: VERSION,
|
|
12
|
+
homepage: 'https://github.com/Betterment/betterlint',
|
|
13
|
+
description: 'Shared rubocop configuration for Betterment Rails apps/engines.',
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def supported?(context)
|
|
18
|
+
context.engine == :rubocop
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def rules(_context)
|
|
22
|
+
LintRoller::Rules.new(
|
|
23
|
+
type: :path,
|
|
24
|
+
config_format: :rubocop,
|
|
25
|
+
value: File.expand_path('../config/default.yml', __dir__),
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -118,7 +118,7 @@ module RuboCop
|
|
|
118
118
|
# params[:user_id]
|
|
119
119
|
# end
|
|
120
120
|
if ret.send_type? && ret.method?(:[])
|
|
121
|
-
internal_params = ret.arguments.select { |x| x.
|
|
121
|
+
internal_params = ret.arguments.select { |x| x.type?(:sym, :str) }.map(&:value)
|
|
122
122
|
else
|
|
123
123
|
internal_returns = get_method_returns(Utils::Parser.get_root_token(ret))
|
|
124
124
|
internal_params = internal_returns.flat_map { |x| Utils::Parser.get_extracted_parameters(x, param_aliases: @param_wrappers) }
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RuboCop
|
|
4
|
+
module Cop
|
|
5
|
+
module Betterment
|
|
6
|
+
class NonNamespacedClass < Base
|
|
7
|
+
MSG = <<~TEXT.gsub(/\s+/, " ").strip
|
|
8
|
+
Do not add new classes that are not namespaced underneath another constant.
|
|
9
|
+
Classes should be defined within a module namespace (e.g., `module MyNamespace; class Foo; end; end`)
|
|
10
|
+
or use the `::` syntax (e.g., `class MyNamespace::Foo`).
|
|
11
|
+
TEXT
|
|
12
|
+
|
|
13
|
+
def on_class(node)
|
|
14
|
+
class_name_node = node.children[0]
|
|
15
|
+
|
|
16
|
+
# Skip if the class name is nil (anonymous class)
|
|
17
|
+
return unless class_name_node
|
|
18
|
+
|
|
19
|
+
if class_name_node.const_type? && !namespaced?(class_name_node) && !inside_namespace?(node)
|
|
20
|
+
add_offense(node)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
def namespaced?(node)
|
|
27
|
+
node.children.first&.const_type?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def inside_namespace?(node)
|
|
31
|
+
node.each_ancestor(:module, :class).any?
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -52,6 +52,10 @@ module RuboCop
|
|
|
52
52
|
route = route_to(node)
|
|
53
53
|
if route
|
|
54
54
|
(path, param, value) = route
|
|
55
|
+
|
|
56
|
+
# Newer Rubocop versions return param as an array
|
|
57
|
+
param = param.first if param.is_a?(Array)
|
|
58
|
+
|
|
55
59
|
action = case param
|
|
56
60
|
when :to then value.first.split('#').last
|
|
57
61
|
when :action then value.first
|
|
@@ -67,16 +67,16 @@ module RuboCop
|
|
|
67
67
|
end
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
-
def self.params_from_arguments(arguments)
|
|
70
|
+
def self.params_from_arguments(arguments)
|
|
71
71
|
parameter_names = []
|
|
72
72
|
|
|
73
73
|
arguments.each do |arg|
|
|
74
74
|
if arg.hash_type?
|
|
75
75
|
arg.children.each do |pair|
|
|
76
76
|
value = pair.value
|
|
77
|
-
parameter_names << value.value if value.
|
|
77
|
+
parameter_names << value.value if value.type?(:sym, :str)
|
|
78
78
|
end
|
|
79
|
-
elsif arg.
|
|
79
|
+
elsif arg.type?(:sym, :str)
|
|
80
80
|
parameter_names << arg.value
|
|
81
81
|
end
|
|
82
82
|
end
|
|
@@ -92,7 +92,7 @@ module RuboCop
|
|
|
92
92
|
|
|
93
93
|
if node.method?(:[]) && aliases.include?(get_root_token(node))
|
|
94
94
|
return node.arguments.select { |x|
|
|
95
|
-
x.
|
|
95
|
+
x.type?(:sym, :str)
|
|
96
96
|
}.map(&:value)
|
|
97
97
|
end
|
|
98
98
|
|
|
@@ -12,6 +12,7 @@ require 'rubocop/cop/betterment/hardcoded_id'
|
|
|
12
12
|
require 'rubocop/cop/betterment/implicit_redirect_type'
|
|
13
13
|
require 'rubocop/cop/betterment/internals_protection'
|
|
14
14
|
require 'rubocop/cop/betterment/memoization_with_arguments'
|
|
15
|
+
require 'rubocop/cop/betterment/non_namespaced_class'
|
|
15
16
|
require 'rubocop/cop/betterment/non_standard_actions'
|
|
16
17
|
require 'rubocop/cop/betterment/non_standard_controller'
|
|
17
18
|
require 'rubocop/cop/betterment/not_using_rswag'
|
metadata
CHANGED
|
@@ -1,28 +1,71 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: betterlint
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.27.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Development
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-01-27 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: lint_roller
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.1'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.1'
|
|
12
27
|
- !ruby/object:Gem::Dependency
|
|
13
28
|
name: rubocop
|
|
14
29
|
requirement: !ruby/object:Gem::Requirement
|
|
15
30
|
requirements:
|
|
16
31
|
- - "~>"
|
|
17
32
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '1.
|
|
33
|
+
version: '1.82'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '1.82'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rubocop-capybara
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '2.22'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '2.22'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rubocop-factory_bot
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '2.28'
|
|
19
62
|
type: :runtime
|
|
20
63
|
prerelease: false
|
|
21
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
65
|
requirements:
|
|
23
66
|
- - "~>"
|
|
24
67
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '
|
|
68
|
+
version: '2.28'
|
|
26
69
|
- !ruby/object:Gem::Dependency
|
|
27
70
|
name: rubocop-graphql
|
|
28
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -30,6 +73,9 @@ dependencies:
|
|
|
30
73
|
- - "~>"
|
|
31
74
|
- !ruby/object:Gem::Version
|
|
32
75
|
version: '1.5'
|
|
76
|
+
- - ">="
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: 1.5.6
|
|
33
79
|
type: :runtime
|
|
34
80
|
prerelease: false
|
|
35
81
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -37,62 +83,79 @@ dependencies:
|
|
|
37
83
|
- - "~>"
|
|
38
84
|
- !ruby/object:Gem::Version
|
|
39
85
|
version: '1.5'
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.5.6
|
|
40
89
|
- !ruby/object:Gem::Dependency
|
|
41
90
|
name: rubocop-performance
|
|
42
91
|
requirement: !ruby/object:Gem::Requirement
|
|
43
92
|
requirements:
|
|
44
93
|
- - "~>"
|
|
45
94
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '1.
|
|
95
|
+
version: '1.26'
|
|
47
96
|
type: :runtime
|
|
48
97
|
prerelease: false
|
|
49
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
99
|
requirements:
|
|
51
100
|
- - "~>"
|
|
52
101
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '1.
|
|
102
|
+
version: '1.26'
|
|
54
103
|
- !ruby/object:Gem::Dependency
|
|
55
104
|
name: rubocop-rails
|
|
56
105
|
requirement: !ruby/object:Gem::Requirement
|
|
57
106
|
requirements:
|
|
58
107
|
- - "~>"
|
|
59
108
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '2.
|
|
109
|
+
version: '2.34'
|
|
61
110
|
type: :runtime
|
|
62
111
|
prerelease: false
|
|
63
112
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
113
|
requirements:
|
|
65
114
|
- - "~>"
|
|
66
115
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '2.
|
|
116
|
+
version: '2.34'
|
|
68
117
|
- !ruby/object:Gem::Dependency
|
|
69
118
|
name: rubocop-rake
|
|
70
119
|
requirement: !ruby/object:Gem::Requirement
|
|
71
120
|
requirements:
|
|
72
121
|
- - "~>"
|
|
73
122
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '0.
|
|
123
|
+
version: '0.7'
|
|
75
124
|
type: :runtime
|
|
76
125
|
prerelease: false
|
|
77
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
127
|
requirements:
|
|
79
128
|
- - "~>"
|
|
80
129
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '0.
|
|
130
|
+
version: '0.7'
|
|
82
131
|
- !ruby/object:Gem::Dependency
|
|
83
132
|
name: rubocop-rspec
|
|
84
133
|
requirement: !ruby/object:Gem::Requirement
|
|
85
134
|
requirements:
|
|
86
135
|
- - "~>"
|
|
87
136
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '
|
|
137
|
+
version: '3.8'
|
|
138
|
+
type: :runtime
|
|
139
|
+
prerelease: false
|
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - "~>"
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '3.8'
|
|
145
|
+
- !ruby/object:Gem::Dependency
|
|
146
|
+
name: rubocop-rspec_rails
|
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "~>"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '2.32'
|
|
89
152
|
type: :runtime
|
|
90
153
|
prerelease: false
|
|
91
154
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
155
|
requirements:
|
|
93
156
|
- - "~>"
|
|
94
157
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '2.
|
|
158
|
+
version: '2.32'
|
|
96
159
|
description: Betterment rubocop configuration
|
|
97
160
|
email:
|
|
98
161
|
- development@betterment.com
|
|
@@ -103,6 +166,8 @@ files:
|
|
|
103
166
|
- README.md
|
|
104
167
|
- STYLEGUIDE.md
|
|
105
168
|
- config/default.yml
|
|
169
|
+
- lib/betterlint.rb
|
|
170
|
+
- lib/betterlint/version.rb
|
|
106
171
|
- lib/rubocop/cop/betterment.rb
|
|
107
172
|
- lib/rubocop/cop/betterment/active_job_performable.rb
|
|
108
173
|
- lib/rubocop/cop/betterment/allowlist_blocklist.rb
|
|
@@ -115,6 +180,7 @@ files:
|
|
|
115
180
|
- lib/rubocop/cop/betterment/implicit_redirect_type.rb
|
|
116
181
|
- lib/rubocop/cop/betterment/internals_protection.rb
|
|
117
182
|
- lib/rubocop/cop/betterment/memoization_with_arguments.rb
|
|
183
|
+
- lib/rubocop/cop/betterment/non_namespaced_class.rb
|
|
118
184
|
- lib/rubocop/cop/betterment/non_standard_actions.rb
|
|
119
185
|
- lib/rubocop/cop/betterment/non_standard_controller.rb
|
|
120
186
|
- lib/rubocop/cop/betterment/not_using_rswag.rb
|
|
@@ -137,11 +203,13 @@ licenses:
|
|
|
137
203
|
- MIT
|
|
138
204
|
metadata:
|
|
139
205
|
homepage_uri: https://github.com/Betterment/betterlint
|
|
140
|
-
source_code_uri: https://github.com/Betterment/betterlint/tree/v1.
|
|
141
|
-
changelog_uri: https://github.com/Betterment/betterlint/blob/v1.
|
|
206
|
+
source_code_uri: https://github.com/Betterment/betterlint/tree/v1.27.0
|
|
207
|
+
changelog_uri: https://github.com/Betterment/betterlint/blob/v1.27.0/CHANGELOG.md
|
|
142
208
|
bug_tracker_uri: https://github.com/Betterment/betterlint/issues
|
|
143
|
-
documentation_uri: https://www.rubydoc.info/gems/betterlint/1.
|
|
209
|
+
documentation_uri: https://www.rubydoc.info/gems/betterlint/1.27.0
|
|
144
210
|
rubygems_mfa_required: 'true'
|
|
211
|
+
default_lint_roller_plugin: Betterlint::Plugin
|
|
212
|
+
post_install_message:
|
|
145
213
|
rdoc_options: []
|
|
146
214
|
require_paths:
|
|
147
215
|
- lib
|
|
@@ -156,7 +224,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
156
224
|
- !ruby/object:Gem::Version
|
|
157
225
|
version: '0'
|
|
158
226
|
requirements: []
|
|
159
|
-
rubygems_version: 3.
|
|
227
|
+
rubygems_version: 3.4.10
|
|
228
|
+
signing_key:
|
|
160
229
|
specification_version: 4
|
|
161
230
|
summary: Betterment rubocop configuration
|
|
162
231
|
test_files: []
|