rails_best_practices 1.20.0 → 1.20.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/Gemfile.lock +30 -26
  4. data/Guardfile +2 -0
  5. data/Rakefile +2 -0
  6. data/lib/rails_best_practices.rb +1 -2
  7. data/lib/rails_best_practices/analyzer.rb +56 -46
  8. data/lib/rails_best_practices/core/check.rb +39 -32
  9. data/lib/rails_best_practices/core/checks_loader.rb +8 -6
  10. data/lib/rails_best_practices/core/configs.rb +1 -2
  11. data/lib/rails_best_practices/core/controllers.rb +1 -2
  12. data/lib/rails_best_practices/core/error.rb +1 -1
  13. data/lib/rails_best_practices/core/helpers.rb +1 -2
  14. data/lib/rails_best_practices/core/mailers.rb +1 -2
  15. data/lib/rails_best_practices/core/methods.rb +21 -16
  16. data/lib/rails_best_practices/core/model_associations.rb +9 -4
  17. data/lib/rails_best_practices/core/models.rb +1 -2
  18. data/lib/rails_best_practices/core/modules.rb +1 -1
  19. data/lib/rails_best_practices/core/routes.rb +2 -2
  20. data/lib/rails_best_practices/core/runner.rb +29 -33
  21. data/lib/rails_best_practices/lexicals/long_line_check.rb +7 -3
  22. data/lib/rails_best_practices/option_parser.rb +17 -6
  23. data/lib/rails_best_practices/prepares.rb +1 -1
  24. data/lib/rails_best_practices/prepares/controller_prepare.rb +15 -3
  25. data/lib/rails_best_practices/prepares/gemfile_prepare.rb +1 -1
  26. data/lib/rails_best_practices/prepares/helper_prepare.rb +6 -1
  27. data/lib/rails_best_practices/prepares/initializer_prepare.rb +2 -2
  28. data/lib/rails_best_practices/prepares/mailer_prepare.rb +1 -0
  29. data/lib/rails_best_practices/prepares/model_prepare.rb +52 -12
  30. data/lib/rails_best_practices/prepares/route_prepare.rb +16 -10
  31. data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +15 -13
  32. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +34 -29
  33. data/lib/rails_best_practices/reviews/check_destroy_return_value_review.rb +14 -5
  34. data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +19 -8
  35. data/lib/rails_best_practices/reviews/hash_syntax_review.rb +5 -5
  36. data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +4 -4
  37. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +7 -8
  38. data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +6 -6
  39. data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +1 -1
  40. data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +6 -7
  41. data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +7 -8
  42. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +12 -10
  43. data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +1 -2
  44. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +5 -5
  45. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +5 -2
  46. data/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +6 -3
  47. data/lib/rails_best_practices/reviews/remove_unused_methods_in_helpers_review.rb +6 -4
  48. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +29 -9
  49. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +3 -3
  50. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +17 -15
  51. data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +1 -2
  52. data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +3 -3
  53. data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -1
  54. data/lib/rails_best_practices/reviews/use_model_association_review.rb +5 -5
  55. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +9 -8
  56. data/lib/rails_best_practices/reviews/use_observer_review.rb +9 -9
  57. data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +26 -26
  58. data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +8 -7
  59. data/lib/rails_best_practices/reviews/use_scope_access_review.rb +17 -15
  60. data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +2 -1
  61. data/lib/rails_best_practices/version.rb +1 -1
  62. data/rails_best_practices.gemspec +35 -36
  63. data/spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb +1 -2
  64. data/spec/rails_best_practices/analyzer_spec.rb +73 -42
  65. data/spec/rails_best_practices/core/check_spec.rb +5 -5
  66. data/spec/rails_best_practices/core/checks_loader_spec.rb +3 -3
  67. data/spec/rails_best_practices/core/configs_spec.rb +1 -1
  68. data/spec/rails_best_practices/core/controllers_spec.rb +1 -1
  69. data/spec/rails_best_practices/core/error_spec.rb +21 -21
  70. data/spec/rails_best_practices/core/except_methods_spec.rb +7 -7
  71. data/spec/rails_best_practices/core/gems_spec.rb +4 -4
  72. data/spec/rails_best_practices/core/helpers_spec.rb +1 -1
  73. data/spec/rails_best_practices/core/klasses_spec.rb +3 -3
  74. data/spec/rails_best_practices/core/mailers_spec.rb +1 -1
  75. data/spec/rails_best_practices/core/methods_spec.rb +6 -6
  76. data/spec/rails_best_practices/core/model_associations_spec.rb +10 -6
  77. data/spec/rails_best_practices/core/model_attributes_spec.rb +4 -4
  78. data/spec/rails_best_practices/core/models_spec.rb +1 -1
  79. data/spec/rails_best_practices/core/modules_spec.rb +5 -5
  80. data/spec/rails_best_practices/core/routes_spec.rb +5 -5
  81. data/spec/rails_best_practices/core/runner_spec.rb +9 -7
  82. data/spec/rails_best_practices/core_ext/erubis_spec.rb +10 -10
  83. data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +11 -10
  84. data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +6 -6
  85. data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +6 -6
  86. data/spec/rails_best_practices/prepares/config_prepare_spec.rb +2 -2
  87. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +18 -10
  88. data/spec/rails_best_practices/prepares/gemfile_prepare_spec.rb +2 -2
  89. data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +3 -3
  90. data/spec/rails_best_practices/prepares/initializer_prepare_spec.rb +3 -3
  91. data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +2 -2
  92. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +79 -43
  93. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +138 -77
  94. data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +2 -2
  95. data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +18 -12
  96. data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +28 -22
  97. data/spec/rails_best_practices/reviews/check_destroy_return_value_review_spec.rb +15 -13
  98. data/spec/rails_best_practices/reviews/check_save_return_value_review_spec.rb +31 -21
  99. data/spec/rails_best_practices/reviews/default_scope_is_evil_review_spec.rb +6 -6
  100. data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +5 -5
  101. data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +9 -9
  102. data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +7 -7
  103. data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +9 -9
  104. data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +21 -14
  105. data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +6 -6
  106. data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +11 -6
  107. data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +26 -16
  108. data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +7 -7
  109. data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +9 -7
  110. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +9 -9
  111. data/spec/rails_best_practices/reviews/not_rescue_exception_review_spec.rb +9 -9
  112. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +5 -5
  113. data/spec/rails_best_practices/reviews/not_use_time_ago_in_words_review_spec.rb +7 -7
  114. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +7 -7
  115. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +24 -19
  116. data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +6 -6
  117. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +44 -31
  118. data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +17 -12
  119. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +46 -44
  120. data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +10 -8
  121. data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +16 -10
  122. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +54 -31
  123. data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +9 -9
  124. data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +13 -13
  125. data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +11 -9
  126. data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +7 -7
  127. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +21 -17
  128. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +6 -6
  129. data/spec/rails_best_practices/reviews/use_parentheses_in_method_def_review_spec.rb +9 -7
  130. data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +31 -24
  131. data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +15 -11
  132. data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +14 -14
  133. data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +10 -8
  134. metadata +7 -7
@@ -5,9 +5,9 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe RemoveEmptyHelpersReview do
8
- let(:runner) { Core::Runner.new(reviews: RemoveEmptyHelpersReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
- it 'should remove empty helpers' do
10
+ it 'removes empty helpers' do
11
11
  content = <<-EOF
12
12
  module PostsHelper
13
13
  end
@@ -17,7 +17,7 @@ module RailsBestPractices
17
17
  expect(runner.errors[0].to_s).to eq('app/helpers/posts_helper.rb:1 - remove empty helpers')
18
18
  end
19
19
 
20
- it 'should not remove empty helpers' do
20
+ it 'does not remove empty helpers' do
21
21
  content = <<-EOF
22
22
  module PostsHelper
23
23
  def post_link(post)
@@ -29,7 +29,7 @@ module RailsBestPractices
29
29
  expect(runner.errors.size).to eq(0)
30
30
  end
31
31
 
32
- it 'should not remove empty application_helper' do
32
+ it 'does not remove empty application_helper' do
33
33
  content = <<-EOF
34
34
  module ApplicationHelper
35
35
  end
@@ -38,8 +38,8 @@ module RailsBestPractices
38
38
  expect(runner.errors.size).to eq(0)
39
39
  end
40
40
 
41
- it 'should not check ignored files' do
42
- runner = Core::Runner.new(reviews: RemoveEmptyHelpersReview.new(ignored_files: /posts_helper/))
41
+ it 'does not check ignored files' do
42
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: /posts_helper/))
43
43
  content = <<-EOF
44
44
  module PostsHelper
45
45
  end
@@ -5,15 +5,15 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe RemoveUnusedMethodsInControllersReview do
8
- let(:runner) {
8
+ let(:runner) do
9
9
  Core::Runner.new(
10
10
  prepares: [Prepares::ControllerPrepare.new, Prepares::RoutePrepare.new],
11
- reviews: RemoveUnusedMethodsInControllersReview.new('except_methods' => ['ExceptableController#*'])
11
+ reviews: described_class.new('except_methods' => ['ExceptableController#*'])
12
12
  )
13
- }
13
+ end
14
14
 
15
15
  context 'private/protected' do
16
- it 'should remove unused methods' do
16
+ it 'removes unused methods' do
17
17
  content = <<-EOF
18
18
  RailsBestPracticesCom::Application.routes.draw do
19
19
  resources :posts do
@@ -40,11 +40,15 @@ module RailsBestPractices
40
40
  runner.review('app/controllers/posts_controller.rb', content)
41
41
  runner.after_review
42
42
  expect(runner.errors.size).to eq(2)
43
- expect(runner.errors[0].to_s).to eq('app/controllers/posts_controller.rb:6 - remove unused methods (PostsController#load_post)')
44
- expect(runner.errors[1].to_s).to eq('app/controllers/posts_controller.rb:8 - remove unused methods (PostsController#load_user)')
43
+ expect(runner.errors[0].to_s).to eq(
44
+ 'app/controllers/posts_controller.rb:6 - remove unused methods (PostsController#load_post)'
45
+ )
46
+ expect(runner.errors[1].to_s).to eq(
47
+ 'app/controllers/posts_controller.rb:8 - remove unused methods (PostsController#load_user)'
48
+ )
45
49
  end
46
50
 
47
- it 'should not remove unused methods for before_filter' do
51
+ it 'does not remove unused methods for before_filter' do
48
52
  content = <<-EOF
49
53
  RailsBestPracticesCom::Application.routes.draw do
50
54
  resources :posts
@@ -66,7 +70,7 @@ module RailsBestPractices
66
70
  expect(runner.errors.size).to eq(0)
67
71
  end
68
72
 
69
- it 'should not remove unused methods for around_filter' do
73
+ it 'does not remove unused methods for around_filter' do
70
74
  content = <<-EOF
71
75
  RailsBestPracticesCom::Application.routes.draw do
72
76
  resources :posts
@@ -91,7 +95,7 @@ module RailsBestPractices
91
95
  expect(runner.errors.size).to eq(0)
92
96
  end
93
97
 
94
- it 'should not remove unused methods for around_action (new syntax)' do
98
+ it 'does not remove unused methods for around_action (new syntax)' do
95
99
  content = <<-EOF
96
100
  class PostsController < ActiveRecord::Base
97
101
  around_action :use_time_zone
@@ -109,7 +113,7 @@ module RailsBestPractices
109
113
  expect(runner.errors.size).to eq(0)
110
114
  end
111
115
 
112
- it 'should not remove unused methods for layout' do
116
+ it 'does not remove unused methods for layout' do
113
117
  content = <<-EOF
114
118
  RailsBestPracticesCom::Application.routes.draw do
115
119
  resources :posts
@@ -131,7 +135,7 @@ module RailsBestPractices
131
135
  expect(runner.errors.size).to eq(0)
132
136
  end
133
137
 
134
- it 'should not remove inherited_resources methods' do
138
+ it 'does not remove inherited_resources methods' do
135
139
  content = <<-EOF
136
140
  RailsBestPracticesCom::Application.routes.draw do
137
141
  resources :posts
@@ -155,7 +159,7 @@ module RailsBestPractices
155
159
  end
156
160
 
157
161
  context 'public' do
158
- it 'should remove unused methods' do
162
+ it 'removes unused methods' do
159
163
  content = <<-EOF
160
164
  RailsBestPracticesCom::Application.routes.draw do
161
165
  resources :posts
@@ -172,10 +176,12 @@ module RailsBestPractices
172
176
  runner.review('app/controllers/posts_controller.rb', content)
173
177
  runner.after_review
174
178
  expect(runner.errors.size).to eq(1)
175
- expect(runner.errors[0].to_s).to eq('app/controllers/posts_controller.rb:3 - remove unused methods (PostsController#list)')
179
+ expect(runner.errors[0].to_s).to eq(
180
+ 'app/controllers/posts_controller.rb:3 - remove unused methods (PostsController#list)'
181
+ )
176
182
  end
177
183
 
178
- it 'should not remove inline routes' do
184
+ it 'does not remove inline routes' do
179
185
  content = <<-EOF
180
186
  RailsBestPracticesCom::Application.routes.draw do
181
187
  resources :posts, only: :none do
@@ -196,7 +202,7 @@ module RailsBestPractices
196
202
  expect(runner.errors.size).to eq(0)
197
203
  end
198
204
 
199
- it 'should not remove unused methods if all actions are used in route' do
205
+ it 'does not remove unused methods if all actions are used in route' do
200
206
  content = <<-EOF
201
207
  ActionController::Routing::Routes.draw do |map|
202
208
  map.connect 'internal/:action/*whatever', controller: "internal"
@@ -216,7 +222,7 @@ module RailsBestPractices
216
222
  expect(runner.errors.size).to eq(0)
217
223
  end
218
224
 
219
- it 'should not remove unused methods if they are except_methods' do
225
+ it 'does not remove unused methods if they are except_methods' do
220
226
  content = <<-EOF
221
227
  class ExceptableController < ApplicationController
222
228
  def list; end
@@ -230,7 +236,7 @@ module RailsBestPractices
230
236
  end
231
237
 
232
238
  context 'assignment' do
233
- it 'should not remove unused methods if call in base class' do
239
+ it 'does not remove unused methods if call in base class' do
234
240
  content = <<-EOF
235
241
  RailsBestPracticesCom::Application.routes.draw do
236
242
  resources :user, only: :show do; end
@@ -259,7 +265,7 @@ module RailsBestPractices
259
265
  end
260
266
 
261
267
  context 'helper_method' do
262
- it 'should remove unused methods if helper method is not called' do
268
+ it 'removes unused methods if helper method is not called' do
263
269
  content = <<-EOF
264
270
  class PostsController < ApplicationController
265
271
  helper_method :helper_post
@@ -271,10 +277,12 @@ module RailsBestPractices
271
277
  runner.review('app/controllers/posts_controller.rb', content)
272
278
  runner.after_review
273
279
  expect(runner.errors.size).to eq(1)
274
- expect(runner.errors[0].to_s).to eq('app/controllers/posts_controller.rb:4 - remove unused methods (PostsController#helper_post)')
280
+ expect(runner.errors[0].to_s).to eq(
281
+ 'app/controllers/posts_controller.rb:4 - remove unused methods (PostsController#helper_post)'
282
+ )
275
283
  end
276
284
 
277
- it 'should not remove unused methods if call helper method in views' do
285
+ it 'does not remove unused methods if call helper method in views' do
278
286
  content = <<-EOF
279
287
  class PostsController < ApplicationController
280
288
  helper_method :helper_post
@@ -292,7 +300,7 @@ module RailsBestPractices
292
300
  expect(runner.errors.size).to eq(0)
293
301
  end
294
302
 
295
- it 'should not remove unused methods if call helper method in helpers' do
303
+ it 'does not remove unused methods if call helper method in helpers' do
296
304
  content = <<-EOF
297
305
  class PostsController < ApplicationController
298
306
  helper_method :helper_post
@@ -316,7 +324,7 @@ module RailsBestPractices
316
324
  end
317
325
 
318
326
  context 'delegate to: :controller' do
319
- it 'should remove unused methods if delegate method is not called' do
327
+ it 'removes unused methods if delegate method is not called' do
320
328
  content = <<-EOF
321
329
  class PostsController < ApplicationController
322
330
  protected
@@ -333,10 +341,12 @@ module RailsBestPractices
333
341
  runner.review('app/helpers/posts_helper.rb', content)
334
342
  runner.after_review
335
343
  expect(runner.errors.size).to eq(1)
336
- expect(runner.errors[0].to_s).to eq('app/controllers/posts_controller.rb:3 - remove unused methods (PostsController#helper_post)')
344
+ expect(runner.errors[0].to_s).to eq(
345
+ 'app/controllers/posts_controller.rb:3 - remove unused methods (PostsController#helper_post)'
346
+ )
337
347
  end
338
348
 
339
- it 'should remove unused methods if delegate method is called' do
349
+ it 'removes unused methods if delegate method is called' do
340
350
  content = <<-EOF
341
351
  class PostsController < ApplicationController
342
352
  protected
@@ -361,7 +371,7 @@ module RailsBestPractices
361
371
  end
362
372
 
363
373
  context 'cells' do
364
- it 'should remove unused methods' do
374
+ it 'removes unused methods' do
365
375
  content = <<-EOF
366
376
  class PostsCell < Cell::Rails
367
377
  def list; end
@@ -374,7 +384,7 @@ module RailsBestPractices
374
384
  expect(runner.errors[0].to_s).to eq('app/cells/posts_cell.rb:2 - remove unused methods (PostsCell#list)')
375
385
  end
376
386
 
377
- it 'should not remove unused methods if render_cell' do
387
+ it 'does not remove unused methods if render_cell' do
378
388
  content = <<-EOF
379
389
  class PostsCell < Cell::Rails
380
390
  def list; end
@@ -392,7 +402,7 @@ module RailsBestPractices
392
402
  expect(runner.errors.size).to eq(0)
393
403
  end
394
404
 
395
- it 'should not remove unused methods if render with state' do
405
+ it 'does not remove unused methods if render with state' do
396
406
  content = <<-EOF
397
407
  class PostsCell < Cell::Rails
398
408
  def list
@@ -415,7 +425,7 @@ module RailsBestPractices
415
425
  end
416
426
  end
417
427
 
418
- it 'should not remove unused methods' do
428
+ it 'does not remove unused methods' do
419
429
  route_content = <<-EOF
420
430
  RailsBestPracticesCom::Application.routes.draw do
421
431
  namespace :admin do
@@ -452,9 +462,12 @@ module RailsBestPractices
452
462
  expect(runner.errors.size).to eq(0)
453
463
  end
454
464
 
455
- it 'should not check ignored files' do
456
- runner = Core::Runner.new(prepares: [Prepares::ControllerPrepare.new, Prepares::RoutePrepare.new],
457
- reviews: RemoveUnusedMethodsInControllersReview.new(ignored_files: /posts_controller/, except_methods: []))
465
+ it 'does not check ignored files' do
466
+ runner =
467
+ Core::Runner.new(
468
+ prepares: [Prepares::ControllerPrepare.new, Prepares::RoutePrepare.new],
469
+ reviews: described_class.new(ignored_files: /posts_controller/, except_methods: [])
470
+ )
458
471
  content = <<-EOF
459
472
  RailsBestPracticesCom::Application.routes.draw do
460
473
  resources :posts do
@@ -5,14 +5,14 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe RemoveUnusedMethodsInHelpersReview do
8
- let(:runner) {
8
+ let(:runner) do
9
9
  Core::Runner.new(
10
10
  prepares: [Prepares::ControllerPrepare.new, Prepares::HelperPrepare.new],
11
- reviews: RemoveUnusedMethodsInHelpersReview.new(except_methods: [])
11
+ reviews: described_class.new(except_methods: [])
12
12
  )
13
- }
13
+ end
14
14
 
15
- it 'should remove unused methods' do
15
+ it 'removes unused methods' do
16
16
  content = <<-EOF
17
17
  module PostsHelper
18
18
  def unused; end
@@ -22,10 +22,12 @@ module RailsBestPractices
22
22
  runner.review('app/helpers/posts_helper.rb', content)
23
23
  runner.after_review
24
24
  expect(runner.errors.size).to eq(1)
25
- expect(runner.errors[0].to_s).to eq('app/helpers/posts_helper.rb:2 - remove unused methods (PostsHelper#unused)')
25
+ expect(runner.errors[0].to_s).to eq(
26
+ 'app/helpers/posts_helper.rb:2 - remove unused methods (PostsHelper#unused)'
27
+ )
26
28
  end
27
29
 
28
- it 'should not remove unused methods if called on views' do
30
+ it 'does not remove unused methods if called on views' do
29
31
  content = <<-EOF
30
32
  module PostsHelper
31
33
  def used?(post); end
@@ -42,7 +44,7 @@ module RailsBestPractices
42
44
  expect(runner.errors.size).to eq(0)
43
45
  end
44
46
 
45
- it 'should not remove unused methods if called on helpers' do
47
+ it 'does not remove unused methods if called on helpers' do
46
48
  content = <<-EOF
47
49
  module PostsHelper
48
50
  def used?(post)
@@ -63,7 +65,7 @@ module RailsBestPractices
63
65
  expect(runner.errors.size).to eq(0)
64
66
  end
65
67
 
66
- it 'should not remove unused methods if called on controllers' do
68
+ it 'does not remove unused methods if called on controllers' do
67
69
  helper_content = <<-EOF
68
70
  module PostsHelper
69
71
  def used?(post); end
@@ -88,7 +90,7 @@ module RailsBestPractices
88
90
  expect(runner.errors.size).to eq(0)
89
91
  end
90
92
 
91
- it 'should not remove unused methods if called in descendant controllers' do
93
+ it 'does not remove unused methods if called in descendant controllers' do
92
94
  application_helper_content = <<-EOF
93
95
  module ApplicationHelper
94
96
  def admin?; end
@@ -118,9 +120,12 @@ module RailsBestPractices
118
120
  expect(runner.errors.size).to eq(0)
119
121
  end
120
122
 
121
- it 'should not check ignored files' do
122
- runner = Core::Runner.new(prepares: [Prepares::ControllerPrepare.new, Prepares::HelperPrepare.new],
123
- reviews: RemoveUnusedMethodsInHelpersReview.new(ignored_files: /posts_helper/, except_methods: []))
123
+ it 'does not check ignored files' do
124
+ runner =
125
+ Core::Runner.new(
126
+ prepares: [Prepares::ControllerPrepare.new, Prepares::HelperPrepare.new],
127
+ reviews: described_class.new(ignored_files: /posts_helper/, except_methods: [])
128
+ )
124
129
 
125
130
  content = <<-EOF
126
131
  module PostsHelper
@@ -5,15 +5,14 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe RemoveUnusedMethodsInModelsReview do
8
- let(:runner) {
8
+ let(:runner) do
9
9
  Core::Runner.new(
10
- prepares: Prepares::ModelPrepare.new,
11
- reviews: RemoveUnusedMethodsInModelsReview.new('except_methods' => ['*#set_cache'])
10
+ prepares: Prepares::ModelPrepare.new, reviews: described_class.new('except_methods' => ['*#set_cache'])
12
11
  )
13
- }
12
+ end
14
13
 
15
14
  context 'private' do
16
- it 'should remove unused methods' do
15
+ it 'removes unused methods' do
17
16
  content = <<-EOF
18
17
  class Post < ActiveRecord::Base
19
18
  def find; end
@@ -36,7 +35,7 @@ module RailsBestPractices
36
35
  expect(runner.errors[0].to_s).to eq('app/models/post.rb:4 - remove unused methods (Post#find_by_sql)')
37
36
  end
38
37
 
39
- it 'should not remove unused methods with except_methods' do
38
+ it 'does not remove unused methods with except_methods' do
40
39
  content = <<-EOF
41
40
  class Post < ActiveRecord::Base
42
41
  def set_cache; end
@@ -48,7 +47,7 @@ module RailsBestPractices
48
47
  expect(runner.errors.size).to eq(0)
49
48
  end
50
49
 
51
- it 'should not remove unused methods with var_ref' do
50
+ it 'does not remove unused methods with var_ref' do
52
51
  content = <<-EOF
53
52
  class Post < ActiveRecord::Base
54
53
  def find
@@ -72,7 +71,7 @@ module RailsBestPractices
72
71
  expect(runner.errors.size).to eq(0)
73
72
  end
74
73
 
75
- it 'should not remove unused methods with callback' do
74
+ it 'does not remove unused methods with callback' do
76
75
  content = <<-EOF
77
76
  class Post < ActiveRecord::Base
78
77
  after_save :expire_cache
@@ -86,7 +85,7 @@ module RailsBestPractices
86
85
  expect(runner.errors.size).to eq(0)
87
86
  end
88
87
 
89
- it 'should not remove unused method with command' do
88
+ it 'does not remove unused method with command' do
90
89
  content = <<-EOF
91
90
  class Post < ActiveRecord::Base
92
91
  def fetch
@@ -110,7 +109,7 @@ module RailsBestPractices
110
109
  expect(runner.errors.size).to eq(0)
111
110
  end
112
111
 
113
- it 'should not remove unused method with call' do
112
+ it 'does not remove unused method with call' do
114
113
  content = <<-EOF
115
114
  class Post < ActiveRecord::Base
116
115
  def conditions
@@ -134,7 +133,7 @@ module RailsBestPractices
134
133
  expect(runner.errors.size).to eq(0)
135
134
  end
136
135
 
137
- it 'should not remove unused method with message' do
136
+ it 'does not remove unused method with message' do
138
137
  content = <<-EOF
139
138
  class Post < ActiveRecord::Base
140
139
  def save
@@ -160,7 +159,7 @@ module RailsBestPractices
160
159
  expect(runner.errors.size).to eq(0)
161
160
  end
162
161
 
163
- it 'should not remove unused method with validation condition' do
162
+ it 'does not remove unused method with validation condition' do
164
163
  content = <<-EOF
165
164
  class Post < ActiveRecord::Base
166
165
  validates_uniqueness_of :login, if: :email_blank?
@@ -174,7 +173,7 @@ module RailsBestPractices
174
173
  expect(runner.errors.size).to eq(0)
175
174
  end
176
175
 
177
- it 'should not remove unused method with aasm' do
176
+ it 'does not remove unused method with aasm' do
178
177
  content = <<-EOF
179
178
  class Post < ActiveRecord::Base
180
179
  aasm_state :accepted, enter: [:update_datetime]
@@ -188,7 +187,7 @@ module RailsBestPractices
188
187
  expect(runner.errors.size).to eq(0)
189
188
  end
190
189
 
191
- it 'should not remove unused method with initialize' do
190
+ it 'does not remove unused method with initialize' do
192
191
  content = <<-EOF
193
192
  class Post < ActiveRecord::Base
194
193
  private
@@ -203,7 +202,7 @@ module RailsBestPractices
203
202
  end
204
203
 
205
204
  context 'public' do
206
- it 'should remove unused methods' do
205
+ it 'removes unused methods' do
207
206
  content = <<-EOF
208
207
  class Post < ActiveRecord::Base
209
208
  def fetch; end
@@ -215,7 +214,7 @@ module RailsBestPractices
215
214
  expect(runner.errors[0].to_s).to eq('app/models/post.rb:2 - remove unused methods (Post#fetch)')
216
215
  end
217
216
 
218
- it 'should not remove unused methods' do
217
+ it 'does not remove unused methods' do
219
218
  content = <<-EOF
220
219
  class Post < ActiveRecord::Base
221
220
  def fetch; end
@@ -234,7 +233,7 @@ module RailsBestPractices
234
233
  expect(runner.errors.size).to eq(0)
235
234
  end
236
235
 
237
- it 'should not remove unused methods for attribute assignment' do
236
+ it 'does not remove unused methods for attribute assignment' do
238
237
  content = <<-EOF
239
238
  class Post < ActiveRecord::Base
240
239
  def user=(user); end
@@ -246,7 +245,7 @@ module RailsBestPractices
246
245
  expect(runner.errors.size).to eq(0)
247
246
  end
248
247
 
249
- it 'should not remove unused methods for try' do
248
+ it 'does not remove unused methods for try' do
250
249
  content = <<-EOF
251
250
  class Post < ActiveRecord::Base
252
251
  def find(user_id); end
@@ -266,7 +265,7 @@ module RailsBestPractices
266
265
  expect(runner.errors.size).to eq(0)
267
266
  end
268
267
 
269
- it 'should not remove unused methods for send' do
268
+ it 'does not remove unused methods for send' do
270
269
  content = <<-EOF
271
270
  class Post < ActiveRecord::Base
272
271
  def find(user_id); end
@@ -286,7 +285,7 @@ module RailsBestPractices
286
285
  expect(runner.errors.size).to eq(0)
287
286
  end
288
287
 
289
- it 'should remove unused methods for send string_embexpre' do
288
+ it 'removes unused methods for send string_embexpre' do
290
289
  content = <<-EOF
291
290
  class Post < ActiveRecord::Base
292
291
  def find_first; end
@@ -307,7 +306,7 @@ module RailsBestPractices
307
306
  expect(runner.errors.size).to eq(1)
308
307
  end
309
308
 
310
- it 'should remove unused methods for send variable' do
309
+ it 'removes unused methods for send variable' do
311
310
  content = <<-EOF
312
311
  class Post < ActiveRecord::Base
313
312
  def first; end
@@ -330,7 +329,7 @@ module RailsBestPractices
330
329
  end
331
330
 
332
331
  context 'protected' do
333
- it 'should not remove unused methods' do
332
+ it 'does not remove unused methods' do
334
333
  content = <<-EOF
335
334
  class Post < ActiveRecord::Base
336
335
  protected
@@ -352,7 +351,7 @@ module RailsBestPractices
352
351
  expect(runner.errors[0].to_s).to eq('app/models/post.rb:3 - remove unused methods (Post#test)')
353
352
  end
354
353
 
355
- it 'should not remove unused methods' do
354
+ it 'does not remove unused methods' do
356
355
  post_content = <<-EOF
357
356
  class Post < ActiveRecord::Base
358
357
  protected
@@ -384,7 +383,7 @@ module RailsBestPractices
384
383
  end
385
384
 
386
385
  context 'named_scope' do
387
- it 'should not remove unused named_scope' do
386
+ it 'does not remove unused named_scope' do
388
387
  content = <<-EOF
389
388
  class Post < ActiveRecord::Base
390
389
  named_scope :active, conditions: {active: true}
@@ -404,7 +403,7 @@ module RailsBestPractices
404
403
  expect(runner.errors.size).to eq(0)
405
404
  end
406
405
 
407
- it 'should remove unused named_scope' do
406
+ it 'removes unused named_scope' do
408
407
  content = <<-EOF
409
408
  class Post < ActiveRecord::Base
410
409
  named_scope :active, conditions: {active: true}
@@ -419,7 +418,7 @@ module RailsBestPractices
419
418
  end
420
419
 
421
420
  context 'scope' do
422
- it 'should not remove unused scope' do
421
+ it 'does not remove unused scope' do
423
422
  content = <<-EOF
424
423
  class Post < ActiveRecord::Base
425
424
  scope :active, where(active: true)
@@ -439,7 +438,7 @@ module RailsBestPractices
439
438
  expect(runner.errors.size).to eq(0)
440
439
  end
441
440
 
442
- it 'should remove unused named_scope' do
441
+ it 'removes unused named_scope' do
443
442
  content = <<-EOF
444
443
  class Post < ActiveRecord::Base
445
444
  scope :active, where(active: true)
@@ -454,7 +453,7 @@ module RailsBestPractices
454
453
  end
455
454
 
456
455
  context 'alias' do
457
- it 'should not remove unused method with alias' do
456
+ it 'does not remove unused method with alias' do
458
457
  content = <<-EOF
459
458
  class Post < ActiveRecord::Base
460
459
  def old; end
@@ -475,7 +474,7 @@ module RailsBestPractices
475
474
  expect(runner.errors.size).to eq(0)
476
475
  end
477
476
 
478
- it 'should not remove unused method with symbol alias' do
477
+ it 'does not remove unused method with symbol alias' do
479
478
  content = <<-EOF
480
479
  class Post < ActiveRecord::Base
481
480
  def old; end
@@ -496,7 +495,7 @@ module RailsBestPractices
496
495
  expect(runner.errors.size).to eq(0)
497
496
  end
498
497
 
499
- it 'should not remove unused method with alias_method' do
498
+ it 'does not remove unused method with alias_method' do
500
499
  content = <<-EOF
501
500
  class Post < ActiveRecord::Base
502
501
  def old; end
@@ -517,7 +516,7 @@ module RailsBestPractices
517
516
  expect(runner.errors.size).to eq(0)
518
517
  end
519
518
 
520
- it 'should not remove unused method with alias_method_chain' do
519
+ it 'does not remove unused method with alias_method_chain' do
521
520
  content = <<-EOF
522
521
  class Post < ActiveRecord::Base
523
522
  def method_with_feature; end
@@ -540,7 +539,7 @@ module RailsBestPractices
540
539
  end
541
540
 
542
541
  context 'methods hash' do
543
- it 'should not remove unused method with methods hash' do
542
+ it 'does not remove unused method with methods hash' do
544
543
  content = <<-EOF
545
544
  class Post < ActiveRecord::Base
546
545
  def to_xml(options = {})
@@ -558,7 +557,7 @@ module RailsBestPractices
558
557
  end
559
558
 
560
559
  context 'callbacks' do
561
- it 'should not remove unused method' do
560
+ it 'does not remove unused method' do
562
561
  content = <<-EOF
563
562
  class Post < ActiveRecord::Base
564
563
  before_save :init_columns
@@ -577,7 +576,7 @@ module RailsBestPractices
577
576
  end
578
577
 
579
578
  context 'validates' do
580
- it 'should not remove unused method' do
579
+ it 'does not remove unused method' do
581
580
  content = <<-EOF
582
581
  class Post < ActiveRecord::Base
583
582
  validate :valid_birth_date
@@ -592,7 +591,7 @@ module RailsBestPractices
592
591
  expect(runner.errors.size).to eq(0)
593
592
  end
594
593
 
595
- it 'should not remove unused method for validate_on_create and validate_on_update' do
594
+ it 'does not remove unused method for validate_on_create and validate_on_update' do
596
595
  content = <<-EOF
597
596
  class Post < ActiveRecord::Base
598
597
  validate_on_create :valid_email
@@ -609,7 +608,7 @@ module RailsBestPractices
609
608
  expect(runner.errors.size).to eq(0)
610
609
  end
611
610
 
612
- it 'should not remove unused methods for to_param' do
611
+ it 'does not remove unused methods for to_param' do
613
612
  content = <<-EOF
614
613
  class Post < ActiveRecord::Base
615
614
  def to_param
@@ -625,7 +624,7 @@ module RailsBestPractices
625
624
  end
626
625
 
627
626
  context 'helper method' do
628
- it 'should not remove unused method for coommand_call collection_select' do
627
+ it 'does not remove unused method for coommand_call collection_select' do
629
628
  content = <<-EOF
630
629
  class Category < ActiveRecord::Base
631
630
  def indented_name; end
@@ -641,7 +640,7 @@ module RailsBestPractices
641
640
  expect(runner.errors.size).to eq(0)
642
641
  end
643
642
 
644
- it 'should not remove unused method for command collection_select' do
643
+ it 'does not remove unused method for command collection_select' do
645
644
  content = <<-EOF
646
645
  class Category < ActiveRecord::Base
647
646
  def indented_name; end
@@ -657,7 +656,7 @@ module RailsBestPractices
657
656
  expect(runner.errors.size).to eq(0)
658
657
  end
659
658
 
660
- it 'should not remove unused method for options_from_collection_for_select' do
659
+ it 'does not remove unused method for options_from_collection_for_select' do
661
660
  content = <<-EOF
662
661
  class Category < ActiveRecord::Base
663
662
  def indented_name; end
@@ -674,7 +673,7 @@ module RailsBestPractices
674
673
  end
675
674
  end
676
675
 
677
- it 'should not remove unused methods for rabl view' do
676
+ it 'does not remove unused methods for rabl view' do
678
677
  content = <<-EOF
679
678
  class User
680
679
  def first_name; end
@@ -693,7 +692,7 @@ module RailsBestPractices
693
692
  expect(runner.errors.size).to eq(0)
694
693
  end
695
694
 
696
- it 'should not skip :call as call message' do
695
+ it 'does not skip :call as call message' do
697
696
  content = <<-EOF
698
697
  module DateRange
699
698
  RANGES = lambda {
@@ -708,9 +707,12 @@ module RailsBestPractices
708
707
  runner.review('app/mixins/date_range.rb', content)
709
708
  end
710
709
 
711
- it 'should not check ignored files' do
712
- runner = Core::Runner.new(prepares: Prepares::ModelPrepare.new,
713
- reviews: RemoveUnusedMethodsInModelsReview.new(except_methods: [], ignored_files: /post/))
710
+ it 'does not check ignored files' do
711
+ runner =
712
+ Core::Runner.new(
713
+ prepares: Prepares::ModelPrepare.new,
714
+ reviews: described_class.new(except_methods: [], ignored_files: /post/)
715
+ )
714
716
 
715
717
  content = <<-EOF
716
718
  class Post < ActiveRecord::Base