rails_best_practices 1.18.1 → 1.19.0
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/.travis.yml +1 -1
- data/CHANGELOG.md +4 -1
- data/Gemfile +3 -3
- data/README.md +1 -1
- data/Rakefile +1 -4
- data/lib/rails_best_practices/analyzer.rb +3 -3
- data/lib/rails_best_practices/core/routes.rb +1 -1
- data/lib/rails_best_practices/lexicals/remove_tab_check.rb +2 -2
- data/lib/rails_best_practices/lexicals/remove_trailing_whitespace_check.rb +2 -2
- data/lib/rails_best_practices/prepares/route_prepare.rb +5 -0
- data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +2 -2
- data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +2 -2
- data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +2 -2
- data/lib/rails_best_practices/reviews/default_scope_is_evil_review.rb +2 -2
- data/lib/rails_best_practices/reviews/dry_bundler_in_capistrano_review.rb +2 -2
- data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +2 -2
- data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +2 -2
- data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +2 -2
- data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +2 -2
- data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +2 -2
- data/lib/rails_best_practices/reviews/move_code_into_model_review.rb +2 -2
- data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +2 -2
- data/lib/rails_best_practices/reviews/move_model_logic_into_model_review.rb +2 -2
- data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +2 -2
- data/lib/rails_best_practices/reviews/not_rescue_exception_review.rb +2 -2
- data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +3 -12
- data/lib/rails_best_practices/reviews/not_use_time_ago_in_words_review.rb +2 -2
- data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +2 -47
- data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +2 -2
- data/lib/rails_best_practices/reviews/remove_empty_helpers_review.rb +2 -2
- 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 -2
- data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +15 -6
- data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +2 -2
- data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +2 -2
- data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -2
- 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 +3 -18
- data/lib/rails_best_practices/reviews/use_observer_review.rb +2 -13
- data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +2 -2
- data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +2 -2
- data/lib/rails_best_practices/reviews/use_scope_access_review.rb +2 -2
- data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +2 -2
- data/lib/rails_best_practices/version.rb +1 -1
- data/rails_best_practices.gemspec +2 -2
- data/spec/rails_best_practices/analyzer_spec.rb +1 -1
- data/spec/rails_best_practices/prepares/route_prepare_spec.rb +338 -586
- data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +59 -140
- data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +26 -69
- data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +44 -153
- data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +2 -2
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +21 -0
- data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +160 -272
- data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +76 -209
- data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +43 -110
- data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +4 -4
- metadata +5 -23
- data/.rubocop.yml +0 -1
- data/.rubocop_todo.yml +0 -382
- data/install_supported_rubies.sh +0 -10
- data/rake_rubies.sh +0 -9
@@ -5,166 +5,85 @@ module RailsBestPractices
|
|
5
5
|
describe NeedlessDeepNestingReview do
|
6
6
|
let(:runner) { Core::Runner.new(reviews: NeedlessDeepNestingReview.new) }
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
comment.resources :favorites
|
14
|
-
end
|
15
|
-
end
|
16
|
-
EOF
|
17
|
-
runner.review('config/routes.rb', content)
|
18
|
-
expect(runner.errors.size).to eq(1)
|
19
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should not needless deep nesting for shallow" do
|
23
|
-
content = <<-EOF
|
24
|
-
map.resources :posts, shallow: true do |post|
|
25
|
-
post.resources :comments do |comment|
|
26
|
-
comment.resources :favorites
|
27
|
-
end
|
28
|
-
end
|
29
|
-
EOF
|
30
|
-
runner.review('config/routes.rb', content)
|
31
|
-
expect(runner.errors.size).to eq(0)
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should needless deep nesting with resource" do
|
35
|
-
content = <<-EOF
|
36
|
-
map.resources :posts do |post|
|
37
|
-
post.resources :comments do |comment|
|
38
|
-
comment.resource :vote
|
39
|
-
end
|
40
|
-
end
|
41
|
-
EOF
|
42
|
-
runner.review('config/routes.rb', content)
|
43
|
-
expect(runner.errors.size).to eq(1)
|
44
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should needless deep nesting with block node" do
|
48
|
-
content = <<-EOF
|
49
|
-
map.resources :posts do |post|
|
50
|
-
post.resources :comments do |comment|
|
51
|
-
comment.resources :favorites
|
52
|
-
end
|
53
|
-
post.resources :votes
|
54
|
-
end
|
55
|
-
EOF
|
56
|
-
runner.review('config/routes.rb', content)
|
57
|
-
expect(runner.errors.size).to eq(1)
|
58
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should no needless deep nesting" do
|
62
|
-
content = <<-EOF
|
63
|
-
map.resources :posts do |post|
|
64
|
-
post.resources :comments
|
65
|
-
end
|
66
|
-
|
67
|
-
map.resources :comments do |comment|
|
68
|
-
comment.resources :favorites
|
69
|
-
end
|
70
|
-
EOF
|
71
|
-
runner.review('config/routes.rb', content)
|
72
|
-
expect(runner.errors.size).to eq(0)
|
73
|
-
end
|
74
|
-
|
75
|
-
it "should no needless deep nesting with block node" do
|
76
|
-
content = <<-EOF
|
77
|
-
map.resources :comments do |comment|
|
78
|
-
comment.resources :favorites
|
79
|
-
comment.resources :votes
|
8
|
+
it "should needless deep nesting" do
|
9
|
+
content = <<-EOF
|
10
|
+
resources :posts do
|
11
|
+
resources :comments do
|
12
|
+
resources :favorites
|
80
13
|
end
|
81
|
-
EOF
|
82
|
-
runner.review('config/routes.rb', content)
|
83
|
-
expect(runner.errors.size).to eq(0)
|
84
14
|
end
|
15
|
+
EOF
|
16
|
+
runner.review('config/routes.rb', content)
|
17
|
+
expect(runner.errors.size).to eq(1)
|
18
|
+
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
85
19
|
end
|
86
20
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
resources :
|
91
|
-
resources :
|
92
|
-
resources :favorites
|
93
|
-
end
|
21
|
+
it "should not needless deep nesting for shallow" do
|
22
|
+
content = <<-EOF
|
23
|
+
resources :posts, shallow: true do
|
24
|
+
resources :comments do
|
25
|
+
resources :favorites
|
94
26
|
end
|
95
|
-
EOF
|
96
|
-
runner.review('config/routes.rb', content)
|
97
|
-
expect(runner.errors.size).to eq(1)
|
98
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
99
27
|
end
|
28
|
+
EOF
|
29
|
+
runner.review('config/routes.rb', content)
|
30
|
+
expect(runner.errors.size).to eq(0)
|
31
|
+
end
|
100
32
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
33
|
+
it "should not needless deep nesting for shallow 4 levels" do
|
34
|
+
content = <<-EOF
|
35
|
+
resources :applications, shallow: true, only: [:index, :show, :create] do
|
36
|
+
resources :events, only: [:index, :show, :create, :subscribe, :push] do
|
37
|
+
resources :executions, only: [:index, :show] do
|
38
|
+
resources :execution_statuses, only: :index
|
106
39
|
end
|
107
40
|
end
|
108
|
-
EOF
|
109
|
-
runner.review('config/routes.rb', content)
|
110
|
-
expect(runner.errors.size).to eq(0)
|
111
41
|
end
|
42
|
+
EOF
|
43
|
+
runner.review('config/routes.rb', content)
|
44
|
+
expect(runner.errors.size).to eq(0)
|
45
|
+
end
|
112
46
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
resources :execution_statuses, only: :index
|
119
|
-
end
|
120
|
-
end
|
47
|
+
it "should needless deep nesting with resource" do
|
48
|
+
content = <<-EOF
|
49
|
+
resources :posts do
|
50
|
+
resources :comments do
|
51
|
+
resource :vote
|
121
52
|
end
|
122
|
-
EOF
|
123
|
-
runner.review('config/routes.rb', content)
|
124
|
-
expect(runner.errors.size).to eq(0)
|
125
53
|
end
|
54
|
+
EOF
|
55
|
+
runner.review('config/routes.rb', content)
|
56
|
+
expect(runner.errors.size).to eq(1)
|
57
|
+
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
58
|
+
end
|
126
59
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
end
|
60
|
+
it "should needless deep nesting with block node" do
|
61
|
+
content = <<-EOF
|
62
|
+
resources :posts do
|
63
|
+
resources :comments do
|
64
|
+
resources :favorites
|
133
65
|
end
|
134
|
-
|
135
|
-
runner.review('config/routes.rb', content)
|
136
|
-
expect(runner.errors.size).to eq(1)
|
137
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
66
|
+
resources :votes
|
138
67
|
end
|
68
|
+
EOF
|
69
|
+
runner.review('config/routes.rb', content)
|
70
|
+
expect(runner.errors.size).to eq(1)
|
71
|
+
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
72
|
+
end
|
139
73
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
end
|
146
|
-
resources :votes
|
147
|
-
end
|
148
|
-
EOF
|
149
|
-
runner.review('config/routes.rb', content)
|
150
|
-
expect(runner.errors.size).to eq(1)
|
151
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - needless deep nesting (nested_count > 2)")
|
74
|
+
it "should no needless deep nesting" do
|
75
|
+
content = <<-EOF
|
76
|
+
resources :posts do
|
77
|
+
resources :comments
|
78
|
+
resources :votes
|
152
79
|
end
|
153
80
|
|
154
|
-
|
155
|
-
|
156
|
-
resources :posts do
|
157
|
-
resources :comments
|
158
|
-
resources :votes
|
159
|
-
end
|
160
|
-
|
161
|
-
resources :comments do
|
162
|
-
resources :favorites
|
163
|
-
end
|
164
|
-
EOF
|
165
|
-
runner.review('config/routes.rb', content)
|
166
|
-
expect(runner.errors.size).to eq(0)
|
81
|
+
resources :comments do
|
82
|
+
resources :favorites
|
167
83
|
end
|
84
|
+
EOF
|
85
|
+
runner.review('config/routes.rb', content)
|
86
|
+
expect(runner.errors.size).to eq(0)
|
168
87
|
end
|
169
88
|
|
170
89
|
it "should not check ignored files" do
|
@@ -5,83 +5,40 @@ module RailsBestPractices
|
|
5
5
|
describe NotUseDefaultRouteReview do
|
6
6
|
let(:runner) { Core::Runner.new(reviews: NotUseDefaultRouteReview.new) }
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
map.resources :posts, member: { push: :post }
|
8
|
+
it "should not use default route" do
|
9
|
+
content = <<-EOF
|
10
|
+
RailsBestpracticesCom::Application.routes.draw do |map|
|
11
|
+
resources :posts
|
13
12
|
|
14
|
-
|
15
|
-
map.connect ':controller/:action/:id.:format'
|
16
|
-
end
|
17
|
-
EOF
|
18
|
-
runner.review('config/routes.rb', content)
|
19
|
-
expect(runner.errors.size).to eq(2)
|
20
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:4 - not use default route")
|
21
|
-
expect(runner.errors[1].to_s).to eq("config/routes.rb:5 - not use default route")
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should no not use default route" do
|
25
|
-
content = <<-EOF
|
26
|
-
ActionController::Routing::Routes.draw do |map|
|
27
|
-
map.resources :posts, member: { push: :post }
|
28
|
-
end
|
29
|
-
EOF
|
30
|
-
runner.review('config/routes.rb', content)
|
31
|
-
expect(runner.errors.size).to eq(0)
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should not check ignored files" do
|
35
|
-
runner = Core::Runner.new(reviews: NotUseDefaultRouteReview.new(ignored_files: /config\/routes\.rb/))
|
36
|
-
content = <<-EOF
|
37
|
-
ActionController::Routing::Routes.draw do |map|
|
38
|
-
map.resources :posts, member: { push: :post }
|
39
|
-
|
40
|
-
map.connect ':controller/:action/:id'
|
41
|
-
map.connect ':controller/:action/:id.:format'
|
42
|
-
end
|
43
|
-
EOF
|
44
|
-
runner.review('config/routes.rb', content)
|
45
|
-
expect(runner.errors.size).to eq(0)
|
13
|
+
match ':controller(/:action(/:id(.:format)))'
|
46
14
|
end
|
15
|
+
EOF
|
16
|
+
runner.review('config/routes.rb', content)
|
17
|
+
expect(runner.errors.size).to eq(1)
|
18
|
+
expect(runner.errors[0].to_s).to eq("config/routes.rb:4 - not use default route")
|
47
19
|
end
|
48
20
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
resources :posts
|
54
|
-
|
55
|
-
match ':controller(/:action(/:id(.:format)))'
|
56
|
-
end
|
57
|
-
EOF
|
58
|
-
runner.review('config/routes.rb', content)
|
59
|
-
expect(runner.errors.size).to eq(1)
|
60
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:4 - not use default route")
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should no not use default route" do
|
64
|
-
content = <<-EOF
|
65
|
-
RailsBestpracticesCom::Application.routes.draw do |map|
|
66
|
-
resources :posts
|
67
|
-
end
|
68
|
-
EOF
|
69
|
-
runner.review('config/routes.rb', content)
|
70
|
-
expect(runner.errors.size).to eq(0)
|
21
|
+
it "should no not use default route" do
|
22
|
+
content = <<-EOF
|
23
|
+
RailsBestpracticesCom::Application.routes.draw do |map|
|
24
|
+
resources :posts
|
71
25
|
end
|
26
|
+
EOF
|
27
|
+
runner.review('config/routes.rb', content)
|
28
|
+
expect(runner.errors.size).to eq(0)
|
29
|
+
end
|
72
30
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
31
|
+
it "should not check ignored files" do
|
32
|
+
runner = Core::Runner.new(reviews: NotUseDefaultRouteReview.new(ignored_files: /config\/routes\.rb/))
|
33
|
+
content = <<-EOF
|
34
|
+
RailsBestpracticesCom::Application.routes.draw do |map|
|
35
|
+
resources :posts
|
78
36
|
|
79
|
-
|
80
|
-
end
|
81
|
-
EOF
|
82
|
-
runner.review('config/routes.rb', content)
|
83
|
-
expect(runner.errors.size).to eq(0)
|
37
|
+
match ':controller(/:action(/:id(.:format)))'
|
84
38
|
end
|
39
|
+
EOF
|
40
|
+
runner.review('config/routes.rb', content)
|
41
|
+
expect(runner.errors.size).to eq(0)
|
85
42
|
end
|
86
43
|
end
|
87
44
|
end
|
@@ -5,174 +5,65 @@ module RailsBestPractices
|
|
5
5
|
describe OveruseRouteCustomizationsReview do
|
6
6
|
let(:runner) { Core::Runner.new(reviews: OveruseRouteCustomizationsReview.new) }
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
17
|
-
EOF
|
18
|
-
runner.review('config/routes.rb', content)
|
19
|
-
expect(runner.errors.size).to eq(1)
|
20
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:2 - overuse route customizations (customize_count > 3)")
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should overuse route customizations with member" do
|
24
|
-
content = <<-EOF
|
25
|
-
ActionController::Routing::Routes.draw do |map|
|
26
|
-
map.resources :posts, member: { create_comment: :post,
|
27
|
-
update_comment: :update,
|
28
|
-
delete_comment: :delete,
|
29
|
-
disable_comment: :post }
|
30
|
-
end
|
31
|
-
EOF
|
32
|
-
runner.review('config/routes.rb', content)
|
33
|
-
expect(runner.errors.size).to eq(1)
|
34
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:2 - overuse route customizations (customize_count > 3)")
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should overuse route customizations with collection" do
|
38
|
-
content = <<-EOF
|
39
|
-
ActionController::Routing::Routes.draw do |map|
|
40
|
-
map.resources :posts, collection: { list_comments: :get,
|
41
|
-
update_comments: :get,
|
42
|
-
delete_comments: :get,
|
43
|
-
disable_comments: :get }
|
44
|
-
end
|
45
|
-
EOF
|
46
|
-
runner.review('config/routes.rb', content)
|
47
|
-
expect(runner.errors.size).to eq(1)
|
48
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:2 - overuse route customizations (customize_count > 3)")
|
49
|
-
end
|
50
|
-
|
51
|
-
it "should overuse route customizations with hash member and collection" do
|
52
|
-
content = <<-EOF
|
53
|
-
ActionController::Routing::Routes.draw do |map|
|
54
|
-
map.resources :categories do |category|
|
55
|
-
category.resources :posts, member: { create_comment: :post,
|
56
|
-
update_comment: :update,
|
57
|
-
delete_comment: :delete },
|
58
|
-
collection: { comments: :get }
|
59
|
-
end
|
60
|
-
end
|
61
|
-
EOF
|
62
|
-
runner.review('config/routes.rb', content)
|
63
|
-
expect(runner.errors.size).to eq(1)
|
64
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - overuse route customizations (customize_count > 3)")
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should overuse route customizations with array member and collection" do
|
68
|
-
content = <<-EOF
|
69
|
-
ActionController::Routing::Routes.draw do |map|
|
70
|
-
map.resources :categories do |category|
|
71
|
-
category.resources :posts, member: [:create_comment, :update_comment, :delete_comment],
|
72
|
-
collection: [:comments]
|
8
|
+
it "should overuse route customizations" do
|
9
|
+
content = <<-EOF
|
10
|
+
RailsBestpracticesCom::Application.routes.draw do
|
11
|
+
resources :posts do
|
12
|
+
member do
|
13
|
+
post :create_comment
|
14
|
+
update :update_comment
|
15
|
+
delete :delete_comment
|
73
16
|
end
|
74
|
-
end
|
75
|
-
EOF
|
76
|
-
runner.review('config/routes.rb', content)
|
77
|
-
expect(runner.errors.size).to eq(1)
|
78
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:3 - overuse route customizations (customize_count > 3)")
|
79
|
-
end
|
80
|
-
|
81
|
-
it "should not overuse route customizations without customization" do
|
82
|
-
content = <<-EOF
|
83
|
-
ActionController::Routing::Routes.draw do |map|
|
84
|
-
map.resources :posts
|
85
|
-
end
|
86
|
-
EOF
|
87
|
-
runner.review('config/routes.rb', content)
|
88
|
-
expect(runner.errors.size).to eq(0)
|
89
|
-
end
|
90
17
|
|
91
|
-
|
92
|
-
|
93
|
-
ActionController::Routing::Routes.draw do |map|
|
94
|
-
map.resources :posts, member: { vote: :post }
|
95
|
-
end
|
96
|
-
EOF
|
97
|
-
runner.review('config/routes.rb', content)
|
98
|
-
expect(runner.errors.size).to eq(0)
|
99
|
-
end
|
100
|
-
|
101
|
-
it "should not raise error for constants in routes" do
|
102
|
-
content =<<-EOF
|
103
|
-
IP_PATTERN = /(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}))|[\d]+/.freeze
|
104
|
-
map.resources :vlans do |vlan|
|
105
|
-
vlan.resources :ip_ranges, member: {move: [:get, :post]} do |range|
|
106
|
-
range.resources :ips, requirements: { id: IP_PATTERN }
|
18
|
+
collection do
|
19
|
+
get :comments
|
107
20
|
end
|
108
21
|
end
|
109
|
-
EOF
|
110
|
-
runner.review('config/routes.rb', content)
|
111
|
-
expect(runner.errors.size).to eq(0)
|
112
22
|
end
|
23
|
+
EOF
|
24
|
+
runner.review('config/routes.rb', content)
|
25
|
+
expect(runner.errors.size).to eq(1)
|
26
|
+
expect(runner.errors[0].to_s).to eq("config/routes.rb:2 - overuse route customizations (customize_count > 3)")
|
113
27
|
end
|
114
28
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
delete :delete_comment
|
124
|
-
end
|
125
|
-
|
126
|
-
collection do
|
127
|
-
get :comments
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
EOF
|
132
|
-
runner.review('config/routes.rb', content)
|
133
|
-
expect(runner.errors.size).to eq(1)
|
134
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:2 - overuse route customizations (customize_count > 3)")
|
135
|
-
end
|
136
|
-
|
137
|
-
it "should overuse route customizations another way" do
|
138
|
-
content = <<-EOF
|
139
|
-
RailsBestpracticesCom::Application.routes.draw do
|
140
|
-
resources :posts do
|
141
|
-
post :create_comment, on: :member
|
142
|
-
update :update_comment, on: :member
|
143
|
-
delete :delete_comment, on: :member
|
144
|
-
get :comments, on: :collection
|
145
|
-
end
|
29
|
+
it "should overuse route customizations another way" do
|
30
|
+
content = <<-EOF
|
31
|
+
RailsBestpracticesCom::Application.routes.draw do
|
32
|
+
resources :posts do
|
33
|
+
post :create_comment, on: :member
|
34
|
+
update :update_comment, on: :member
|
35
|
+
delete :delete_comment, on: :member
|
36
|
+
get :comments, on: :collection
|
146
37
|
end
|
147
|
-
EOF
|
148
|
-
runner.review('config/routes.rb', content)
|
149
|
-
expect(runner.errors.size).to eq(1)
|
150
|
-
expect(runner.errors[0].to_s).to eq("config/routes.rb:2 - overuse route customizations (customize_count > 3)")
|
151
38
|
end
|
39
|
+
EOF
|
40
|
+
runner.review('config/routes.rb', content)
|
41
|
+
expect(runner.errors.size).to eq(1)
|
42
|
+
expect(runner.errors[0].to_s).to eq("config/routes.rb:2 - overuse route customizations (customize_count > 3)")
|
43
|
+
end
|
152
44
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
end
|
158
|
-
EOF
|
159
|
-
runner.review('config/routes.rb', content)
|
160
|
-
expect(runner.errors.size).to eq(0)
|
45
|
+
it "should not overuse route customizations without customization" do
|
46
|
+
content = <<-EOF
|
47
|
+
RailsBestpracticesCom::Application.routes.draw do
|
48
|
+
resources :posts
|
161
49
|
end
|
50
|
+
EOF
|
51
|
+
runner.review('config/routes.rb', content)
|
52
|
+
expect(runner.errors.size).to eq(0)
|
53
|
+
end
|
162
54
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
end
|
55
|
+
it "should not overuse route customizations when customize route is only one" do
|
56
|
+
content = <<-EOF
|
57
|
+
RailsBestpracticesCom::Application.routes.draw do
|
58
|
+
resources :posts do
|
59
|
+
member do
|
60
|
+
post :vote
|
170
61
|
end
|
171
62
|
end
|
172
|
-
EOF
|
173
|
-
runner.review('config/routes.rb', content)
|
174
|
-
expect(runner.errors.size).to eq(0)
|
175
63
|
end
|
64
|
+
EOF
|
65
|
+
runner.review('config/routes.rb', content)
|
66
|
+
expect(runner.errors.size).to eq(0)
|
176
67
|
end
|
177
68
|
|
178
69
|
it "should not check ignored files" do
|