rails_best_practices 1.20.0 → 1.22.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 (140) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/Gemfile +2 -1
  4. data/Gemfile.lock +49 -43
  5. data/Guardfile +2 -0
  6. data/Rakefile +2 -0
  7. data/assets/result.html.erb +2 -0
  8. data/lib/rails_best_practices/analyzer.rb +59 -48
  9. data/lib/rails_best_practices/core/check.rb +39 -32
  10. data/lib/rails_best_practices/core/checks_loader.rb +8 -6
  11. data/lib/rails_best_practices/core/configs.rb +1 -2
  12. data/lib/rails_best_practices/core/controllers.rb +1 -2
  13. data/lib/rails_best_practices/core/error.rb +1 -1
  14. data/lib/rails_best_practices/core/helpers.rb +1 -2
  15. data/lib/rails_best_practices/core/mailers.rb +1 -2
  16. data/lib/rails_best_practices/core/methods.rb +21 -16
  17. data/lib/rails_best_practices/core/model_associations.rb +9 -4
  18. data/lib/rails_best_practices/core/models.rb +1 -2
  19. data/lib/rails_best_practices/core/modules.rb +1 -1
  20. data/lib/rails_best_practices/core/routes.rb +2 -2
  21. data/lib/rails_best_practices/core/runner.rb +49 -34
  22. data/lib/rails_best_practices/inline_disables/comment_ripper.rb +19 -0
  23. data/lib/rails_best_practices/inline_disables/inline_disable.rb +50 -0
  24. data/lib/rails_best_practices/inline_disables.rb +3 -0
  25. data/lib/rails_best_practices/lexicals/long_line_check.rb +7 -3
  26. data/lib/rails_best_practices/option_parser.rb +22 -6
  27. data/lib/rails_best_practices/prepares/controller_prepare.rb +15 -3
  28. data/lib/rails_best_practices/prepares/gemfile_prepare.rb +1 -1
  29. data/lib/rails_best_practices/prepares/helper_prepare.rb +6 -1
  30. data/lib/rails_best_practices/prepares/initializer_prepare.rb +2 -2
  31. data/lib/rails_best_practices/prepares/mailer_prepare.rb +1 -0
  32. data/lib/rails_best_practices/prepares/model_prepare.rb +52 -12
  33. data/lib/rails_best_practices/prepares/route_prepare.rb +16 -10
  34. data/lib/rails_best_practices/prepares.rb +1 -1
  35. data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +15 -13
  36. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +34 -29
  37. data/lib/rails_best_practices/reviews/check_destroy_return_value_review.rb +14 -5
  38. data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +19 -8
  39. data/lib/rails_best_practices/reviews/hash_syntax_review.rb +5 -5
  40. data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +4 -4
  41. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +7 -8
  42. data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +6 -6
  43. data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +1 -1
  44. data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +6 -7
  45. data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +7 -8
  46. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +12 -10
  47. data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +1 -2
  48. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +5 -5
  49. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +5 -2
  50. data/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +6 -3
  51. data/lib/rails_best_practices/reviews/remove_unused_methods_in_helpers_review.rb +6 -4
  52. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +29 -9
  53. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +3 -3
  54. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +17 -15
  55. data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +1 -2
  56. data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +3 -3
  57. data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -1
  58. data/lib/rails_best_practices/reviews/use_model_association_review.rb +5 -5
  59. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +9 -8
  60. data/lib/rails_best_practices/reviews/use_observer_review.rb +9 -9
  61. data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +26 -26
  62. data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +8 -7
  63. data/lib/rails_best_practices/reviews/use_scope_access_review.rb +17 -15
  64. data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +2 -1
  65. data/lib/rails_best_practices/version.rb +1 -1
  66. data/lib/rails_best_practices.rb +2 -2
  67. data/rails_best_practices.gemspec +39 -38
  68. data/spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb +1 -2
  69. data/spec/rails_best_practices/analyzer_spec.rb +73 -42
  70. data/spec/rails_best_practices/core/check_spec.rb +5 -5
  71. data/spec/rails_best_practices/core/checks_loader_spec.rb +3 -3
  72. data/spec/rails_best_practices/core/configs_spec.rb +1 -1
  73. data/spec/rails_best_practices/core/controllers_spec.rb +1 -1
  74. data/spec/rails_best_practices/core/error_spec.rb +21 -21
  75. data/spec/rails_best_practices/core/except_methods_spec.rb +7 -7
  76. data/spec/rails_best_practices/core/gems_spec.rb +4 -4
  77. data/spec/rails_best_practices/core/helpers_spec.rb +1 -1
  78. data/spec/rails_best_practices/core/klasses_spec.rb +3 -3
  79. data/spec/rails_best_practices/core/mailers_spec.rb +1 -1
  80. data/spec/rails_best_practices/core/methods_spec.rb +6 -6
  81. data/spec/rails_best_practices/core/model_associations_spec.rb +10 -6
  82. data/spec/rails_best_practices/core/model_attributes_spec.rb +4 -4
  83. data/spec/rails_best_practices/core/models_spec.rb +1 -1
  84. data/spec/rails_best_practices/core/modules_spec.rb +5 -5
  85. data/spec/rails_best_practices/core/routes_spec.rb +5 -5
  86. data/spec/rails_best_practices/core/runner_spec.rb +9 -7
  87. data/spec/rails_best_practices/core_ext/erubis_spec.rb +10 -10
  88. data/spec/rails_best_practices/inline_disables/inline_disable_spec.rb +62 -0
  89. data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +11 -10
  90. data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +6 -6
  91. data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +6 -6
  92. data/spec/rails_best_practices/prepares/config_prepare_spec.rb +2 -2
  93. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +18 -10
  94. data/spec/rails_best_practices/prepares/gemfile_prepare_spec.rb +2 -2
  95. data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +3 -3
  96. data/spec/rails_best_practices/prepares/initializer_prepare_spec.rb +3 -3
  97. data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +2 -2
  98. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +79 -43
  99. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +138 -77
  100. data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +2 -2
  101. data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +18 -12
  102. data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +28 -22
  103. data/spec/rails_best_practices/reviews/check_destroy_return_value_review_spec.rb +15 -13
  104. data/spec/rails_best_practices/reviews/check_save_return_value_review_spec.rb +31 -21
  105. data/spec/rails_best_practices/reviews/default_scope_is_evil_review_spec.rb +6 -6
  106. data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +5 -5
  107. data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +9 -9
  108. data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +7 -7
  109. data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +9 -9
  110. data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +21 -14
  111. data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +6 -6
  112. data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +11 -6
  113. data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +26 -16
  114. data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +7 -7
  115. data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +9 -7
  116. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +9 -9
  117. data/spec/rails_best_practices/reviews/not_rescue_exception_review_spec.rb +9 -9
  118. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +5 -5
  119. data/spec/rails_best_practices/reviews/not_use_time_ago_in_words_review_spec.rb +7 -7
  120. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +7 -7
  121. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +24 -19
  122. data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +6 -6
  123. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +44 -31
  124. data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +17 -12
  125. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +46 -44
  126. data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +10 -8
  127. data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +16 -10
  128. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +54 -31
  129. data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +9 -9
  130. data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +13 -13
  131. data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +11 -9
  132. data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +7 -7
  133. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +21 -17
  134. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +6 -6
  135. data/spec/rails_best_practices/reviews/use_parentheses_in_method_def_review_spec.rb +9 -7
  136. data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +31 -24
  137. data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +15 -11
  138. data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +14 -14
  139. data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +10 -8
  140. metadata +12 -7
@@ -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
@@ -5,9 +5,9 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe ReplaceComplexCreationWithFactoryMethodReview do
8
- let(:runner) { Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
- it 'should replace complex creation with factory method' do
10
+ it 'replaces complex creation with factory method' do
11
11
  content = <<-EOF
12
12
  class InvoiceController < ApplicationController
13
13
  def create
@@ -28,10 +28,12 @@ module RailsBestPractices
28
28
  EOF
29
29
  runner.review('app/controllers/invoices_controller.rb', content)
30
30
  expect(runner.errors.size).to eq(1)
31
- expect(runner.errors[0].to_s).to eq('app/controllers/invoices_controller.rb:2 - replace complex creation with factory method (@invoice attribute_assignment_count > 2)')
31
+ expect(runner.errors[0].to_s).to eq(
32
+ 'app/controllers/invoices_controller.rb:2 - replace complex creation with factory method (@invoice attribute_assignment_count > 2)'
33
+ )
32
34
  end
33
35
 
34
- it 'should not replace complex creation with factory method with simple creation' do
36
+ it 'does not replace complex creation with factory method with simple creation' do
35
37
  content = <<-EOF
36
38
  class InvoiceController < ApplicationController
37
39
  def create
@@ -46,7 +48,7 @@ module RailsBestPractices
46
48
  expect(runner.errors.size).to eq(0)
47
49
  end
48
50
 
49
- it 'should not replace complex creation with factory method when attrasgn_count is 5' do
51
+ it 'does not replace complex creation with factory method when attrasgn_count is 5' do
50
52
  content = <<-EOF
51
53
  class InvoiceController < ApplicationController
52
54
  def create
@@ -65,13 +67,13 @@ module RailsBestPractices
65
67
  end
66
68
  end
67
69
  EOF
68
- runner = Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new('attribute_assignment_count' => 5))
70
+ runner = Core::Runner.new(reviews: described_class.new('attribute_assignment_count' => 5))
69
71
  runner.review('app/controllers/invoices_controller.rb', content)
70
72
  expect(runner.errors.size).to eq(0)
71
73
  end
72
74
 
73
- it 'should not check ignored files' do
74
- runner = Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new(ignored_files: /invoices_controller/))
75
+ it 'does not check ignored files' do
76
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: /invoices_controller/))
75
77
  content = <<-EOF
76
78
  class InvoiceController < ApplicationController
77
79
  def create
@@ -5,36 +5,42 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe ReplaceInstanceVariableWithLocalVariableReview do
8
- let(:runner) { Core::Runner.new(reviews: ReplaceInstanceVariableWithLocalVariableReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
- it 'should replace instance variable with local varialbe' do
10
+ it 'replaces instance variable with local varialbe' do
11
11
  content = <<-EOF
12
12
  <%= @post.title %>
13
13
  EOF
14
14
  runner.review('app/views/posts/_post.html.erb', content)
15
15
  expect(runner.errors.size).to eq(1)
16
- expect(runner.errors[0].to_s).to eq('app/views/posts/_post.html.erb:1 - replace instance variable with local variable')
16
+ expect(runner.errors[0].to_s).to eq(
17
+ 'app/views/posts/_post.html.erb:1 - replace instance variable with local variable'
18
+ )
17
19
  end
18
20
 
19
- it 'should replace instance variable with local varialbe in haml file' do
21
+ it 'replaces instance variable with local varialbe in haml file' do
20
22
  content = <<~EOF
21
23
  = @post.title
22
24
  EOF
23
25
  runner.review('app/views/posts/_post.html.haml', content)
24
26
  expect(runner.errors.size).to eq(1)
25
- expect(runner.errors[0].to_s).to eq('app/views/posts/_post.html.haml:1 - replace instance variable with local variable')
27
+ expect(runner.errors[0].to_s).to eq(
28
+ 'app/views/posts/_post.html.haml:1 - replace instance variable with local variable'
29
+ )
26
30
  end
27
31
 
28
- it 'should replace instance variable with local varialbe in slim file' do
32
+ it 'replaces instance variable with local varialbe in slim file' do
29
33
  content = <<~EOF
30
34
  = @post.title
31
35
  EOF
32
36
  runner.review('app/views/posts/_post.html.slim', content)
33
37
  expect(runner.errors.size).to eq(1)
34
- expect(runner.errors[0].to_s).to eq('app/views/posts/_post.html.slim:1 - replace instance variable with local variable')
38
+ expect(runner.errors[0].to_s).to eq(
39
+ 'app/views/posts/_post.html.slim:1 - replace instance variable with local variable'
40
+ )
35
41
  end
36
42
 
37
- it 'should not replace instance variable with local varialbe' do
43
+ it 'does not replace instance variable with local varialbe' do
38
44
  content = <<-EOF
39
45
  <%= post.title %>
40
46
  EOF
@@ -42,8 +48,8 @@ module RailsBestPractices
42
48
  expect(runner.errors.size).to eq(0)
43
49
  end
44
50
 
45
- it 'should not check ignored files' do
46
- runner = Core::Runner.new(reviews: ReplaceInstanceVariableWithLocalVariableReview.new(ignored_files: /views\/posts/))
51
+ it 'does not check ignored files' do
52
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: %r{views/posts}))
47
53
  content = <<-EOF
48
54
  <%= @post.title %>
49
55
  EOF