rails_best_practices 1.20.0 → 1.20.1

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 (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