rubocop-skiftle 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: be504861496c6237e37745064fbe01ad6bbac728a9fe4b2c5231dd51684b41c6
4
+ data.tar.gz: 0ef2c7916980b728c3044d6d2fbcd82a0f82069b66606d63ff77ade96c71621e
5
+ SHA512:
6
+ metadata.gz: dd23db581c75aacc90bc59943af0069ec9c42ac96a33ccb56050e6ab7cf2d1c1e110b5e13745921e3afbd0201fe15e1dfc0d60e27fbd255a49651e945b609282
7
+ data.tar.gz: ceb29282b594482d9aaba36c7f13cdc4f6bb867280c99dc4765c4a2c0a969479c3d71a6496205efd8d99fa555b810567ce870bd85349bbf31fbdf0e3e6fd1c18
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2026 skiftle
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # rubocop-skiftle
2
+
3
+ Skiftle's shared RuboCop configuration. Includes [rubocop-canon](https://github.com/skiftle/rubocop-canon) cops with Skiftle defaults.
4
+
5
+ ## Presets
6
+
7
+ | Preset | Use for | Includes |
8
+ |--------|---------|----------|
9
+ | `rubocop-gem.yml` | Ruby gems | Canon cops, Layout, Style, Metrics, Naming, Lint, RSpec |
10
+ | `rubocop-app.yml` | Rails apps | Everything in gem + Rails overrides + standard excludes |
11
+
12
+ Both presets inherit from `rubocop-base.yml` which contains all shared rules.
13
+
14
+ ## Installation
15
+
16
+ Add to your Gemfile:
17
+
18
+ ```ruby
19
+ gem 'rubocop-skiftle', require: false
20
+ ```
21
+
22
+ For a gem:
23
+
24
+ ```yaml
25
+ # .rubocop.yml
26
+ inherit_gem:
27
+ rubocop-skiftle: rubocop-gem.yml
28
+ ```
29
+
30
+ For a Rails app:
31
+
32
+ ```yaml
33
+ # .rubocop.yml
34
+ inherit_gem:
35
+ rubocop-skiftle: rubocop-app.yml
36
+ ```
37
+
38
+ ## License
39
+
40
+ MIT
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Skiftle
5
+ VERSION = '0.1.0'
6
+ end
7
+ end
data/rubocop-app.yml ADDED
@@ -0,0 +1,18 @@
1
+ inherit_from: rubocop-base.yml
2
+
3
+ plugins:
4
+ - rubocop-rails
5
+
6
+ AllCops:
7
+ Exclude:
8
+ - "**/bin/**/*"
9
+ - "**/db/**/*"
10
+ - "**/log/**/*"
11
+ - "**/tmp/**/*"
12
+ - "**/vendor/**/*"
13
+
14
+ Rails/Delegate:
15
+ Enabled: false
16
+
17
+ Rails/HttpPositionalArguments:
18
+ Enabled: false
data/rubocop-base.yml ADDED
@@ -0,0 +1,187 @@
1
+ plugins:
2
+ - rubocop-canon
3
+ - rubocop-rspec
4
+ - rubocop-performance
5
+
6
+ AllCops:
7
+ NewCops: disable
8
+ TargetRubyVersion: 3.2
9
+ SuggestExtensions: false
10
+
11
+ # Canon cops — Skiftle defaults
12
+ Canon/KeywordShorthand:
13
+ Enabled: true
14
+
15
+ Canon/SortHash:
16
+ Enabled: true
17
+ ShorthandsFirst: true
18
+ ExcludeMethods:
19
+ - enum
20
+
21
+ Canon/SortKeywords:
22
+ Enabled: true
23
+ ShorthandsFirst: true
24
+ Methods:
25
+ - attribute
26
+ - belongs_to
27
+ - field
28
+ - has_many
29
+ - has_one
30
+ - param
31
+ - type
32
+ - union
33
+ - variant
34
+
35
+ Canon/SortMethodArguments:
36
+ Enabled: true
37
+ Methods:
38
+ - attr_accessor
39
+ - attr_reader
40
+ - attr_writer
41
+ - delegate
42
+
43
+ Canon/SortMethodDefinition:
44
+ Enabled: true
45
+
46
+ # Layout
47
+ Layout/LineLength:
48
+ Max: 150
49
+ AllowedPatterns:
50
+ - '^\s*#'
51
+
52
+ Layout/MultilineMethodCallIndentation:
53
+ EnforcedStyle: indented
54
+
55
+ Layout/MultilineMethodArgumentLineBreaks:
56
+ Enabled: true
57
+
58
+ Layout/MultilineMethodParameterLineBreaks:
59
+ Enabled: true
60
+
61
+ Layout/FirstMethodArgumentLineBreak:
62
+ Enabled: true
63
+
64
+ Layout/FirstMethodParameterLineBreak:
65
+ Enabled: true
66
+
67
+ Layout/MultilineHashKeyLineBreaks:
68
+ Enabled: true
69
+
70
+ # Style
71
+ Style/KeywordParametersOrder:
72
+ Enabled: false
73
+
74
+ Style/Documentation:
75
+ Enabled: false
76
+
77
+ Style/SymbolArray:
78
+ Enabled: false
79
+
80
+ Style/OptionalBooleanParameter:
81
+ Enabled: false
82
+
83
+ Style/MultilineBlockChain:
84
+ Enabled: false
85
+
86
+ Style/EmptyElse:
87
+ Enabled: false
88
+
89
+ Style/TrailingCommaInArguments:
90
+ EnforcedStyleForMultiline: comma
91
+
92
+ Style/TrailingCommaInArrayLiteral:
93
+ EnforcedStyleForMultiline: comma
94
+
95
+ Style/TrailingCommaInHashLiteral:
96
+ EnforcedStyleForMultiline: comma
97
+
98
+ # Metrics — disabled
99
+ Metrics/MethodLength:
100
+ Enabled: false
101
+
102
+ Metrics/ClassLength:
103
+ Enabled: false
104
+
105
+ Metrics/ModuleLength:
106
+ Enabled: false
107
+
108
+ Metrics/AbcSize:
109
+ Enabled: false
110
+
111
+ Metrics/BlockLength:
112
+ Enabled: false
113
+
114
+ Metrics/CyclomaticComplexity:
115
+ Enabled: false
116
+
117
+ Metrics/PerceivedComplexity:
118
+ Enabled: false
119
+
120
+ Metrics/ParameterLists:
121
+ Enabled: false
122
+
123
+ # Naming
124
+ Naming/VariableNumber:
125
+ Enabled: false
126
+
127
+ Naming/PredicatePrefix:
128
+ Enabled: false
129
+
130
+ # Lint
131
+ Lint/ConstantDefinitionInBlock:
132
+ Enabled: false
133
+
134
+ Lint/UnusedMethodArgument:
135
+ Enabled: false
136
+
137
+ Lint/IneffectiveAccessModifier:
138
+ Enabled: false
139
+
140
+ Lint/DuplicateMethods:
141
+ Enabled: false
142
+
143
+ # RSpec
144
+ RSpec/MultipleExpectations:
145
+ Enabled: false
146
+
147
+ RSpec/ExampleLength:
148
+ Enabled: false
149
+
150
+ RSpec/IndexedLet:
151
+ Enabled: false
152
+
153
+ RSpec/NestedGroups:
154
+ Enabled: false
155
+
156
+ RSpec/LetSetup:
157
+ Enabled: false
158
+
159
+ RSpec/MultipleMemoizedHelpers:
160
+ Enabled: false
161
+
162
+ RSpec/ContextWording:
163
+ Enabled: false
164
+
165
+ RSpec/MessageSpies:
166
+ Enabled: false
167
+
168
+ RSpec/VerifiedDoubles:
169
+ Enabled: false
170
+
171
+ RSpec/RepeatedDescription:
172
+ Enabled: false
173
+
174
+ RSpec/DescribeClass:
175
+ Enabled: false
176
+
177
+ RSpec/LeakyConstantDeclaration:
178
+ Enabled: false
179
+
180
+ RSpec/RemoveConst:
181
+ Enabled: false
182
+
183
+ RSpec/BeforeAfterAll:
184
+ Enabled: false
185
+
186
+ RSpec/SpecFilePathFormat:
187
+ Enabled: false
data/rubocop-gem.yml ADDED
@@ -0,0 +1 @@
1
+ inherit_from: rubocop-base.yml
metadata ADDED
@@ -0,0 +1,165 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubocop-skiftle
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - skiftle
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-02-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rubocop
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.75.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 1.75.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rubocop-canon
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.1'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.1'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rubocop-performance
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: '2.0'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '1.0'
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: '2.0'
67
+ - !ruby/object:Gem::Dependency
68
+ name: rubocop-rails
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '2.0'
74
+ - - "<"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '2.0'
84
+ - - "<"
85
+ - !ruby/object:Gem::Version
86
+ version: '3.0'
87
+ - !ruby/object:Gem::Dependency
88
+ name: rubocop-rake
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0.6'
94
+ - - "<"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0.6'
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '1.0'
107
+ - !ruby/object:Gem::Dependency
108
+ name: rubocop-rspec
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '3.0'
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: '4.0'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '3.0'
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: '4.0'
127
+ description:
128
+ email:
129
+ executables: []
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - LICENSE.txt
134
+ - README.md
135
+ - lib/rubocop/skiftle/version.rb
136
+ - rubocop-app.yml
137
+ - rubocop-base.yml
138
+ - rubocop-gem.yml
139
+ homepage: https://github.com/skiftle/rubocop-skiftle
140
+ licenses:
141
+ - MIT
142
+ metadata:
143
+ homepage_uri: https://github.com/skiftle/rubocop-skiftle
144
+ rubygems_mfa_required: 'true'
145
+ source_code_uri: https://github.com/skiftle/rubocop-skiftle
146
+ post_install_message:
147
+ rdoc_options: []
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '3.2'
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ requirements: []
161
+ rubygems_version: 3.4.1
162
+ signing_key:
163
+ specification_version: 4
164
+ summary: Skiftle's shared RuboCop configuration
165
+ test_files: []