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
|
|
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
|