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,10 +5,10 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe NotUseTimeAgoInWordsReview do
8
- let(:runner) { Core::Runner.new(reviews: NotUseTimeAgoInWordsReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
10
  describe 'time_ago_in_words' do
11
- it 'should not use in views' do
11
+ it 'does not use in views' do
12
12
  content = <<-EOF
13
13
  <%= time_ago_in_words(post.created_at) %>
14
14
  EOF
@@ -17,7 +17,7 @@ module RailsBestPractices
17
17
  expect(runner.errors[0].to_s).to eq('app/views/posts/show.html.erb:1 - not use time_ago_in_words')
18
18
  end
19
19
 
20
- it 'should not use in helpers' do
20
+ it 'does not use in helpers' do
21
21
  content = <<-EOF
22
22
  def timeago
23
23
  content_tag(:p, time_ago_in_words(post.created_at))
@@ -30,7 +30,7 @@ module RailsBestPractices
30
30
  end
31
31
 
32
32
  describe 'distance_of_time_in_words_to_now' do
33
- it 'should not use in views' do
33
+ it 'does not use in views' do
34
34
  content = <<-EOF
35
35
  <%= distance_of_time_in_words_to_now(post.created_at) %>
36
36
  EOF
@@ -39,7 +39,7 @@ module RailsBestPractices
39
39
  expect(runner.errors[0].to_s).to eq('app/views/posts/show.html.erb:1 - not use time_ago_in_words')
40
40
  end
41
41
 
42
- it 'should not use in helpers' do
42
+ it 'does not use in helpers' do
43
43
  content = <<-EOF
44
44
  def timeago
45
45
  content_tag(:p, distance_of_time_in_words_to_now(post.created_at))
@@ -51,8 +51,8 @@ module RailsBestPractices
51
51
  end
52
52
  end
53
53
 
54
- it 'should not check ignored files' do
55
- runner = Core::Runner.new(reviews: NotUseTimeAgoInWordsReview.new(ignored_files: /posts_helper/))
54
+ it 'does not check ignored files' do
55
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: /posts_helper/))
56
56
  content = <<-EOF
57
57
  def timeago
58
58
  content_tag(:p, time_ago_in_words(post.created_at))
@@ -5,9 +5,9 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe OveruseRouteCustomizationsReview do
8
- let(:runner) { Core::Runner.new(reviews: OveruseRouteCustomizationsReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
- it 'should overuse route customizations' do
10
+ it 'overuses route customizations' do
11
11
  content = <<-EOF
12
12
  RailsBestpracticesCom::Application.routes.draw do
13
13
  resources :posts do
@@ -28,7 +28,7 @@ module RailsBestPractices
28
28
  expect(runner.errors[0].to_s).to eq('config/routes.rb:2 - overuse route customizations (customize_count > 3)')
29
29
  end
30
30
 
31
- it 'should overuse route customizations another way' do
31
+ it 'overuses route customizations another way' do
32
32
  content = <<-EOF
33
33
  RailsBestpracticesCom::Application.routes.draw do
34
34
  resources :posts do
@@ -44,7 +44,7 @@ module RailsBestPractices
44
44
  expect(runner.errors[0].to_s).to eq('config/routes.rb:2 - overuse route customizations (customize_count > 3)')
45
45
  end
46
46
 
47
- it 'should not overuse route customizations without customization' do
47
+ it 'does not overuse route customizations without customization' do
48
48
  content = <<-EOF
49
49
  RailsBestpracticesCom::Application.routes.draw do
50
50
  resources :posts
@@ -54,7 +54,7 @@ module RailsBestPractices
54
54
  expect(runner.errors.size).to eq(0)
55
55
  end
56
56
 
57
- it 'should not overuse route customizations when customize route is only one' do
57
+ it 'does not overuse route customizations when customize route is only one' do
58
58
  content = <<-EOF
59
59
  RailsBestpracticesCom::Application.routes.draw do
60
60
  resources :posts do
@@ -68,8 +68,8 @@ module RailsBestPractices
68
68
  expect(runner.errors.size).to eq(0)
69
69
  end
70
70
 
71
- it 'should not check ignored files' do
72
- runner = Core::Runner.new(reviews: OveruseRouteCustomizationsReview.new(ignored_files: /config\/routes\.rb/))
71
+ it 'does not check ignored files' do
72
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: %r{config/routes\.rb}))
73
73
  content = <<-EOF
74
74
  ActionController::Routing::Routes.draw do |map|
75
75
  map.resources :posts, member: { comments: :get,
@@ -5,12 +5,14 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe ProtectMassAssignmentReview do
8
- let(:runner) {
9
- Core::Runner.new(prepares: [Prepares::GemfilePrepare.new, Prepares::ConfigPrepare.new, Prepares::InitializerPrepare.new],
10
- reviews: ProtectMassAssignmentReview.new)
11
- }
8
+ let(:runner) do
9
+ Core::Runner.new(
10
+ prepares: [Prepares::GemfilePrepare.new, Prepares::ConfigPrepare.new, Prepares::InitializerPrepare.new],
11
+ reviews: described_class.new
12
+ )
13
+ end
12
14
 
13
- it 'should protect mass assignment' do
15
+ it 'protects mass assignment' do
14
16
  content = <<-EOF
15
17
  class User < ActiveRecord::Base
16
18
  end
@@ -20,7 +22,7 @@ module RailsBestPractices
20
22
  expect(runner.errors[0].to_s).to eq('app/models/user.rb:1 - protect mass assignment')
21
23
  end
22
24
 
23
- it 'should not protect mass assignment if attr_accessible is used with arguments and user set config.active_record.whitelist_attributes' do
25
+ it 'does not protect mass assignment if attr_accessible is used with arguments and user set config.active_record.whitelist_attributes' do
24
26
  content = <<-EOF
25
27
  module RailsBestPracticesCom
26
28
  class Application < Rails::Application
@@ -38,7 +40,7 @@ module RailsBestPractices
38
40
  expect(runner.errors.size).to eq(0)
39
41
  end
40
42
 
41
- it 'should not protect mass assignment if attr_accessible is used without arguments and user set config.active_record.whitelist_attributes' do
43
+ it 'does not protect mass assignment if attr_accessible is used without arguments and user set config.active_record.whitelist_attributes' do
42
44
  content = <<-EOF
43
45
  module RailsBestPracticesCom
44
46
  class Application < Rails::Application
@@ -56,7 +58,7 @@ module RailsBestPractices
56
58
  expect(runner.errors.size).to eq(0)
57
59
  end
58
60
 
59
- it 'should not protect mass assignment with attr_protected if user set config.active_record.whitelist_attributes' do
61
+ it 'does not protect mass assignment with attr_protected if user set config.active_record.whitelist_attributes' do
60
62
  content = <<-EOF
61
63
  module RailsBestPracticesCom
62
64
  class Application < Rails::Application
@@ -74,7 +76,7 @@ module RailsBestPractices
74
76
  expect(runner.errors.size).to eq(0)
75
77
  end
76
78
 
77
- it 'should not protect mass assignment if using devise' do
79
+ it 'does not protect mass assignment if using devise' do
78
80
  content = <<-EOF
79
81
  class User < ActiveRecord::Base
80
82
  devise :database_authenticatable, :registerable, :confirmable, :recoverable, stretches: 20
@@ -84,7 +86,7 @@ module RailsBestPractices
84
86
  expect(runner.errors.size).to eq(0)
85
87
  end
86
88
 
87
- it 'should not protect mass assignment if using authlogic with configuration' do
89
+ it 'does not protect mass assignment if using authlogic with configuration' do
88
90
  content = <<-EOF
89
91
  class User < ActiveRecord::Base
90
92
  acts_as_authentic do |c|
@@ -96,7 +98,7 @@ module RailsBestPractices
96
98
  expect(runner.errors.size).to eq(0)
97
99
  end
98
100
 
99
- it 'should not protect mass assignment if using authlogic without configuration' do
101
+ it 'does not protect mass assignment if using authlogic without configuration' do
100
102
  content = <<-EOF
101
103
  class User < ActiveRecord::Base
102
104
  acts_as_authentic
@@ -106,7 +108,7 @@ module RailsBestPractices
106
108
  expect(runner.errors.size).to eq(0)
107
109
  end
108
110
 
109
- it 'should not protect mass assignment if checking non ActiveRecord::Base inherited model' do
111
+ it 'does not protect mass assignment if checking non ActiveRecord::Base inherited model' do
110
112
  content = <<-EOF
111
113
  class User < Person
112
114
  end
@@ -116,7 +118,7 @@ module RailsBestPractices
116
118
  end
117
119
 
118
120
  context 'strong_parameters' do
119
- it 'should not protect mass assignment for strong_parameters' do
121
+ it 'does not protect mass assignment for strong_parameters' do
120
122
  content = <<-EOF
121
123
  class User < ActiveRecord::Base
122
124
  include ActiveModel::ForbiddenAttributesProtection
@@ -126,7 +128,7 @@ module RailsBestPractices
126
128
  expect(runner.errors.size).to eq(0)
127
129
  end
128
130
 
129
- it 'should not protect mass assignment for strong_parameters' do
131
+ it 'does not protect mass assignment for strong_parameters' do
130
132
  content = <<-EOF
131
133
  class AR
132
134
  ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection)
@@ -143,7 +145,7 @@ module RailsBestPractices
143
145
  end
144
146
 
145
147
  context 'activerecord 4' do
146
- it 'should not protect mass assignment for activerecord 4' do
148
+ it 'does not protect mass assignment for activerecord 4' do
147
149
  content = <<-EOF
148
150
  GEM
149
151
  remote: https://rubygems.org
@@ -159,7 +161,7 @@ module RailsBestPractices
159
161
  expect(runner.errors.size).to eq(0)
160
162
  end
161
163
 
162
- it 'should protect mass assignment for activerecord 3' do
164
+ it 'protects mass assignment for activerecord 3' do
163
165
  content = <<-EOF
164
166
  GEM
165
167
  remote: https://rubygems.org
@@ -176,9 +178,12 @@ module RailsBestPractices
176
178
  end
177
179
  end
178
180
 
179
- it 'should not check ignored files' do
180
- runner = Core::Runner.new(prepares: [Prepares::GemfilePrepare.new, Prepares::ConfigPrepare.new, Prepares::InitializerPrepare.new],
181
- reviews: ProtectMassAssignmentReview.new(ignored_files: /app\/models\/user\.rb/))
181
+ it 'does not check ignored files' do
182
+ runner =
183
+ Core::Runner.new(
184
+ prepares: [Prepares::GemfilePrepare.new, Prepares::ConfigPrepare.new, Prepares::InitializerPrepare.new],
185
+ reviews: described_class.new(ignored_files: %r{app/models/user\.rb})
186
+ )
182
187
  content = <<-EOF
183
188
  class User < ActiveRecord::Base
184
189
  end
@@ -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