rails_best_practices 1.19.1 → 1.19.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|
8
10
|
describe 'check_save_return_value' do
|
9
11
|
it 'should warn you if you fail to check save return value' do
|
10
|
-
content
|
12
|
+
content = <<-EOF
|
11
13
|
def my_method
|
12
14
|
post = Posts.new do |p|
|
13
15
|
p.title = "foo"
|
@@ -21,7 +23,7 @@ module RailsBestPractices
|
|
21
23
|
end
|
22
24
|
|
23
25
|
it 'should allow save return value assigned to var' do
|
24
|
-
content
|
26
|
+
content = <<-EOF
|
25
27
|
def my_method
|
26
28
|
post = Posts.new do |p|
|
27
29
|
p.title = "foo"
|
@@ -34,7 +36,7 @@ module RailsBestPractices
|
|
34
36
|
end
|
35
37
|
|
36
38
|
it 'should allow save return value used in if' do
|
37
|
-
content
|
39
|
+
content = <<-EOF
|
38
40
|
def my_method
|
39
41
|
post = Posts.new do |p|
|
40
42
|
p.title = "foo"
|
@@ -51,7 +53,7 @@ module RailsBestPractices
|
|
51
53
|
end
|
52
54
|
|
53
55
|
it 'should allow save return value used in elsif' do
|
54
|
-
content
|
56
|
+
content = <<-EOF
|
55
57
|
def my_method
|
56
58
|
post = Posts.new do |p|
|
57
59
|
p.title = "foo"
|
@@ -70,7 +72,7 @@ module RailsBestPractices
|
|
70
72
|
end
|
71
73
|
|
72
74
|
it 'should allow save return value used in unless' do
|
73
|
-
content
|
75
|
+
content = <<-EOF
|
74
76
|
def my_method
|
75
77
|
unless @post.save
|
76
78
|
raise "could not save"
|
@@ -82,7 +84,7 @@ module RailsBestPractices
|
|
82
84
|
end
|
83
85
|
|
84
86
|
it 'should allow save return value used in if_mod' do
|
85
|
-
content
|
87
|
+
content = <<-EOF
|
86
88
|
def my_method
|
87
89
|
post = Posts.new do |p|
|
88
90
|
p.title = "foo"
|
@@ -95,7 +97,7 @@ module RailsBestPractices
|
|
95
97
|
end
|
96
98
|
|
97
99
|
it 'should allow save return value used in unless_mod' do
|
98
|
-
content
|
100
|
+
content = <<-EOF
|
99
101
|
def my_method
|
100
102
|
post = Posts.new do |p|
|
101
103
|
p.title = "foo"
|
@@ -108,7 +110,7 @@ module RailsBestPractices
|
|
108
110
|
end
|
109
111
|
|
110
112
|
it 'should allow save return value used in unless with &&' do
|
111
|
-
content
|
113
|
+
content = <<-EOF
|
112
114
|
def my_method
|
113
115
|
unless some_method(1) && other_method(2) && @post.save
|
114
116
|
raise "could not save"
|
@@ -120,7 +122,7 @@ module RailsBestPractices
|
|
120
122
|
end
|
121
123
|
|
122
124
|
it 'should allow save!' do
|
123
|
-
content
|
125
|
+
content = <<-EOF
|
124
126
|
def my_method
|
125
127
|
post = Posts.new do |p|
|
126
128
|
p.title = "foo"
|
@@ -133,7 +135,7 @@ module RailsBestPractices
|
|
133
135
|
end
|
134
136
|
|
135
137
|
it 'should warn you if you fail to check update_attributes return value' do
|
136
|
-
content
|
138
|
+
content = <<-EOF
|
137
139
|
def my_method
|
138
140
|
@post.update_attributes params
|
139
141
|
end
|
@@ -144,7 +146,7 @@ module RailsBestPractices
|
|
144
146
|
end
|
145
147
|
|
146
148
|
it 'should allow update_attributes if return value is checked' do
|
147
|
-
content
|
149
|
+
content = <<-EOF
|
148
150
|
def my_method
|
149
151
|
@post.update_attributes(params) or raise "failed to save"
|
150
152
|
end
|
@@ -156,7 +158,7 @@ module RailsBestPractices
|
|
156
158
|
it 'is not clever enough to allow update_attributes if value is returned from method' do
|
157
159
|
# This review is not clever enough to do a full liveness analysis
|
158
160
|
# of whether the returned value is used in all cases.
|
159
|
-
content
|
161
|
+
content = <<-EOF
|
160
162
|
class PostsController
|
161
163
|
def update
|
162
164
|
@post = Post.find params(:id)
|
@@ -178,12 +180,12 @@ module RailsBestPractices
|
|
178
180
|
end
|
179
181
|
|
180
182
|
it 'should warn you if you use create which is always unsafe' do
|
181
|
-
content
|
183
|
+
content = <<-EOF
|
182
184
|
class Post < ActiveRecord::Base
|
183
185
|
end
|
184
186
|
EOF
|
185
187
|
runner.prepare('app/models/post.rb', content)
|
186
|
-
content
|
188
|
+
content = <<-EOF
|
187
189
|
def my_method
|
188
190
|
if post = Post.create(params)
|
189
191
|
# post may or may not be saved here!
|
@@ -197,14 +199,14 @@ module RailsBestPractices
|
|
197
199
|
end
|
198
200
|
|
199
201
|
it 'should warn you if you use create with a block which is always unsafe' do
|
200
|
-
content
|
202
|
+
content = <<-EOF
|
201
203
|
module Blog
|
202
204
|
class Post < ActiveRecord::Base
|
203
205
|
end
|
204
206
|
end
|
205
207
|
EOF
|
206
208
|
runner.prepare('app/models/blog/post.rb', content)
|
207
|
-
content
|
209
|
+
content = <<-EOF
|
208
210
|
module Blog
|
209
211
|
class PostsHelper
|
210
212
|
def my_method
|
@@ -225,7 +227,7 @@ module RailsBestPractices
|
|
225
227
|
end
|
226
228
|
|
227
229
|
it 'allows create called on non-model classes' do
|
228
|
-
content
|
230
|
+
content = <<-EOF
|
229
231
|
def my_method
|
230
232
|
pk12 = OpenSSL::PKCS12.create(
|
231
233
|
"", # password
|
@@ -241,7 +243,7 @@ module RailsBestPractices
|
|
241
243
|
|
242
244
|
it 'should not check ignored files' do
|
243
245
|
runner = Core::Runner.new(reviews: CheckSaveReturnValueReview.new(ignored_files: /helpers/))
|
244
|
-
content
|
246
|
+
content = <<-EOF
|
245
247
|
def my_method
|
246
248
|
post = Posts.new do |p|
|
247
249
|
p.title = "foo"
|
@@ -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: HashSyntaxReview.new) }
|
7
9
|
|
8
10
|
it 'should find 1.8 Hash with symbol' do
|
9
|
-
content
|
11
|
+
content = <<-EOF
|
10
12
|
class User < ActiveRecord::Base
|
11
13
|
CONST = { :foo => :bar }
|
12
14
|
end
|
@@ -17,7 +19,7 @@ module RailsBestPractices
|
|
17
19
|
end
|
18
20
|
|
19
21
|
it 'should not find 1.8 Hash with string' do
|
20
|
-
content
|
22
|
+
content = <<-EOF
|
21
23
|
class User < ActiveRecord::Base
|
22
24
|
CONST = { "foo" => "bar" }
|
23
25
|
end
|
@@ -27,7 +29,7 @@ module RailsBestPractices
|
|
27
29
|
end
|
28
30
|
|
29
31
|
it 'should not alert on 1.9 Syntax' do
|
30
|
-
content
|
32
|
+
content = <<-EOF
|
31
33
|
class User < ActiveRecord::Base
|
32
34
|
CONST = { foo: :bar }
|
33
35
|
end
|
@@ -37,7 +39,7 @@ module RailsBestPractices
|
|
37
39
|
end
|
38
40
|
|
39
41
|
it 'should ignore haml_out' do
|
40
|
-
content
|
42
|
+
content = <<-EOF
|
41
43
|
%div{ class: "foo1" }
|
42
44
|
.div{ class: "foo2" }
|
43
45
|
#div{ class: "foo3" }
|
@@ -47,7 +49,7 @@ module RailsBestPractices
|
|
47
49
|
end
|
48
50
|
|
49
51
|
it 'should not consider hash with array key' do
|
50
|
-
content
|
52
|
+
content = <<-EOF
|
51
53
|
transition [:unverified, :verified] => :deleted
|
52
54
|
EOF
|
53
55
|
runner.review('app/models/post.rb', content)
|
@@ -55,7 +57,7 @@ module RailsBestPractices
|
|
55
57
|
end
|
56
58
|
|
57
59
|
it 'should not consider hash with charaters not valid for symbol' do
|
58
|
-
content
|
60
|
+
content = <<-EOF
|
59
61
|
receiver.stub(:` => 'Error')
|
60
62
|
EOF
|
61
63
|
runner.review('app/models/post.rb', content)
|
@@ -64,7 +66,7 @@ module RailsBestPractices
|
|
64
66
|
|
65
67
|
it 'should not check ignored files' do
|
66
68
|
runner = Core::Runner.new(reviews: HashSyntaxReview.new(ignored_files: /user/))
|
67
|
-
content
|
69
|
+
content = <<-EOF
|
68
70
|
class User < ActiveRecord::Base
|
69
71
|
CONST = { :foo => :bar }
|
70
72
|
end
|
@@ -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: MoveCodeIntoModelReview.new) }
|
7
9
|
|
8
10
|
it 'should move code into model' do
|
9
|
-
content
|
11
|
+
content = <<-EOF
|
10
12
|
<% if current_user && @post.user && (current_user == @post.user || @post.editors.include?(current_user)) %>
|
11
13
|
<%= link_to 'Edit this post', edit_post_url(@post) %>
|
12
14
|
<% end %>
|
@@ -17,7 +19,7 @@ module RailsBestPractices
|
|
17
19
|
end
|
18
20
|
|
19
21
|
it 'should move code into model with haml' do
|
20
|
-
content
|
22
|
+
content = <<-EOF
|
21
23
|
- if current_user && @post.user && (current_user == @post.user || @post.editors.include?(current_user))
|
22
24
|
= link_to 'Edit this post', edit_post_url(@post)
|
23
25
|
EOF
|
@@ -27,7 +29,7 @@ module RailsBestPractices
|
|
27
29
|
end
|
28
30
|
|
29
31
|
it 'should move code into model with slim' do
|
30
|
-
content
|
32
|
+
content = <<-EOF
|
31
33
|
- if current_user && @post.user && (current_user == @post.user || @post.editors.include?(current_user))
|
32
34
|
= link_to 'Edit this post', edit_post_url(@post)
|
33
35
|
EOF
|
@@ -37,7 +39,7 @@ module RailsBestPractices
|
|
37
39
|
end
|
38
40
|
|
39
41
|
it 'should move code into model with if in one line' do
|
40
|
-
content
|
42
|
+
content = <<-EOF
|
41
43
|
<%= link_to 'Edit this post', edit_post_url(@post) if current_user && @post.user && (current_user == @post.user || @post.editors.include?(current_user)) %>
|
42
44
|
EOF
|
43
45
|
runner.review('app/views/posts/show.html.erb', content)
|
@@ -46,7 +48,7 @@ module RailsBestPractices
|
|
46
48
|
end
|
47
49
|
|
48
50
|
it "should move code into model with '? :'" do
|
49
|
-
content
|
51
|
+
content = <<-EOF
|
50
52
|
<%= current_user && @post.user && (current_user == @post.user || @post.editors.include?(current_user)) ? link_to('Edit this post', edit_post_url(@post)) : '' %>
|
51
53
|
EOF
|
52
54
|
runner.review('app/views/posts/show.html.erb', content)
|
@@ -55,7 +57,7 @@ module RailsBestPractices
|
|
55
57
|
end
|
56
58
|
|
57
59
|
it 'should move code into model only review for current if conditional statement' do
|
58
|
-
content
|
60
|
+
content = <<-EOF
|
59
61
|
<% if @post.title %>
|
60
62
|
<% if @post.user %>
|
61
63
|
<% if @post.description %>
|
@@ -68,7 +70,7 @@ module RailsBestPractices
|
|
68
70
|
end
|
69
71
|
|
70
72
|
it 'should not move code into model' do
|
71
|
-
content
|
73
|
+
content = <<-EOF
|
72
74
|
<% if @post.editable_by?(current_user) %>
|
73
75
|
<%= link_to 'Edit this post', edit_post_url(@post) %>
|
74
76
|
<% end %>
|
@@ -78,7 +80,7 @@ module RailsBestPractices
|
|
78
80
|
end
|
79
81
|
|
80
82
|
it 'should not move code into model for multiple calls on same variable node' do
|
81
|
-
content
|
83
|
+
content = <<-EOF
|
82
84
|
<% if !job.company.blank? && job.company.title? %>
|
83
85
|
<% end %>
|
84
86
|
EOF
|
@@ -88,7 +90,7 @@ module RailsBestPractices
|
|
88
90
|
|
89
91
|
it 'should not check ignored files' do
|
90
92
|
runner = Core::Runner.new(reviews: MoveCodeIntoModelReview.new(ignored_files: /app\/views\/post/))
|
91
|
-
content
|
93
|
+
content = <<-EOF
|
92
94
|
<% if current_user && @post.user && (current_user == @post.user || @post.editors.include?(current_user)) %>
|
93
95
|
<%= link_to 'Edit this post', edit_post_url(@post) %>
|
94
96
|
<% end %>
|
@@ -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
|
|
8
10
|
describe 'not_rescue_exception' do
|
9
11
|
it 'should not rescue exception in method rescue with named var' do
|
10
|
-
content
|
12
|
+
content = <<-EOF
|
11
13
|
def my_method
|
12
14
|
do_something
|
13
15
|
rescue Exception => e
|
@@ -20,7 +22,7 @@ module RailsBestPractices
|
|
20
22
|
end
|
21
23
|
|
22
24
|
it 'should not rescue exception in method rescue without named var' do
|
23
|
-
content
|
25
|
+
content = <<-EOF
|
24
26
|
def my_method
|
25
27
|
do_something
|
26
28
|
rescue Exception
|
@@ -33,7 +35,7 @@ module RailsBestPractices
|
|
33
35
|
end
|
34
36
|
|
35
37
|
it 'should not rescue exception in block rescue with named var' do
|
36
|
-
content
|
38
|
+
content = <<-EOF
|
37
39
|
def my_method
|
38
40
|
begin
|
39
41
|
do_something
|
@@ -48,7 +50,7 @@ module RailsBestPractices
|
|
48
50
|
end
|
49
51
|
|
50
52
|
it 'should not rescue exception in block rescue without named var' do
|
51
|
-
content
|
53
|
+
content = <<-EOF
|
52
54
|
def my_method
|
53
55
|
begin
|
54
56
|
do_something
|
@@ -63,7 +65,7 @@ module RailsBestPractices
|
|
63
65
|
end
|
64
66
|
|
65
67
|
it 'should allow rescue implicit StandardError in block rescue without named var' do
|
66
|
-
content
|
68
|
+
content = <<-EOF
|
67
69
|
def my_method
|
68
70
|
begin
|
69
71
|
do_something
|
@@ -77,7 +79,7 @@ module RailsBestPractices
|
|
77
79
|
end
|
78
80
|
|
79
81
|
it 'should allow rescue explicit StandardError in block rescue without named var' do
|
80
|
-
content
|
82
|
+
content = <<-EOF
|
81
83
|
def my_method
|
82
84
|
begin
|
83
85
|
do_something
|
@@ -92,7 +94,7 @@ module RailsBestPractices
|
|
92
94
|
|
93
95
|
it 'should not check ignored files' do
|
94
96
|
runner = Core::Runner.new(reviews: NotRescueExceptionReview.new(ignored_files: /posts_helper/))
|
95
|
-
content
|
97
|
+
content = <<-EOF
|
96
98
|
def my_method
|
97
99
|
do_something
|
98
100
|
rescue Exception => e
|
@@ -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
|
|
8
10
|
describe 'time_ago_in_words' do
|
9
11
|
it 'should not use in views' do
|
10
|
-
content
|
12
|
+
content = <<-EOF
|
11
13
|
<%= time_ago_in_words(post.created_at) %>
|
12
14
|
EOF
|
13
15
|
runner.review('app/views/posts/show.html.erb', content)
|
@@ -16,7 +18,7 @@ module RailsBestPractices
|
|
16
18
|
end
|
17
19
|
|
18
20
|
it 'should not use in helpers' do
|
19
|
-
content
|
21
|
+
content = <<-EOF
|
20
22
|
def timeago
|
21
23
|
content_tag(:p, time_ago_in_words(post.created_at))
|
22
24
|
end
|
@@ -29,7 +31,7 @@ module RailsBestPractices
|
|
29
31
|
|
30
32
|
describe 'distance_of_time_in_words_to_now' do
|
31
33
|
it 'should not use in views' do
|
32
|
-
content
|
34
|
+
content = <<-EOF
|
33
35
|
<%= distance_of_time_in_words_to_now(post.created_at) %>
|
34
36
|
EOF
|
35
37
|
runner.review('app/views/posts/show.html.erb', content)
|
@@ -38,7 +40,7 @@ module RailsBestPractices
|
|
38
40
|
end
|
39
41
|
|
40
42
|
it 'should not use in helpers' do
|
41
|
-
content
|
43
|
+
content = <<-EOF
|
42
44
|
def timeago
|
43
45
|
content_tag(:p, distance_of_time_in_words_to_now(post.created_at))
|
44
46
|
end
|
@@ -51,7 +53,7 @@ module RailsBestPractices
|
|
51
53
|
|
52
54
|
it 'should not check ignored files' do
|
53
55
|
runner = Core::Runner.new(reviews: NotUseTimeAgoInWordsReview.new(ignored_files: /posts_helper/))
|
54
|
-
content
|
56
|
+
content = <<-EOF
|
55
57
|
def timeago
|
56
58
|
content_tag(:p, time_ago_in_words(post.created_at))
|
57
59
|
end
|