rubocop-github 0.18.0 → 0.20.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.
@@ -0,0 +1,3 @@
1
+ GitHub/InsecureHashAlgorithm:
2
+ Description: 'Encourage usage of secure hash algorithms'
3
+ Enabled: pending
@@ -0,0 +1,6 @@
1
+ Lint/DuplicateMagicComment: # new in 1.37
2
+ Enabled: false
3
+ Style/OperatorMethodCall: # new in 1.37
4
+ Enabled: false
5
+ Style/RedundantStringEscape: # new in 1.37
6
+ Enabled: false
data/config/rails.yml CHANGED
@@ -1,127 +1,411 @@
1
+ inherit_from:
2
+ - ./rails_pending.yml
3
+
1
4
  require:
5
+ - rubocop-github-rails
2
6
  - rubocop-rails
3
7
 
4
- Rails/OutputSafety:
5
- Enabled: true
6
-
7
- Rails/PluralizationGrammar:
8
- Enabled: true
9
-
10
- Rails/RequestReferer:
11
- Enabled: true
12
- EnforcedStyle: referrer
13
-
14
- Rails/ScopeArgs:
15
- Enabled: true
16
-
17
- Rails/UniqBeforePluck:
18
- Enabled: true
19
-
20
- GitHub/RailsApplicationRecord:
21
- Enabled: true
22
-
23
8
  GitHub/RailsControllerRenderActionSymbol:
24
9
  Enabled: true
25
- Include:
26
- - 'app/controllers/**/*.rb'
27
10
 
28
11
  GitHub/RailsControllerRenderLiteral:
29
12
  Enabled: true
30
- StyleGuide: https://github.com/github/rubocop-github/blob/master/guides/rails-render-literal.md
31
- Include:
32
- - 'app/controllers/**/*.rb'
33
13
 
34
14
  GitHub/RailsControllerRenderPathsExist:
35
15
  Enabled: true
36
- ViewPath:
37
- - 'app/views'
38
- Include:
39
- - 'app/controllers/**/*.rb'
40
16
 
41
17
  GitHub/RailsControllerRenderShorthand:
42
18
  Enabled: true
43
- StyleGuide: https://github.com/github/rubocop-github/blob/master/guides/rails-controller-render-shorthand.md
44
- Include:
45
- - 'app/controllers/**/*.rb'
46
-
47
- GitHub/RailsRenderInline:
48
- Enabled: true
49
- StyleGuide: https://github.com/github/rubocop-github/blob/master/guides/rails-controller-render-inline.md
50
- Include:
51
- - 'app/controllers/**/*.rb'
52
- - 'app/helpers/**/*.rb'
53
- - 'app/view_models/**/*.rb'
54
- - 'app/views/**/*.erb'
55
19
 
56
20
  GitHub/RailsRenderObjectCollection:
57
21
  Enabled: false
58
22
 
59
23
  GitHub/RailsViewRenderLiteral:
60
24
  Enabled: true
61
- StyleGuide: https://github.com/github/rubocop-github/blob/master/guides/rails-render-literal.md
62
- Include:
63
- - 'app/helpers/**/*.rb'
64
- - 'app/view_models/**/*.rb'
65
- - 'app/views/**/*.erb'
66
25
 
67
26
  GitHub/RailsViewRenderPathsExist:
68
27
  Enabled: true
69
- ViewPath:
70
- - 'app/views'
71
- Include:
72
- - 'app/helpers/**/*.rb'
73
- - 'app/view_models/**/*.rb'
74
- - 'app/views/**/*.erb'
75
28
 
76
29
  GitHub/RailsViewRenderShorthand:
77
30
  Enabled: true
78
- Include:
79
- - 'app/helpers/**/*.rb'
80
- - 'app/view_models/**/*.rb'
81
- - 'app/views/**/*.erb'
82
-
83
- # Exclude Rails ERB files from incompatible cops
84
31
 
85
32
  Layout/BlockAlignment:
86
33
  Exclude:
87
- - 'app/views/**/*.erb'
34
+ - "**/*.erb"
88
35
 
89
- Style/For:
90
- Exclude:
91
- - 'app/views/**/*.erb'
92
-
93
- Style/OneLineConditional:
36
+ Layout/IndentationWidth:
94
37
  Exclude:
95
- - 'app/views/**/*.erb'
38
+ - "**/*.erb"
96
39
 
97
- Style/Semicolon:
40
+ Layout/InitialIndentation:
98
41
  Exclude:
99
- - 'app/views/**/*.erb'
42
+ - "**/*.erb"
100
43
 
101
44
  Layout/SpaceInsideParens:
102
45
  Exclude:
103
- - 'app/views/**/*.erb'
104
-
105
- Style/StringLiterals:
106
- Exclude:
107
- - 'app/views/**/*.erb'
46
+ - "**/*.erb"
108
47
 
109
48
  Layout/TrailingEmptyLines:
110
49
  Exclude:
111
- - 'app/views/**/*.erb'
50
+ - "**/*.erb"
112
51
 
113
52
  Layout/TrailingWhitespace:
114
53
  Exclude:
115
- - 'app/views/**/*.erb'
54
+ - "**/*.erb"
116
55
 
117
- Layout/IndentationWidth:
56
+ Lint/UselessAccessModifier:
57
+ ContextCreatingMethods:
58
+ - concerning
59
+
60
+ Rails/ActionControllerTestCase:
61
+ Enabled: false
62
+
63
+ Rails/ActionFilter:
64
+ Enabled: false
65
+
66
+ Rails/ActiveRecordAliases:
67
+ Enabled: false
68
+
69
+ Rails/ActiveRecordCallbacksOrder:
70
+ Enabled: false
71
+
72
+ Rails/ActiveRecordOverride:
73
+ Enabled: false
74
+
75
+ Rails/ActiveSupportAliases:
76
+ Enabled: false
77
+
78
+ Rails/AddColumnIndex:
79
+ Enabled: false
80
+
81
+ Rails/AfterCommitOverride:
82
+ Enabled: false
83
+
84
+ Rails/ApplicationController:
85
+ Enabled: false
86
+
87
+ Rails/ApplicationJob:
88
+ Enabled: false
89
+
90
+ Rails/ApplicationMailer:
91
+ Enabled: false
92
+
93
+ Rails/ApplicationRecord:
94
+ Enabled: true
95
+
96
+ Rails/ArelStar:
97
+ Enabled: false
98
+
99
+ Rails/AssertNot:
100
+ Enabled: false
101
+
102
+ Rails/AttributeDefaultBlockValue:
103
+ Enabled: false
104
+
105
+ Rails/BelongsTo:
106
+ Enabled: false
107
+
108
+ Rails/Blank:
109
+ Enabled: false
110
+
111
+ Rails/BulkChangeTable:
112
+ Enabled: false
113
+
114
+ Rails/CompactBlank:
115
+ Enabled: false
116
+
117
+ Rails/ContentTag:
118
+ Enabled: false
119
+
120
+ Rails/CreateTableWithTimestamps:
121
+ Enabled: false
122
+
123
+ Rails/Date:
124
+ Enabled: false
125
+
126
+ Rails/DefaultScope:
127
+ Enabled: false
128
+
129
+ Rails/Delegate:
130
+ Enabled: false
131
+
132
+ Rails/DelegateAllowBlank:
133
+ Enabled: false
134
+
135
+ Rails/DeprecatedActiveModelErrorsMethods:
136
+ Enabled: false
137
+
138
+ Rails/DotSeparatedKeys:
139
+ Enabled: false
140
+
141
+ Rails/DuplicateAssociation:
142
+ Enabled: false
143
+
144
+ Rails/DuplicateScope:
145
+ Enabled: false
146
+
147
+ Rails/DurationArithmetic:
148
+ Enabled: false
149
+
150
+ Rails/DynamicFindBy:
151
+ Enabled: false
152
+
153
+ Rails/EagerEvaluationLogMessage:
154
+ Enabled: false
155
+
156
+ Rails/EnumHash:
157
+ Enabled: false
158
+
159
+ Rails/EnumUniqueness:
160
+ Enabled: false
161
+
162
+ Rails/EnvironmentComparison:
163
+ Enabled: false
164
+
165
+ Rails/EnvironmentVariableAccess:
166
+ Enabled: false
167
+
168
+ Rails/Exit:
169
+ Enabled: false
170
+
171
+ Rails/ExpandedDateRange:
172
+ Enabled: false
173
+
174
+ Rails/FilePath:
175
+ Enabled: false
176
+
177
+ Rails/FindBy:
178
+ Enabled: false
179
+
180
+ Rails/FindById:
181
+ Enabled: false
182
+
183
+ Rails/FindEach:
184
+ Enabled: false
185
+
186
+ Rails/HasAndBelongsToMany:
187
+ Enabled: false
188
+
189
+ Rails/HasManyOrHasOneDependent:
190
+ Enabled: false
191
+
192
+ Rails/HelperInstanceVariable:
193
+ Enabled: false
194
+
195
+ Rails/HttpPositionalArguments:
196
+ Enabled: false
197
+
198
+ Rails/HttpStatus:
199
+ Enabled: false
200
+
201
+ Rails/I18nLazyLookup:
202
+ Enabled: false
203
+
204
+ Rails/I18nLocaleAssignment:
205
+ Enabled: false
206
+
207
+ Rails/I18nLocaleTexts:
208
+ Enabled: false
209
+
210
+ Rails/IgnoredSkipActionFilterOption:
211
+ Enabled: false
212
+
213
+ Rails/IndexBy:
214
+ Enabled: false
215
+
216
+ Rails/IndexWith:
217
+ Enabled: false
218
+
219
+ Rails/Inquiry:
220
+ Enabled: false
221
+
222
+ Rails/InverseOf:
223
+ Enabled: false
224
+
225
+ Rails/LexicallyScopedActionFilter:
226
+ Enabled: false
227
+
228
+ Rails/LinkToBlank:
229
+ Enabled: false
230
+
231
+ Rails/MailerName:
232
+ Enabled: false
233
+
234
+ Rails/MatchRoute:
235
+ Enabled: false
236
+
237
+ Rails/MigrationClassName:
238
+ Enabled: false
239
+
240
+ Rails/NegateInclude:
241
+ Enabled: false
242
+
243
+ Rails/NotNullColumn:
244
+ Enabled: false
245
+
246
+ Rails/OrderById:
247
+ Enabled: false
248
+
249
+ Rails/Output:
250
+ Enabled: false
251
+
252
+ Rails/OutputSafety:
253
+ Enabled: true
254
+
255
+ Rails/Pick:
256
+ Enabled: false
257
+
258
+ Rails/Pluck:
259
+ Enabled: false
260
+
261
+ Rails/PluckId:
262
+ Enabled: false
263
+
264
+ Rails/PluckInWhere:
265
+ Enabled: false
266
+
267
+ Rails/PluralizationGrammar:
268
+ Enabled: true
269
+
270
+ Rails/Presence:
271
+ Enabled: false
272
+
273
+ Rails/Present:
274
+ Enabled: false
275
+
276
+ Rails/RakeEnvironment:
277
+ Enabled: false
278
+
279
+ Rails/ReadWriteAttribute:
280
+ Enabled: false
281
+
282
+ Rails/RedundantAllowNil:
283
+ Enabled: false
284
+
285
+ Rails/RedundantForeignKey:
286
+ Enabled: false
287
+
288
+ Rails/RedundantPresenceValidationOnBelongsTo:
289
+ Enabled: false
290
+
291
+ Rails/RedundantReceiverInWithOptions:
292
+ Enabled: false
293
+
294
+ Rails/RedundantTravelBack:
295
+ Enabled: false
296
+
297
+ Rails/ReflectionClassName:
298
+ Enabled: false
299
+
300
+ Rails/RefuteMethods:
301
+ Enabled: false
302
+
303
+ Rails/RelativeDateConstant:
304
+ Enabled: false
305
+
306
+ Rails/RenderInline:
307
+ Enabled: true
308
+
309
+ Rails/RenderPlainText:
310
+ Enabled: false
311
+
312
+ Rails/RequestReferer:
313
+ Enabled: true
314
+ EnforcedStyle: referrer
315
+
316
+ Rails/RequireDependency:
317
+ Enabled: false
318
+
319
+ Rails/ReversibleMigration:
320
+ Enabled: false
321
+
322
+ Rails/ReversibleMigrationMethodDefinition:
323
+ Enabled: false
324
+
325
+ Rails/RootJoinChain:
326
+ Enabled: false
327
+
328
+ Rails/RootPublicPath:
329
+ Enabled: false
330
+
331
+ Rails/SafeNavigation:
332
+ Enabled: false
333
+
334
+ Rails/SafeNavigationWithBlank:
335
+ Enabled: false
336
+
337
+ Rails/SaveBang:
338
+ Enabled: false
339
+
340
+ Rails/SchemaComment:
341
+ Enabled: false
342
+
343
+ Rails/ScopeArgs:
344
+ Enabled: true
345
+
346
+ Rails/ShortI18n:
347
+ Enabled: false
348
+
349
+ Rails/SkipsModelValidations:
350
+ Enabled: false
351
+
352
+ Rails/SquishedSQLHeredocs:
353
+ Enabled: false
354
+
355
+ Rails/StripHeredoc:
356
+ Enabled: false
357
+
358
+ Rails/TableNameAssignment:
359
+ Enabled: false
360
+
361
+ Rails/TimeZone:
362
+ Enabled: false
363
+
364
+ Rails/TimeZoneAssignment:
365
+ Enabled: false
366
+
367
+ Rails/ToFormattedS:
368
+ Enabled: false
369
+
370
+ Rails/TransactionExitStatement:
371
+ Enabled: false
372
+
373
+ Rails/UniqBeforePluck:
374
+ Enabled: true
375
+
376
+ Rails/UniqueValidationWithoutIndex:
377
+ Enabled: false
378
+
379
+ Rails/UnknownEnv:
380
+ Enabled: false
381
+
382
+ Rails/UnusedIgnoredColumns:
383
+ Enabled: false
384
+
385
+ Rails/Validation:
386
+ Enabled: false
387
+
388
+ Rails/WhereEquals:
389
+ Enabled: false
390
+
391
+ Rails/WhereExists:
392
+ Enabled: false
393
+
394
+ Rails/WhereNot:
395
+ Enabled: false
396
+
397
+ Style/For:
118
398
  Exclude:
119
- - 'app/views/**/*.erb'
399
+ - "**/*.erb"
120
400
 
121
- Layout/InitialIndentation:
401
+ Style/OneLineConditional:
122
402
  Exclude:
123
- - 'app/views/**/*.erb'
403
+ - "**/*.erb"
124
404
 
125
- Lint/UselessAccessModifier:
126
- ContextCreatingMethods:
127
- - concerning
405
+ Style/Semicolon:
406
+ Exclude:
407
+ - "**/*.erb"
408
+
409
+ Style/StringLiterals:
410
+ Exclude:
411
+ - "**/*.erb"
@@ -0,0 +1,50 @@
1
+ GitHub/RailsControllerRenderActionSymbol:
2
+ Enabled: pending
3
+ Include:
4
+ - 'app/controllers/**/*.rb'
5
+
6
+ GitHub/RailsControllerRenderLiteral:
7
+ Enabled: pending
8
+ StyleGuide: https://github.com/github/rubocop-github/blob/main/guides/rails-render-literal.md
9
+ Include:
10
+ - 'app/controllers/**/*.rb'
11
+
12
+ GitHub/RailsControllerRenderPathsExist:
13
+ Enabled: pending
14
+ ViewPath:
15
+ - 'app/views'
16
+ Include:
17
+ - 'app/controllers/**/*.rb'
18
+
19
+ GitHub/RailsControllerRenderShorthand:
20
+ Enabled: pending
21
+ StyleGuide: https://github.com/github/rubocop-github/blob/main/guides/rails-controller-render-shorthand.md
22
+ Include:
23
+ - 'app/controllers/**/*.rb'
24
+
25
+ GitHub/RailsRenderObjectCollection:
26
+ Enabled: pending
27
+
28
+ GitHub/RailsViewRenderLiteral:
29
+ Enabled: pending
30
+ StyleGuide: https://github.com/github/rubocop-github/blob/main/guides/rails-render-literal.md
31
+ Include:
32
+ - 'app/helpers/**/*.rb'
33
+ - 'app/view_models/**/*.rb'
34
+ - 'app/views/**/*.erb'
35
+
36
+ GitHub/RailsViewRenderPathsExist:
37
+ Enabled: pending
38
+ ViewPath:
39
+ - 'app/views'
40
+ Include:
41
+ - 'app/helpers/**/*.rb'
42
+ - 'app/view_models/**/*.rb'
43
+ - 'app/views/**/*.erb'
44
+
45
+ GitHub/RailsViewRenderShorthand:
46
+ Enabled: pending
47
+ Include:
48
+ - 'app/helpers/**/*.rb'
49
+ - 'app/view_models/**/*.rb'
50
+ - 'app/views/**/*.erb'
@@ -0,0 +1,20 @@
1
+ Rails/ActionControllerFlashBeforeRender: # new in 2.16
2
+ Enabled: false
3
+ Rails/ActionOrder: # new in 2.17
4
+ Enabled: false
5
+ Rails/ActiveSupportOnLoad: # new in 2.16
6
+ Enabled: false
7
+ Rails/FreezeTime: # new in 2.16
8
+ Enabled: false
9
+ Rails/IgnoredColumnsAssignment: # new in 2.17
10
+ Enabled: false
11
+ Rails/RootPathnameMethods: # new in 2.16
12
+ Enabled: false
13
+ Rails/ToSWithArgument: # new in 2.16
14
+ Enabled: false
15
+ Rails/TopLevelHashWithIndifferentAccess: # new in 2.16
16
+ Enabled: false
17
+ Rails/WhereMissing: # new in 2.16
18
+ Enabled: false
19
+ Rails/WhereNotWithMultipleConditions: # new in 2.17
20
+ Enabled: false
@@ -6,6 +6,8 @@ module RuboCop
6
6
  module Cop
7
7
  module GitHub
8
8
  class RailsViewRenderShorthand < Base
9
+ extend AutoCorrector
10
+
9
11
  MSG = "Prefer `render` partial shorthand"
10
12
 
11
13
  def_node_matcher :render_with_options?, <<-PATTERN
@@ -26,9 +28,13 @@ module RuboCop
26
28
  locals_key = option_pairs.map { |pair| locals_key?(pair) }.compact.first
27
29
 
28
30
  if option_pairs.length == 1 && partial_key
29
- add_offense(node, message: "Use `render #{partial_key.source}` instead")
31
+ add_offense(node, message: "Use `render #{partial_key.source}` instead") do |corrector|
32
+ corrector.replace(node.source_range, "render #{partial_key.source}")
33
+ end
30
34
  elsif option_pairs.length == 2 && partial_key && locals_key
31
- add_offense(node, message: "Use `render #{partial_key.source}, #{locals_key.source}` instead")
35
+ add_offense(node, message: "Use `render #{partial_key.source}, #{locals_key.source}` instead") do |corrector|
36
+ corrector.replace(node.source_range, "render #{partial_key.source}, #{locals_key.source}")
37
+ end
32
38
  end
33
39
  end
34
40
  end
@@ -1,13 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rubocop/cop/github/insecure_hash_algorithm"
4
- require "rubocop/cop/github/rails_application_record"
5
- require "rubocop/cop/github/rails_controller_render_action_symbol"
6
- require "rubocop/cop/github/rails_controller_render_literal"
7
- require "rubocop/cop/github/rails_controller_render_paths_exist"
8
- require "rubocop/cop/github/rails_controller_render_shorthand"
9
- require "rubocop/cop/github/rails_render_inline"
10
- require "rubocop/cop/github/rails_render_object_collection"
11
- require "rubocop/cop/github/rails_view_render_literal"
12
- require "rubocop/cop/github/rails_view_render_paths_exist"
13
- require "rubocop/cop/github/rails_view_render_shorthand"
3
+ require "rubocop-github"
4
+ require "rubocop-rails"
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module GitHub
5
+ # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
6
+ # bit of our configuration. Borrowed from:
7
+ # https://github.com/rubocop/rubocop-rails/blob/f36121946359615a26c9a941763abd1470693e8d/lib/rubocop/rails/inject.rb
8
+ module Inject
9
+ def self.default_defaults!
10
+ _load_config(CONFIG_DEFAULT)
11
+ end
12
+
13
+ def self.rails_defaults!
14
+ _load_config(CONFIG_RAILS)
15
+ end
16
+
17
+ def self._load_config(path)
18
+ path = path.to_s
19
+ hash = ConfigLoader.send(:load_yaml_configuration, path)
20
+ config = Config.new(hash, path).tap(&:make_excludes_absolute)
21
+ puts "configuration from #{path}" if ConfigLoader.debug?
22
+ config = ConfigLoader.merge_with_default(config, path, unset_nil: false)
23
+ ConfigLoader.instance_variable_set(:@default_configuration, config)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module GitHub
5
+ PROJECT_ROOT = Pathname.new(__dir__).parent.parent.expand_path.freeze
6
+ CONFIG_DEFAULT = PROJECT_ROOT.join("config", "default_cops.yml").freeze
7
+ CONFIG_RAILS = PROJECT_ROOT.join("config", "rails_cops.yml").freeze
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubocop"
4
+ require "rubocop/github"
5
+ require "rubocop/github/inject"
6
+
7
+ RuboCop::GitHub::Inject.rails_defaults!
8
+
9
+ require "rubocop/cop/github/rails_controller_render_action_symbol"
10
+ require "rubocop/cop/github/rails_controller_render_literal"
11
+ require "rubocop/cop/github/rails_controller_render_paths_exist"
12
+ require "rubocop/cop/github/rails_controller_render_shorthand"
13
+ require "rubocop/cop/github/rails_render_object_collection"
14
+ require "rubocop/cop/github/rails_view_render_literal"
15
+ require "rubocop/cop/github/rails_view_render_paths_exist"
16
+ require "rubocop/cop/github/rails_view_render_shorthand"
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubocop"
4
+ require "rubocop/github"
5
+ require "rubocop/github/inject"
6
+
7
+ RuboCop::GitHub::Inject.default_defaults!
8
+
9
+ require "rubocop/cop/github/insecure_hash_algorithm"