rails_best_practices 1.19.5 → 1.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGELOG.md +10 -16
  4. data/Gemfile +2 -1
  5. data/Gemfile.lock +51 -45
  6. data/Guardfile +2 -0
  7. data/Rakefile +2 -17
  8. data/assets/result.html.erb +2 -0
  9. data/lib/rails_best_practices/analyzer.rb +59 -48
  10. data/lib/rails_best_practices/core/check.rb +39 -32
  11. data/lib/rails_best_practices/core/checks_loader.rb +8 -6
  12. data/lib/rails_best_practices/core/configs.rb +1 -2
  13. data/lib/rails_best_practices/core/controllers.rb +1 -2
  14. data/lib/rails_best_practices/core/error.rb +1 -1
  15. data/lib/rails_best_practices/core/helpers.rb +1 -2
  16. data/lib/rails_best_practices/core/mailers.rb +1 -2
  17. data/lib/rails_best_practices/core/methods.rb +21 -16
  18. data/lib/rails_best_practices/core/model_associations.rb +9 -4
  19. data/lib/rails_best_practices/core/models.rb +1 -2
  20. data/lib/rails_best_practices/core/modules.rb +1 -1
  21. data/lib/rails_best_practices/core/routes.rb +2 -2
  22. data/lib/rails_best_practices/core/runner.rb +49 -34
  23. data/lib/rails_best_practices/inline_disables/comment_ripper.rb +19 -0
  24. data/lib/rails_best_practices/inline_disables/inline_disable.rb +50 -0
  25. data/lib/rails_best_practices/inline_disables.rb +3 -0
  26. data/lib/rails_best_practices/lexicals/long_line_check.rb +7 -3
  27. data/lib/rails_best_practices/option_parser.rb +22 -6
  28. data/lib/rails_best_practices/prepares/controller_prepare.rb +15 -3
  29. data/lib/rails_best_practices/prepares/gemfile_prepare.rb +1 -1
  30. data/lib/rails_best_practices/prepares/helper_prepare.rb +6 -1
  31. data/lib/rails_best_practices/prepares/initializer_prepare.rb +2 -2
  32. data/lib/rails_best_practices/prepares/mailer_prepare.rb +1 -0
  33. data/lib/rails_best_practices/prepares/model_prepare.rb +52 -12
  34. data/lib/rails_best_practices/prepares/route_prepare.rb +16 -10
  35. data/lib/rails_best_practices/prepares.rb +1 -1
  36. data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +15 -13
  37. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +36 -31
  38. data/lib/rails_best_practices/reviews/check_destroy_return_value_review.rb +14 -5
  39. data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +19 -8
  40. data/lib/rails_best_practices/reviews/hash_syntax_review.rb +5 -5
  41. data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +4 -4
  42. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +7 -8
  43. data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +6 -6
  44. data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +1 -1
  45. data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +6 -7
  46. data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +7 -8
  47. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +12 -10
  48. data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +1 -2
  49. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +5 -5
  50. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +5 -2
  51. data/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +6 -3
  52. data/lib/rails_best_practices/reviews/remove_unused_methods_in_helpers_review.rb +6 -4
  53. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +29 -9
  54. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +3 -3
  55. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +17 -15
  56. data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +1 -2
  57. data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +3 -3
  58. data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -1
  59. data/lib/rails_best_practices/reviews/use_model_association_review.rb +6 -6
  60. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +9 -8
  61. data/lib/rails_best_practices/reviews/use_observer_review.rb +9 -9
  62. data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +26 -26
  63. data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +8 -7
  64. data/lib/rails_best_practices/reviews/use_scope_access_review.rb +17 -15
  65. data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +2 -1
  66. data/lib/rails_best_practices/version.rb +1 -1
  67. data/lib/rails_best_practices.rb +2 -2
  68. data/rails_best_practices.gemspec +35 -36
  69. data/spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb +1 -2
  70. data/spec/rails_best_practices/analyzer_spec.rb +73 -42
  71. data/spec/rails_best_practices/core/check_spec.rb +5 -5
  72. data/spec/rails_best_practices/core/checks_loader_spec.rb +3 -3
  73. data/spec/rails_best_practices/core/configs_spec.rb +1 -1
  74. data/spec/rails_best_practices/core/controllers_spec.rb +1 -1
  75. data/spec/rails_best_practices/core/error_spec.rb +21 -21
  76. data/spec/rails_best_practices/core/except_methods_spec.rb +7 -7
  77. data/spec/rails_best_practices/core/gems_spec.rb +4 -4
  78. data/spec/rails_best_practices/core/helpers_spec.rb +1 -1
  79. data/spec/rails_best_practices/core/klasses_spec.rb +3 -3
  80. data/spec/rails_best_practices/core/mailers_spec.rb +1 -1
  81. data/spec/rails_best_practices/core/methods_spec.rb +6 -6
  82. data/spec/rails_best_practices/core/model_associations_spec.rb +10 -6
  83. data/spec/rails_best_practices/core/model_attributes_spec.rb +4 -4
  84. data/spec/rails_best_practices/core/models_spec.rb +1 -1
  85. data/spec/rails_best_practices/core/modules_spec.rb +5 -5
  86. data/spec/rails_best_practices/core/routes_spec.rb +5 -5
  87. data/spec/rails_best_practices/core/runner_spec.rb +9 -7
  88. data/spec/rails_best_practices/core_ext/erubis_spec.rb +10 -10
  89. data/spec/rails_best_practices/inline_disables/inline_disable_spec.rb +62 -0
  90. data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +11 -10
  91. data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +6 -6
  92. data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +6 -6
  93. data/spec/rails_best_practices/prepares/config_prepare_spec.rb +2 -2
  94. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +18 -10
  95. data/spec/rails_best_practices/prepares/gemfile_prepare_spec.rb +2 -2
  96. data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +3 -3
  97. data/spec/rails_best_practices/prepares/initializer_prepare_spec.rb +3 -3
  98. data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +2 -2
  99. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +79 -43
  100. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +138 -77
  101. data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +2 -2
  102. data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +18 -12
  103. data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +28 -22
  104. data/spec/rails_best_practices/reviews/check_destroy_return_value_review_spec.rb +15 -13
  105. data/spec/rails_best_practices/reviews/check_save_return_value_review_spec.rb +31 -21
  106. data/spec/rails_best_practices/reviews/default_scope_is_evil_review_spec.rb +6 -6
  107. data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +5 -5
  108. data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +9 -9
  109. data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +7 -7
  110. data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +9 -9
  111. data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +21 -14
  112. data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +6 -6
  113. data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +11 -6
  114. data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +26 -16
  115. data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +7 -7
  116. data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +9 -7
  117. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +9 -9
  118. data/spec/rails_best_practices/reviews/not_rescue_exception_review_spec.rb +9 -9
  119. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +5 -5
  120. data/spec/rails_best_practices/reviews/not_use_time_ago_in_words_review_spec.rb +7 -7
  121. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +7 -7
  122. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +24 -19
  123. data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +6 -6
  124. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +44 -31
  125. data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +17 -12
  126. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +46 -44
  127. data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +10 -8
  128. data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +16 -10
  129. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +54 -31
  130. data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +9 -9
  131. data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +13 -13
  132. data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +11 -9
  133. data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +7 -7
  134. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +21 -17
  135. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +6 -6
  136. data/spec/rails_best_practices/reviews/use_parentheses_in_method_def_review_spec.rb +9 -7
  137. data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +31 -24
  138. data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +15 -11
  139. data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +14 -14
  140. data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +10 -8
  141. metadata +16 -11
@@ -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