rails_best_practices 1.19.1 → 1.19.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/Guardfile +1 -1
- data/README.md +1 -0
- data/Rakefile +2 -2
- data/bin/rails_best_practices +2 -1
- data/lib/rails_best_practices.rb +2 -1
- data/lib/rails_best_practices/analyzer.rb +13 -12
- data/lib/rails_best_practices/colorize.rb +2 -0
- data/lib/rails_best_practices/command.rb +6 -5
- data/lib/rails_best_practices/core.rb +2 -1
- data/lib/rails_best_practices/core/check.rb +19 -17
- data/lib/rails_best_practices/core/checks_loader.rb +3 -2
- data/lib/rails_best_practices/core/configs.rb +2 -1
- data/lib/rails_best_practices/core/controllers.rb +4 -1
- data/lib/rails_best_practices/core/error.rb +3 -2
- data/lib/rails_best_practices/core/gems.rb +4 -3
- data/lib/rails_best_practices/core/helpers.rb +4 -1
- data/lib/rails_best_practices/core/klasses.rb +3 -2
- data/lib/rails_best_practices/core/mailers.rb +2 -1
- data/lib/rails_best_practices/core/methods.rb +9 -10
- data/lib/rails_best_practices/core/model_associations.rb +6 -5
- data/lib/rails_best_practices/core/model_attributes.rb +2 -1
- data/lib/rails_best_practices/core/models.rb +2 -1
- data/lib/rails_best_practices/core/modules.rb +2 -1
- data/lib/rails_best_practices/core/routes.rb +2 -1
- data/lib/rails_best_practices/core/runner.rb +7 -6
- data/lib/rails_best_practices/core_ext/erubis.rb +4 -5
- data/lib/rails_best_practices/lexicals.rb +2 -1
- data/lib/rails_best_practices/lexicals/long_line_check.rb +2 -1
- data/lib/rails_best_practices/lexicals/remove_tab_check.rb +2 -1
- data/lib/rails_best_practices/lexicals/remove_trailing_whitespace_check.rb +2 -1
- data/lib/rails_best_practices/prepares.rb +2 -1
- data/lib/rails_best_practices/prepares/config_prepare.rb +3 -2
- data/lib/rails_best_practices/prepares/controller_prepare.rb +9 -8
- data/lib/rails_best_practices/prepares/gemfile_prepare.rb +2 -1
- data/lib/rails_best_practices/prepares/helper_prepare.rb +4 -3
- data/lib/rails_best_practices/prepares/initializer_prepare.rb +2 -1
- data/lib/rails_best_practices/prepares/mailer_prepare.rb +3 -2
- data/lib/rails_best_practices/prepares/model_prepare.rb +12 -12
- data/lib/rails_best_practices/prepares/route_prepare.rb +8 -7
- data/lib/rails_best_practices/prepares/schema_prepare.rb +3 -2
- data/lib/rails_best_practices/reviews.rb +2 -1
- data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +7 -4
- data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +8 -7
- data/lib/rails_best_practices/reviews/check_destroy_return_value_review.rb +4 -3
- data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +5 -4
- data/lib/rails_best_practices/reviews/default_scope_is_evil_review.rb +2 -1
- data/lib/rails_best_practices/reviews/dry_bundler_in_capistrano_review.rb +2 -1
- data/lib/rails_best_practices/reviews/hash_syntax_review.rb +2 -1
- data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +3 -2
- data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +3 -2
- data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +3 -2
- data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +3 -2
- data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +2 -1
- data/lib/rails_best_practices/reviews/move_code_into_model_review.rb +3 -2
- data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +3 -2
- data/lib/rails_best_practices/reviews/move_model_logic_into_model_review.rb +3 -2
- data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +5 -4
- data/lib/rails_best_practices/reviews/not_rescue_exception_review.rb +2 -1
- data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +2 -1
- data/lib/rails_best_practices/reviews/not_use_time_ago_in_words_review.rb +2 -1
- data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +3 -2
- data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +4 -3
- data/lib/rails_best_practices/reviews/remove_empty_helpers_review.rb +2 -1
- data/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +11 -10
- data/lib/rails_best_practices/reviews/remove_unused_methods_in_helpers_review.rb +4 -3
- data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +6 -5
- data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +2 -2
- data/lib/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review.rb +2 -1
- data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +8 -8
- data/lib/rails_best_practices/reviews/review.rb +4 -3
- data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +2 -1
- data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +3 -2
- data/lib/rails_best_practices/reviews/use_before_filter_review.rb +5 -4
- data/lib/rails_best_practices/reviews/use_model_association_review.rb +2 -2
- data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +5 -5
- data/lib/rails_best_practices/reviews/use_observer_review.rb +2 -1
- data/lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb +2 -1
- data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +4 -3
- data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +4 -3
- data/lib/rails_best_practices/reviews/use_scope_access_review.rb +2 -1
- data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +2 -1
- data/lib/rails_best_practices/version.rb +3 -2
- data/rails_best_practices.gemspec +11 -10
- data/spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb +3 -2
- data/spec/rails_best_practices/analyzer_spec.rb +6 -8
- data/spec/rails_best_practices/core/check_spec.rb +2 -0
- data/spec/rails_best_practices/core/checks_loader_spec.rb +2 -0
- data/spec/rails_best_practices/core/configs_spec.rb +2 -0
- data/spec/rails_best_practices/core/controllers_spec.rb +2 -0
- data/spec/rails_best_practices/core/error_spec.rb +2 -0
- data/spec/rails_best_practices/core/except_methods_spec.rb +2 -0
- data/spec/rails_best_practices/core/gems_spec.rb +2 -0
- data/spec/rails_best_practices/core/helpers_spec.rb +2 -0
- data/spec/rails_best_practices/core/klasses_spec.rb +2 -0
- data/spec/rails_best_practices/core/mailers_spec.rb +2 -0
- data/spec/rails_best_practices/core/methods_spec.rb +6 -4
- data/spec/rails_best_practices/core/model_associations_spec.rb +4 -2
- data/spec/rails_best_practices/core/model_attributes_spec.rb +2 -0
- data/spec/rails_best_practices/core/models_spec.rb +2 -0
- data/spec/rails_best_practices/core/modules_spec.rb +2 -0
- data/spec/rails_best_practices/core/routes_spec.rb +4 -2
- data/spec/rails_best_practices/core/runner_spec.rb +2 -0
- data/spec/rails_best_practices/core_ext/erubis_spec.rb +3 -1
- data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +8 -7
- data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +8 -6
- data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +9 -7
- data/spec/rails_best_practices/prepares/config_prepare_spec.rb +3 -1
- data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +23 -21
- data/spec/rails_best_practices/prepares/gemfile_prepare_spec.rb +3 -1
- data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +7 -5
- data/spec/rails_best_practices/prepares/initializer_prepare_spec.rb +4 -2
- data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +3 -1
- data/spec/rails_best_practices/prepares/model_prepare_spec.rb +56 -54
- data/spec/rails_best_practices/prepares/route_prepare_spec.rb +39 -37
- data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +3 -1
- data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +7 -5
- data/spec/rails_best_practices/reviews/check_destroy_return_value_review_spec.rb +12 -10
- data/spec/rails_best_practices/reviews/check_save_return_value_review_spec.rb +20 -18
- data/spec/rails_best_practices/reviews/default_scope_is_evil_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +9 -7
- data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +11 -9
- data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/not_rescue_exception_review_spec.rb +9 -7
- data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/not_use_time_ago_in_words_review_spec.rb +7 -5
- data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +21 -19
- data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +6 -4
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +33 -31
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +13 -11
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +65 -63
- data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +24 -22
- data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +9 -7
- data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +13 -11
- data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +3 -1
- data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +7 -5
- data/spec/rails_best_practices/reviews/use_parentheses_in_method_def_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +3 -1
- data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +9 -7
- data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +2 -0
- data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- metadata +26 -26
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
module RailsBestPractices
|
@@ -7,7 +9,7 @@ module RailsBestPractices
|
|
7
9
|
reviews: ProtectMassAssignmentReview.new) }
|
8
10
|
|
9
11
|
it 'should protect mass assignment' do
|
10
|
-
content
|
12
|
+
content = <<-EOF
|
11
13
|
class User < ActiveRecord::Base
|
12
14
|
end
|
13
15
|
EOF
|
@@ -17,7 +19,7 @@ module RailsBestPractices
|
|
17
19
|
end
|
18
20
|
|
19
21
|
it 'should not protect mass assignment if attr_accessible is used with arguments and user set config.active_record.whitelist_attributes' do
|
20
|
-
content
|
22
|
+
content = <<-EOF
|
21
23
|
module RailsBestPracticesCom
|
22
24
|
class Application < Rails::Application
|
23
25
|
config.active_record.whitelist_attributes = true
|
@@ -25,7 +27,7 @@ module RailsBestPractices
|
|
25
27
|
end
|
26
28
|
EOF
|
27
29
|
runner.prepare('config/application.rb', content)
|
28
|
-
content
|
30
|
+
content = <<-EOF
|
29
31
|
class User < ActiveRecord::Base
|
30
32
|
attr_accessible :email, :password, :password_confirmation
|
31
33
|
end
|
@@ -35,7 +37,7 @@ module RailsBestPractices
|
|
35
37
|
end
|
36
38
|
|
37
39
|
it 'should not protect mass assignment if attr_accessible is used without arguments and user set config.active_record.whitelist_attributes' do
|
38
|
-
content
|
40
|
+
content = <<-EOF
|
39
41
|
module RailsBestPracticesCom
|
40
42
|
class Application < Rails::Application
|
41
43
|
config.active_record.whitelist_attributes = true
|
@@ -43,7 +45,7 @@ module RailsBestPractices
|
|
43
45
|
end
|
44
46
|
EOF
|
45
47
|
runner.prepare('config/application.rb', content)
|
46
|
-
content
|
48
|
+
content = <<-EOF
|
47
49
|
class User < ActiveRecord::Base
|
48
50
|
attr_accessible
|
49
51
|
end
|
@@ -53,7 +55,7 @@ module RailsBestPractices
|
|
53
55
|
end
|
54
56
|
|
55
57
|
it 'should not protect mass assignment with attr_protected if user set config.active_record.whitelist_attributes' do
|
56
|
-
content
|
58
|
+
content = <<-EOF
|
57
59
|
module RailsBestPracticesCom
|
58
60
|
class Application < Rails::Application
|
59
61
|
config.active_record.whitelist_attributes = true
|
@@ -61,7 +63,7 @@ module RailsBestPractices
|
|
61
63
|
end
|
62
64
|
EOF
|
63
65
|
runner.prepare('config/application.rb', content)
|
64
|
-
content
|
66
|
+
content = <<-EOF
|
65
67
|
class User < ActiveRecord::Base
|
66
68
|
attr_protected :role
|
67
69
|
end
|
@@ -71,7 +73,7 @@ module RailsBestPractices
|
|
71
73
|
end
|
72
74
|
|
73
75
|
it 'should not protect mass assignment if using devise' do
|
74
|
-
content
|
76
|
+
content = <<-EOF
|
75
77
|
class User < ActiveRecord::Base
|
76
78
|
devise :database_authenticatable, :registerable, :confirmable, :recoverable, stretches: 20
|
77
79
|
end
|
@@ -81,7 +83,7 @@ module RailsBestPractices
|
|
81
83
|
end
|
82
84
|
|
83
85
|
it 'should not protect mass assignment if using authlogic with configuration' do
|
84
|
-
content
|
86
|
+
content = <<-EOF
|
85
87
|
class User < ActiveRecord::Base
|
86
88
|
acts_as_authentic do |c|
|
87
89
|
c.my_config_option = my_value
|
@@ -93,7 +95,7 @@ module RailsBestPractices
|
|
93
95
|
end
|
94
96
|
|
95
97
|
it 'should not protect mass assignment if using authlogic without configuration' do
|
96
|
-
content
|
98
|
+
content = <<-EOF
|
97
99
|
class User < ActiveRecord::Base
|
98
100
|
acts_as_authentic
|
99
101
|
end
|
@@ -103,7 +105,7 @@ module RailsBestPractices
|
|
103
105
|
end
|
104
106
|
|
105
107
|
it 'should not protect mass assignment if checking non ActiveRecord::Base inherited model' do
|
106
|
-
content
|
108
|
+
content = <<-EOF
|
107
109
|
class User < Person
|
108
110
|
end
|
109
111
|
EOF
|
@@ -113,7 +115,7 @@ module RailsBestPractices
|
|
113
115
|
|
114
116
|
context 'strong_parameters' do
|
115
117
|
it 'should not protect mass assignment for strong_parameters' do
|
116
|
-
content
|
118
|
+
content = <<-EOF
|
117
119
|
class User < ActiveRecord::Base
|
118
120
|
include ActiveModel::ForbiddenAttributesProtection
|
119
121
|
end
|
@@ -123,13 +125,13 @@ module RailsBestPractices
|
|
123
125
|
end
|
124
126
|
|
125
127
|
it 'should not protect mass assignment for strong_parameters' do
|
126
|
-
content
|
128
|
+
content = <<-EOF
|
127
129
|
class AR
|
128
130
|
ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection)
|
129
131
|
end
|
130
132
|
EOF
|
131
133
|
runner.prepare('config/initializers/ar.rb', content)
|
132
|
-
content
|
134
|
+
content = <<-EOF
|
133
135
|
class User < ActiveRecord::Base
|
134
136
|
end
|
135
137
|
EOF
|
@@ -140,14 +142,14 @@ module RailsBestPractices
|
|
140
142
|
|
141
143
|
context 'activerecord 4' do
|
142
144
|
it 'should not protect mass assignment for activerecord 4' do
|
143
|
-
content
|
145
|
+
content = <<-EOF
|
144
146
|
GEM
|
145
147
|
remote: https://rubygems.org
|
146
148
|
specs:
|
147
149
|
activerecord (4.0.0)
|
148
150
|
EOF
|
149
151
|
runner.prepare('Gemfile.lock', content)
|
150
|
-
content
|
152
|
+
content = <<-EOF
|
151
153
|
class User < ActiveRecord::Base
|
152
154
|
end
|
153
155
|
EOF
|
@@ -156,14 +158,14 @@ module RailsBestPractices
|
|
156
158
|
end
|
157
159
|
|
158
160
|
it 'should protect mass assignment for activerecord 3' do
|
159
|
-
content
|
161
|
+
content = <<-EOF
|
160
162
|
GEM
|
161
163
|
remote: https://rubygems.org
|
162
164
|
specs:
|
163
165
|
activerecord (3.2.13)
|
164
166
|
EOF
|
165
167
|
runner.prepare('Gemfile.lock', content)
|
166
|
-
content
|
168
|
+
content = <<-EOF
|
167
169
|
class User < ActiveRecord::Base
|
168
170
|
end
|
169
171
|
EOF
|
@@ -175,7 +177,7 @@ module RailsBestPractices
|
|
175
177
|
it 'should not check ignored files' do
|
176
178
|
runner = Core::Runner.new(prepares: [Prepares::GemfilePrepare.new, Prepares::ConfigPrepare.new, Prepares::InitializerPrepare.new],
|
177
179
|
reviews: ProtectMassAssignmentReview.new(ignored_files: /app\/models\/user\.rb/))
|
178
|
-
content
|
180
|
+
content = <<-EOF
|
179
181
|
class User < ActiveRecord::Base
|
180
182
|
end
|
181
183
|
EOF
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
module RailsBestPractices
|
@@ -6,7 +8,7 @@ module RailsBestPractices
|
|
6
8
|
let(:runner) { Core::Runner.new(reviews: RemoveEmptyHelpersReview.new) }
|
7
9
|
|
8
10
|
it 'should remove empty helpers' do
|
9
|
-
content
|
11
|
+
content = <<-EOF
|
10
12
|
module PostsHelper
|
11
13
|
end
|
12
14
|
EOF
|
@@ -16,7 +18,7 @@ module RailsBestPractices
|
|
16
18
|
end
|
17
19
|
|
18
20
|
it 'should not remove empty helpers' do
|
19
|
-
content
|
21
|
+
content = <<-EOF
|
20
22
|
module PostsHelper
|
21
23
|
def post_link(post)
|
22
24
|
post_path(post)
|
@@ -28,7 +30,7 @@ module RailsBestPractices
|
|
28
30
|
end
|
29
31
|
|
30
32
|
it 'should not remove empty application_helper' do
|
31
|
-
content
|
33
|
+
content = <<-EOF
|
32
34
|
module ApplicationHelper
|
33
35
|
end
|
34
36
|
EOF
|
@@ -38,7 +40,7 @@ module RailsBestPractices
|
|
38
40
|
|
39
41
|
it 'should not check ignored files' do
|
40
42
|
runner = Core::Runner.new(reviews: RemoveEmptyHelpersReview.new(ignored_files: /posts_helper/))
|
41
|
-
content
|
43
|
+
content = <<-EOF
|
42
44
|
module PostsHelper
|
43
45
|
end
|
44
46
|
EOF
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
module RailsBestPractices
|
@@ -5,12 +7,12 @@ module RailsBestPractices
|
|
5
7
|
describe RemoveUnusedMethodsInControllersReview do
|
6
8
|
let(:runner) { Core::Runner.new(
|
7
9
|
prepares: [Prepares::ControllerPrepare.new, Prepares::RoutePrepare.new],
|
8
|
-
reviews: RemoveUnusedMethodsInControllersReview.new(
|
10
|
+
reviews: RemoveUnusedMethodsInControllersReview.new('except_methods' => ['ExceptableController#*'])
|
9
11
|
) }
|
10
12
|
|
11
13
|
context 'private/protected' do
|
12
14
|
it 'should remove unused methods' do
|
13
|
-
content
|
15
|
+
content = <<-EOF
|
14
16
|
RailsBestPracticesCom::Application.routes.draw do
|
15
17
|
resources :posts do
|
16
18
|
member do
|
@@ -21,7 +23,7 @@ module RailsBestPractices
|
|
21
23
|
end
|
22
24
|
EOF
|
23
25
|
runner.prepare('config/routes.rb', content)
|
24
|
-
content
|
26
|
+
content = <<-EOF
|
25
27
|
class PostsController < ActiveRecord::Base
|
26
28
|
def show; end
|
27
29
|
def extra_update; end
|
@@ -41,13 +43,13 @@ module RailsBestPractices
|
|
41
43
|
end
|
42
44
|
|
43
45
|
it 'should not remove unused methods for before_filter' do
|
44
|
-
content
|
46
|
+
content = <<-EOF
|
45
47
|
RailsBestPracticesCom::Application.routes.draw do
|
46
48
|
resources :posts
|
47
49
|
end
|
48
50
|
EOF
|
49
51
|
runner.prepare('config/routes.rb', content)
|
50
|
-
content
|
52
|
+
content = <<-EOF
|
51
53
|
class PostsController < ActiveRecord::Base
|
52
54
|
before_filter :load_post, :load_user
|
53
55
|
def show; end
|
@@ -63,13 +65,13 @@ module RailsBestPractices
|
|
63
65
|
end
|
64
66
|
|
65
67
|
it 'should not remove unused methods for around_filter' do
|
66
|
-
content
|
68
|
+
content = <<-EOF
|
67
69
|
RailsBestPracticesCom::Application.routes.draw do
|
68
70
|
resources :posts
|
69
71
|
end
|
70
72
|
EOF
|
71
73
|
runner.prepare('config/routes.rb', content)
|
72
|
-
content
|
74
|
+
content = <<-EOF
|
73
75
|
class PostsController < ActiveRecord::Base
|
74
76
|
around_filter :set_timestamp
|
75
77
|
protected
|
@@ -88,13 +90,13 @@ module RailsBestPractices
|
|
88
90
|
end
|
89
91
|
|
90
92
|
it 'should not remove unused methods for layout' do
|
91
|
-
content
|
93
|
+
content = <<-EOF
|
92
94
|
RailsBestPracticesCom::Application.routes.draw do
|
93
95
|
resources :posts
|
94
96
|
end
|
95
97
|
EOF
|
96
98
|
runner.prepare('config/routes.rb', content)
|
97
|
-
content
|
99
|
+
content = <<-EOF
|
98
100
|
class PostsController < ActiveRecord::Base
|
99
101
|
layout :choose_layout
|
100
102
|
private
|
@@ -110,13 +112,13 @@ module RailsBestPractices
|
|
110
112
|
end
|
111
113
|
|
112
114
|
it 'should not remove inherited_resources methods' do
|
113
|
-
content
|
115
|
+
content = <<-EOF
|
114
116
|
RailsBestPracticesCom::Application.routes.draw do
|
115
117
|
resources :posts
|
116
118
|
end
|
117
119
|
EOF
|
118
120
|
runner.prepare('config/routes.rb', content)
|
119
|
-
content
|
121
|
+
content = <<-EOF
|
120
122
|
class PostsController < InheritedResources::Base
|
121
123
|
def show; end
|
122
124
|
protected
|
@@ -134,13 +136,13 @@ module RailsBestPractices
|
|
134
136
|
|
135
137
|
context 'public' do
|
136
138
|
it 'should remove unused methods' do
|
137
|
-
content
|
139
|
+
content = <<-EOF
|
138
140
|
RailsBestPracticesCom::Application.routes.draw do
|
139
141
|
resources :posts
|
140
142
|
end
|
141
143
|
EOF
|
142
144
|
runner.prepare('config/routes.rb', content)
|
143
|
-
content
|
145
|
+
content = <<-EOF
|
144
146
|
class PostsController < ApplicationController
|
145
147
|
def show; end
|
146
148
|
def list; end
|
@@ -154,7 +156,7 @@ module RailsBestPractices
|
|
154
156
|
end
|
155
157
|
|
156
158
|
it 'should not remove inline routes' do
|
157
|
-
content
|
159
|
+
content = <<-EOF
|
158
160
|
RailsBestPracticesCom::Application.routes.draw do
|
159
161
|
resources :posts, only: :none do
|
160
162
|
get :display, :list, on: :member
|
@@ -162,7 +164,7 @@ module RailsBestPractices
|
|
162
164
|
end
|
163
165
|
EOF
|
164
166
|
runner.prepare('config/routes.rb', content)
|
165
|
-
content
|
167
|
+
content = <<-EOF
|
166
168
|
class PostsController < ApplicationController
|
167
169
|
def display; end
|
168
170
|
def list; end
|
@@ -175,13 +177,13 @@ module RailsBestPractices
|
|
175
177
|
end
|
176
178
|
|
177
179
|
it 'should not remove unused methods if all actions are used in route' do
|
178
|
-
content
|
180
|
+
content = <<-EOF
|
179
181
|
ActionController::Routing::Routes.draw do |map|
|
180
182
|
map.connect 'internal/:action/*whatever', controller: "internal"
|
181
183
|
end
|
182
184
|
EOF
|
183
185
|
runner.prepare('config/routes.rb', content)
|
184
|
-
content
|
186
|
+
content = <<-EOF
|
185
187
|
class InternalController < ApplicationController
|
186
188
|
def list; end
|
187
189
|
def delete; end
|
@@ -195,7 +197,7 @@ module RailsBestPractices
|
|
195
197
|
end
|
196
198
|
|
197
199
|
it 'should not remove unused methods if they are except_methods' do
|
198
|
-
content
|
200
|
+
content = <<-EOF
|
199
201
|
class ExceptableController < ApplicationController
|
200
202
|
def list; end
|
201
203
|
end
|
@@ -209,19 +211,19 @@ module RailsBestPractices
|
|
209
211
|
|
210
212
|
context 'assignment' do
|
211
213
|
it 'should not remove unused methods if call in base class' do
|
212
|
-
content
|
214
|
+
content = <<-EOF
|
213
215
|
RailsBestPracticesCom::Application.routes.draw do
|
214
216
|
resources :user, only: :show do; end
|
215
217
|
end
|
216
218
|
EOF
|
217
219
|
runner.prepare('config/routes.rb', content)
|
218
|
-
application_content
|
220
|
+
application_content = <<-EOF
|
219
221
|
class ApplicationController
|
220
222
|
def current_user=(user); end
|
221
223
|
end
|
222
224
|
EOF
|
223
225
|
runner.prepare('app/controllers/application_controller.rb', application_content)
|
224
|
-
users_content
|
226
|
+
users_content = <<-EOF
|
225
227
|
class UsersController < ApplicationController
|
226
228
|
def show
|
227
229
|
current_user = @user
|
@@ -340,7 +342,7 @@ module RailsBestPractices
|
|
340
342
|
|
341
343
|
context 'cells' do
|
342
344
|
it 'should remove unused methods' do
|
343
|
-
content
|
345
|
+
content = <<-EOF
|
344
346
|
class PostsCell < Cell::Rails
|
345
347
|
def list; end
|
346
348
|
end
|
@@ -353,7 +355,7 @@ module RailsBestPractices
|
|
353
355
|
end
|
354
356
|
|
355
357
|
it 'should not remove unused methods if render_cell' do
|
356
|
-
content
|
358
|
+
content = <<-EOF
|
357
359
|
class PostsCell < Cell::Rails
|
358
360
|
def list; end
|
359
361
|
def display; end
|
@@ -361,7 +363,7 @@ module RailsBestPractices
|
|
361
363
|
EOF
|
362
364
|
runner.prepare('app/cells/posts_cell.rb', content)
|
363
365
|
runner.review('app/cells/posts_cell.rb', content)
|
364
|
-
content
|
366
|
+
content = <<-EOF
|
365
367
|
<%= render_cell :posts, :list %>
|
366
368
|
<%= render_cell(:posts, :display) %>
|
367
369
|
EOF
|
@@ -371,7 +373,7 @@ module RailsBestPractices
|
|
371
373
|
end
|
372
374
|
|
373
375
|
it 'should not remove unused methods if render with state' do
|
374
|
-
content
|
376
|
+
content = <<-EOF
|
375
377
|
class PostsCell < Cell::Rails
|
376
378
|
def list
|
377
379
|
render state: :show
|
@@ -384,7 +386,7 @@ module RailsBestPractices
|
|
384
386
|
EOF
|
385
387
|
runner.prepare('app/cells/posts_cell.rb', content)
|
386
388
|
runner.review('app/cells/posts_cell.rb', content)
|
387
|
-
content
|
389
|
+
content = <<-EOF
|
388
390
|
<%= render_cell :posts, :list %>
|
389
391
|
EOF
|
390
392
|
runner.review('app/views/posts/index.html.erb', content)
|
@@ -394,14 +396,14 @@ module RailsBestPractices
|
|
394
396
|
end
|
395
397
|
|
396
398
|
it 'should not remove unused methods' do
|
397
|
-
route_content
|
399
|
+
route_content = <<-EOF
|
398
400
|
RailsBestPracticesCom::Application.routes.draw do
|
399
401
|
namespace :admin do
|
400
402
|
resources :users, only: :index
|
401
403
|
end
|
402
404
|
end
|
403
405
|
EOF
|
404
|
-
app_controller_content
|
406
|
+
app_controller_content = <<-EOF
|
405
407
|
module Admin
|
406
408
|
class AppController < ApplicationController
|
407
409
|
def index
|
@@ -410,7 +412,7 @@ module RailsBestPractices
|
|
410
412
|
end
|
411
413
|
end
|
412
414
|
EOF
|
413
|
-
users_controller_content
|
415
|
+
users_controller_content = <<-EOF
|
414
416
|
module Admin
|
415
417
|
class UsersController < AppController
|
416
418
|
private
|
@@ -433,7 +435,7 @@ module RailsBestPractices
|
|
433
435
|
it 'should not check ignored files' do
|
434
436
|
runner = Core::Runner.new(prepares: [Prepares::ControllerPrepare.new, Prepares::RoutePrepare.new],
|
435
437
|
reviews: RemoveUnusedMethodsInControllersReview.new(ignored_files: /posts_controller/, except_methods: []))
|
436
|
-
content
|
438
|
+
content = <<-EOF
|
437
439
|
RailsBestPracticesCom::Application.routes.draw do
|
438
440
|
resources :posts do
|
439
441
|
member do
|
@@ -444,7 +446,7 @@ module RailsBestPractices
|
|
444
446
|
end
|
445
447
|
EOF
|
446
448
|
runner.prepare('config/routes.rb', content)
|
447
|
-
content
|
449
|
+
content = <<-EOF
|
448
450
|
class PostsController < ActiveRecord::Base
|
449
451
|
def show; end
|
450
452
|
def extra_update; end
|