rails_best_practices 1.18.1 → 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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +4 -1
  4. data/Gemfile +3 -3
  5. data/README.md +1 -1
  6. data/Rakefile +1 -4
  7. data/lib/rails_best_practices/analyzer.rb +3 -3
  8. data/lib/rails_best_practices/core/routes.rb +1 -1
  9. data/lib/rails_best_practices/lexicals/remove_tab_check.rb +2 -2
  10. data/lib/rails_best_practices/lexicals/remove_trailing_whitespace_check.rb +2 -2
  11. data/lib/rails_best_practices/prepares/route_prepare.rb +5 -0
  12. data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +2 -2
  13. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +2 -2
  14. data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +2 -2
  15. data/lib/rails_best_practices/reviews/default_scope_is_evil_review.rb +2 -2
  16. data/lib/rails_best_practices/reviews/dry_bundler_in_capistrano_review.rb +2 -2
  17. data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +2 -2
  18. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +2 -2
  19. data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +2 -2
  20. data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +2 -2
  21. data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +2 -2
  22. data/lib/rails_best_practices/reviews/move_code_into_model_review.rb +2 -2
  23. data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +2 -2
  24. data/lib/rails_best_practices/reviews/move_model_logic_into_model_review.rb +2 -2
  25. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +2 -2
  26. data/lib/rails_best_practices/reviews/not_rescue_exception_review.rb +2 -2
  27. data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +3 -12
  28. data/lib/rails_best_practices/reviews/not_use_time_ago_in_words_review.rb +2 -2
  29. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +2 -47
  30. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +2 -2
  31. data/lib/rails_best_practices/reviews/remove_empty_helpers_review.rb +2 -2
  32. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +2 -2
  33. data/lib/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review.rb +2 -2
  34. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +15 -6
  35. data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +2 -2
  36. data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +2 -2
  37. data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -2
  38. data/lib/rails_best_practices/reviews/use_model_association_review.rb +2 -2
  39. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +3 -18
  40. data/lib/rails_best_practices/reviews/use_observer_review.rb +2 -13
  41. data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +2 -2
  42. data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +2 -2
  43. data/lib/rails_best_practices/reviews/use_scope_access_review.rb +2 -2
  44. data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +2 -2
  45. data/lib/rails_best_practices/version.rb +1 -1
  46. data/rails_best_practices.gemspec +2 -2
  47. data/spec/rails_best_practices/analyzer_spec.rb +1 -1
  48. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +338 -586
  49. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +59 -140
  50. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +26 -69
  51. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +44 -153
  52. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +2 -2
  53. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +21 -0
  54. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +160 -272
  55. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +76 -209
  56. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +43 -110
  57. data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +4 -4
  58. metadata +5 -23
  59. data/.rubocop.yml +0 -1
  60. data/.rubocop_todo.yml +0 -382
  61. data/install_supported_rubies.sh +0 -10
  62. data/rake_rubies.sh +0 -9
@@ -8,7 +8,7 @@ module RailsBestPractices
8
8
  it "should use turbo-sprockets-rails3" do
9
9
  content = <<-EOF
10
10
  GEM
11
- remote: http://rubygems.org
11
+ remote: https://rubygems.org
12
12
  specs:
13
13
  rails (3.2.13)
14
14
  actionmailer (= 3.2.13)
@@ -33,7 +33,7 @@ GEM
33
33
  it "should not use turbo-sprockets-rails3 with turbo-sprockets-rails3 gem" do
34
34
  content = <<-EOF
35
35
  GEM
36
- remote: http://rubygems.org
36
+ remote: https://rubygems.org
37
37
  specs:
38
38
  rails (3.2.13)
39
39
  actionmailer (= 3.2.13)
@@ -70,7 +70,7 @@ GEM
70
70
  it "should not use turbo-sprockets-rails3 with rails4 gem" do
71
71
  content = <<-EOF
72
72
  GEM
73
- remote: http://rubygems.org
73
+ remote: https://rubygems.org
74
74
  specs:
75
75
  rails (4.0.0)
76
76
  actionmailer (= 4.0.0)
@@ -96,7 +96,7 @@ GEM
96
96
  reviews: UseTurboSprocketsRails3Review.new(ignored_files: /Capfile/))
97
97
  content = <<-EOF
98
98
  GEM
99
- remote: http://rubygems.org
99
+ remote: https://rubygems.org
100
100
  specs:
101
101
  rails (3.2.13)
102
102
  actionmailer (= 3.2.13)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_best_practices
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.1
4
+ version: 1.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-10 00:00:00.000000000 Z
11
+ date: 2017-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.4.3
33
+ version: 0.4.8
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.4.3
40
+ version: 0.4.8
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: erubis
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -192,20 +192,6 @@ dependencies:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: rubocop
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - '='
200
- - !ruby/object:Gem::Version
201
- version: 0.30.1
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - '='
207
- - !ruby/object:Gem::Version
208
- version: 0.30.1
209
195
  description: a code metric tool for rails codes, written in Ruby.
210
196
  email:
211
197
  - flyerhzm@gmail.com
@@ -216,8 +202,6 @@ extra_rdoc_files: []
216
202
  files:
217
203
  - ".gitignore"
218
204
  - ".rspec"
219
- - ".rubocop.yml"
220
- - ".rubocop_todo.yml"
221
205
  - ".travis.yml"
222
206
  - CHANGELOG.md
223
207
  - Gemfile
@@ -227,7 +211,6 @@ files:
227
211
  - Rakefile
228
212
  - assets/result.html.erb
229
213
  - bin/rails_best_practices
230
- - install_supported_rubies.sh
231
214
  - lib/rails_best_practices.rb
232
215
  - lib/rails_best_practices/analyzer.rb
233
216
  - lib/rails_best_practices/colorize.rb
@@ -308,7 +291,6 @@ files:
308
291
  - lib/rails_best_practices/version.rb
309
292
  - rails_best_practices.gemspec
310
293
  - rails_best_practices.yml
311
- - rake_rubies.sh
312
294
  - spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb
313
295
  - spec/rails_best_practices/analyzer_spec.rb
314
296
  - spec/rails_best_practices/core/check_spec.rb
@@ -419,7 +401,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
419
401
  version: 1.3.6
420
402
  requirements: []
421
403
  rubyforge_project:
422
- rubygems_version: 2.6.10
404
+ rubygems_version: 2.6.12
423
405
  signing_key:
424
406
  specification_version: 4
425
407
  summary: a code metric tool for rails codes.
@@ -1 +0,0 @@
1
- inherit_from: .rubocop_todo.yml
@@ -1,382 +0,0 @@
1
- # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2015-05-04 15:10:48 +0100 using RuboCop version 0.30.1.
3
- # The point is for the user to remove these configuration records
4
- # one by one as the offenses are removed from the code base.
5
- # Note that changes in the inspected code, or installation of new
6
- # versions of RuboCop, may require this file to be generated again.
7
-
8
- # Offense count: 1
9
- Lint/AmbiguousOperator:
10
- Enabled: false
11
-
12
- # Offense count: 2
13
- # Configuration parameters: AllowSafeAssignment.
14
- Lint/AssignmentInCondition:
15
- Enabled: false
16
-
17
- # Offense count: 2
18
- # Cop supports --auto-correct.
19
- Lint/BlockAlignment:
20
- Enabled: false
21
-
22
- # Offense count: 3
23
- # Cop supports --auto-correct.
24
- Lint/DeprecatedClassMethods:
25
- Enabled: false
26
-
27
- # Offense count: 4
28
- # Configuration parameters: AlignWith, SupportedStyles.
29
- Lint/EndAlignment:
30
- Enabled: false
31
-
32
- # Offense count: 3
33
- Lint/HandleExceptions:
34
- Enabled: false
35
-
36
- # Offense count: 6
37
- Lint/ShadowingOuterLocalVariable:
38
- Enabled: false
39
-
40
- # Offense count: 1
41
- # Cop supports --auto-correct.
42
- Lint/StringConversionInInterpolation:
43
- Enabled: false
44
-
45
- # Offense count: 1
46
- Lint/UnderscorePrefixedVariableName:
47
- Enabled: false
48
-
49
- # Offense count: 24
50
- # Cop supports --auto-correct.
51
- Lint/UnusedBlockArgument:
52
- Enabled: false
53
-
54
- # Offense count: 5
55
- # Cop supports --auto-correct.
56
- Lint/UnusedMethodArgument:
57
- Enabled: false
58
-
59
- # Offense count: 1
60
- Lint/UselessAssignment:
61
- Enabled: false
62
-
63
- # Offense count: 23
64
- Metrics/AbcSize:
65
- Max: 96
66
-
67
- # Offense count: 6
68
- Metrics/BlockNesting:
69
- Max: 4
70
-
71
- # Offense count: 4
72
- # Configuration parameters: CountComments.
73
- Metrics/ClassLength:
74
- Max: 224
75
-
76
- # Offense count: 3
77
- Metrics/CyclomaticComplexity:
78
- Max: 16
79
-
80
- # Offense count: 894
81
- # Configuration parameters: AllowURI, URISchemes.
82
- Metrics/LineLength:
83
- Max: 269
84
-
85
- # Offense count: 24
86
- # Configuration parameters: CountComments.
87
- Metrics/MethodLength:
88
- Max: 79
89
-
90
- # Offense count: 4
91
- Metrics/PerceivedComplexity:
92
- Max: 14
93
-
94
- # Offense count: 4
95
- # Cop supports --auto-correct.
96
- # Configuration parameters: EnforcedStyle, SupportedStyles.
97
- Style/AlignParameters:
98
- Enabled: false
99
-
100
- # Offense count: 5
101
- # Cop supports --auto-correct.
102
- # Configuration parameters: EnforcedStyle, SupportedStyles.
103
- Style/AndOr:
104
- Enabled: false
105
-
106
- # Offense count: 17
107
- # Cop supports --auto-correct.
108
- # Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
109
- Style/BlockDelimiters:
110
- Enabled: false
111
-
112
- # Offense count: 4
113
- # Cop supports --auto-correct.
114
- Style/BlockEndNewline:
115
- Enabled: false
116
-
117
- # Offense count: 25
118
- # Cop supports --auto-correct.
119
- # Configuration parameters: EnforcedStyle, SupportedStyles.
120
- Style/BracesAroundHashParameters:
121
- Enabled: false
122
-
123
- # Offense count: 17
124
- # Configuration parameters: EnforcedStyle, SupportedStyles.
125
- Style/ClassAndModuleChildren:
126
- Enabled: false
127
-
128
- # Offense count: 2
129
- # Configuration parameters: Keywords.
130
- Style/CommentAnnotation:
131
- Enabled: false
132
-
133
- # Offense count: 76
134
- Style/Documentation:
135
- Enabled: false
136
-
137
- # Offense count: 6
138
- Style/DoubleNegation:
139
- Enabled: false
140
-
141
- # Offense count: 2
142
- Style/EachWithObject:
143
- Enabled: false
144
-
145
- # Offense count: 5
146
- # Cop supports --auto-correct.
147
- Style/ElseAlignment:
148
- Enabled: false
149
-
150
- # Offense count: 10
151
- # Configuration parameters: EnforcedStyle, SupportedStyles.
152
- Style/EmptyElse:
153
- Enabled: false
154
-
155
- # Offense count: 3
156
- # Cop supports --auto-correct.
157
- Style/EmptyLines:
158
- Enabled: false
159
-
160
- # Offense count: 30
161
- # Cop supports --auto-correct.
162
- Style/EmptyLinesAroundAccessModifier:
163
- Enabled: false
164
-
165
- # Offense count: 5
166
- # Cop supports --auto-correct.
167
- # Configuration parameters: EnforcedStyle, SupportedStyles.
168
- Style/EmptyLinesAroundBlockBody:
169
- Enabled: false
170
-
171
- # Offense count: 1
172
- # Cop supports --auto-correct.
173
- # Configuration parameters: EnforcedStyle, SupportedStyles.
174
- Style/EmptyLinesAroundClassBody:
175
- Enabled: false
176
-
177
- # Offense count: 2
178
- # Configuration parameters: AllowedVariables.
179
- Style/GlobalVars:
180
- Enabled: false
181
-
182
- # Offense count: 27
183
- # Configuration parameters: MinBodyLength.
184
- Style/GuardClause:
185
- Enabled: false
186
-
187
- # Offense count: 12
188
- # Cop supports --auto-correct.
189
- # Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues.
190
- Style/HashSyntax:
191
- Enabled: false
192
-
193
- # Offense count: 11
194
- # Cop supports --auto-correct.
195
- # Configuration parameters: MaxLineLength.
196
- Style/IfUnlessModifier:
197
- Enabled: false
198
-
199
- # Offense count: 2
200
- # Cop supports --auto-correct.
201
- Style/IndentArray:
202
- Enabled: false
203
-
204
- # Offense count: 2
205
- # Cop supports --auto-correct.
206
- # Configuration parameters: EnforcedStyle, SupportedStyles.
207
- Style/IndentHash:
208
- Enabled: false
209
-
210
- # Offense count: 99
211
- # Cop supports --auto-correct.
212
- # Configuration parameters: EnforcedStyle, SupportedStyles.
213
- Style/IndentationConsistency:
214
- Enabled: false
215
-
216
- # Offense count: 7
217
- # Cop supports --auto-correct.
218
- # Configuration parameters: Width.
219
- Style/IndentationWidth:
220
- Enabled: false
221
-
222
- # Offense count: 2
223
- # Cop supports --auto-correct.
224
- # Configuration parameters: EnforcedStyle, SupportedStyles.
225
- Style/MethodDefParentheses:
226
- Enabled: false
227
-
228
- # Offense count: 1
229
- Style/MultilineBlockChain:
230
- Enabled: false
231
-
232
- # Offense count: 4
233
- # Cop supports --auto-correct.
234
- Style/MultilineBlockLayout:
235
- Enabled: false
236
-
237
- # Offense count: 14
238
- # Cop supports --auto-correct.
239
- # Configuration parameters: EnforcedStyle, SupportedStyles.
240
- Style/MultilineOperationIndentation:
241
- Enabled: false
242
-
243
- # Offense count: 3
244
- # Cop supports --auto-correct.
245
- Style/NegatedIf:
246
- Enabled: false
247
-
248
- # Offense count: 4
249
- # Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
250
- Style/Next:
251
- Enabled: false
252
-
253
- # Offense count: 1
254
- # Cop supports --auto-correct.
255
- # Configuration parameters: PreferredDelimiters.
256
- Style/PercentLiteralDelimiters:
257
- Enabled: false
258
-
259
- # Offense count: 10
260
- # Cop supports --auto-correct.
261
- Style/PerlBackrefs:
262
- Enabled: false
263
-
264
- # Offense count: 9
265
- # Configuration parameters: NamePrefix, NamePrefixBlacklist.
266
- Style/PredicateName:
267
- Enabled: false
268
-
269
- # Offense count: 1
270
- # Configuration parameters: EnforcedStyle, SupportedStyles.
271
- Style/RaiseArgs:
272
- Enabled: false
273
-
274
- # Offense count: 1
275
- # Cop supports --auto-correct.
276
- Style/RedundantBegin:
277
- Enabled: false
278
-
279
- # Offense count: 1
280
- # Cop supports --auto-correct.
281
- # Configuration parameters: AllowMultipleReturnValues.
282
- Style/RedundantReturn:
283
- Enabled: false
284
-
285
- # Offense count: 2
286
- # Cop supports --auto-correct.
287
- Style/RedundantSelf:
288
- Enabled: false
289
-
290
- # Offense count: 34
291
- # Cop supports --auto-correct.
292
- # Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes.
293
- Style/RegexpLiteral:
294
- Enabled: false
295
-
296
- # Offense count: 1
297
- # Cop supports --auto-correct.
298
- # Configuration parameters: AllowAsExpressionSeparator.
299
- Style/Semicolon:
300
- Enabled: false
301
-
302
- # Offense count: 1
303
- # Cop supports --auto-correct.
304
- # Configuration parameters: EnforcedStyle, SupportedStyles.
305
- Style/SignalException:
306
- Enabled: false
307
-
308
- # Offense count: 1
309
- # Configuration parameters: Methods.
310
- Style/SingleLineBlockParams:
311
- Enabled: false
312
-
313
- # Offense count: 3
314
- # Cop supports --auto-correct.
315
- Style/SpaceAfterComma:
316
- Enabled: false
317
-
318
- # Offense count: 20
319
- # Cop supports --auto-correct.
320
- # Configuration parameters: EnforcedStyle, SupportedStyles.
321
- Style/SpaceAroundEqualsInParameterDefault:
322
- Enabled: false
323
-
324
- # Offense count: 367
325
- # Cop supports --auto-correct.
326
- # Configuration parameters: MultiSpaceAllowedForOperators.
327
- Style/SpaceAroundOperators:
328
- Enabled: false
329
-
330
- # Offense count: 5
331
- # Cop supports --auto-correct.
332
- # Configuration parameters: EnforcedStyle, SupportedStyles.
333
- Style/SpaceBeforeBlockBraces:
334
- Enabled: false
335
-
336
- # Offense count: 10
337
- # Cop supports --auto-correct.
338
- # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
339
- Style/SpaceInsideBlockBraces:
340
- Enabled: false
341
-
342
- # Offense count: 68
343
- # Cop supports --auto-correct.
344
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
345
- Style/SpaceInsideHashLiteralBraces:
346
- Enabled: false
347
-
348
- # Offense count: 2040
349
- # Cop supports --auto-correct.
350
- # Configuration parameters: EnforcedStyle, SupportedStyles.
351
- Style/StringLiterals:
352
- Enabled: false
353
-
354
- # Offense count: 5
355
- # Cop supports --auto-correct.
356
- # Configuration parameters: EnforcedStyle, SupportedStyles.
357
- Style/StringLiteralsInInterpolation:
358
- Enabled: false
359
-
360
- # Offense count: 2
361
- # Cop supports --auto-correct.
362
- # Configuration parameters: IgnoredMethods.
363
- Style/SymbolProc:
364
- Enabled: false
365
-
366
- # Offense count: 4
367
- # Cop supports --auto-correct.
368
- # Configuration parameters: EnforcedStyle, SupportedStyles.
369
- Style/TrailingBlankLines:
370
- Enabled: false
371
-
372
- # Offense count: 1
373
- # Cop supports --auto-correct.
374
- # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist.
375
- Style/TrivialAccessors:
376
- Enabled: false
377
-
378
- # Offense count: 34
379
- # Cop supports --auto-correct.
380
- # Configuration parameters: WordRegex.
381
- Style/WordArray:
382
- MinSize: 9