rails_best_practices 1.20.0 → 1.20.1
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/Gemfile +3 -1
- data/Gemfile.lock +30 -26
- data/Guardfile +2 -0
- data/Rakefile +2 -0
- data/lib/rails_best_practices.rb +1 -2
- data/lib/rails_best_practices/analyzer.rb +56 -46
- data/lib/rails_best_practices/core/check.rb +39 -32
- data/lib/rails_best_practices/core/checks_loader.rb +8 -6
- data/lib/rails_best_practices/core/configs.rb +1 -2
- data/lib/rails_best_practices/core/controllers.rb +1 -2
- data/lib/rails_best_practices/core/error.rb +1 -1
- data/lib/rails_best_practices/core/helpers.rb +1 -2
- data/lib/rails_best_practices/core/mailers.rb +1 -2
- data/lib/rails_best_practices/core/methods.rb +21 -16
- data/lib/rails_best_practices/core/model_associations.rb +9 -4
- data/lib/rails_best_practices/core/models.rb +1 -2
- data/lib/rails_best_practices/core/modules.rb +1 -1
- data/lib/rails_best_practices/core/routes.rb +2 -2
- data/lib/rails_best_practices/core/runner.rb +29 -33
- data/lib/rails_best_practices/lexicals/long_line_check.rb +7 -3
- data/lib/rails_best_practices/option_parser.rb +17 -6
- data/lib/rails_best_practices/prepares.rb +1 -1
- data/lib/rails_best_practices/prepares/controller_prepare.rb +15 -3
- data/lib/rails_best_practices/prepares/gemfile_prepare.rb +1 -1
- data/lib/rails_best_practices/prepares/helper_prepare.rb +6 -1
- data/lib/rails_best_practices/prepares/initializer_prepare.rb +2 -2
- data/lib/rails_best_practices/prepares/mailer_prepare.rb +1 -0
- data/lib/rails_best_practices/prepares/model_prepare.rb +52 -12
- data/lib/rails_best_practices/prepares/route_prepare.rb +16 -10
- data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +15 -13
- data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +34 -29
- data/lib/rails_best_practices/reviews/check_destroy_return_value_review.rb +14 -5
- data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +19 -8
- data/lib/rails_best_practices/reviews/hash_syntax_review.rb +5 -5
- data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +4 -4
- data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +7 -8
- data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +6 -6
- data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +1 -1
- data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +6 -7
- data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +7 -8
- data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +12 -10
- data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +1 -2
- data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +5 -5
- data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +5 -2
- data/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +6 -3
- data/lib/rails_best_practices/reviews/remove_unused_methods_in_helpers_review.rb +6 -4
- data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +29 -9
- data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +3 -3
- data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +17 -15
- data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +1 -2
- data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +3 -3
- data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -1
- data/lib/rails_best_practices/reviews/use_model_association_review.rb +5 -5
- data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +9 -8
- data/lib/rails_best_practices/reviews/use_observer_review.rb +9 -9
- data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +26 -26
- data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +8 -7
- data/lib/rails_best_practices/reviews/use_scope_access_review.rb +17 -15
- data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +2 -1
- data/lib/rails_best_practices/version.rb +1 -1
- data/rails_best_practices.gemspec +35 -36
- data/spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb +1 -2
- data/spec/rails_best_practices/analyzer_spec.rb +73 -42
- data/spec/rails_best_practices/core/check_spec.rb +5 -5
- data/spec/rails_best_practices/core/checks_loader_spec.rb +3 -3
- data/spec/rails_best_practices/core/configs_spec.rb +1 -1
- data/spec/rails_best_practices/core/controllers_spec.rb +1 -1
- data/spec/rails_best_practices/core/error_spec.rb +21 -21
- data/spec/rails_best_practices/core/except_methods_spec.rb +7 -7
- data/spec/rails_best_practices/core/gems_spec.rb +4 -4
- data/spec/rails_best_practices/core/helpers_spec.rb +1 -1
- data/spec/rails_best_practices/core/klasses_spec.rb +3 -3
- data/spec/rails_best_practices/core/mailers_spec.rb +1 -1
- data/spec/rails_best_practices/core/methods_spec.rb +6 -6
- data/spec/rails_best_practices/core/model_associations_spec.rb +10 -6
- data/spec/rails_best_practices/core/model_attributes_spec.rb +4 -4
- data/spec/rails_best_practices/core/models_spec.rb +1 -1
- data/spec/rails_best_practices/core/modules_spec.rb +5 -5
- data/spec/rails_best_practices/core/routes_spec.rb +5 -5
- data/spec/rails_best_practices/core/runner_spec.rb +9 -7
- data/spec/rails_best_practices/core_ext/erubis_spec.rb +10 -10
- data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +11 -10
- data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +6 -6
- data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +6 -6
- data/spec/rails_best_practices/prepares/config_prepare_spec.rb +2 -2
- data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +18 -10
- data/spec/rails_best_practices/prepares/gemfile_prepare_spec.rb +2 -2
- data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +3 -3
- data/spec/rails_best_practices/prepares/initializer_prepare_spec.rb +3 -3
- data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +2 -2
- data/spec/rails_best_practices/prepares/model_prepare_spec.rb +79 -43
- data/spec/rails_best_practices/prepares/route_prepare_spec.rb +138 -77
- data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +2 -2
- data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +18 -12
- data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +28 -22
- data/spec/rails_best_practices/reviews/check_destroy_return_value_review_spec.rb +15 -13
- data/spec/rails_best_practices/reviews/check_save_return_value_review_spec.rb +31 -21
- data/spec/rails_best_practices/reviews/default_scope_is_evil_review_spec.rb +6 -6
- data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +5 -5
- data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +9 -9
- data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +7 -7
- data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +9 -9
- data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +21 -14
- data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +6 -6
- data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +11 -6
- data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +26 -16
- data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +7 -7
- data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +9 -7
- data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +9 -9
- data/spec/rails_best_practices/reviews/not_rescue_exception_review_spec.rb +9 -9
- data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +5 -5
- data/spec/rails_best_practices/reviews/not_use_time_ago_in_words_review_spec.rb +7 -7
- data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +7 -7
- data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +24 -19
- data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +6 -6
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +44 -31
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +17 -12
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +46 -44
- data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +10 -8
- data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +16 -10
- data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +54 -31
- data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +9 -9
- data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +13 -13
- data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +11 -9
- data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +7 -7
- data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +21 -17
- data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +6 -6
- data/spec/rails_best_practices/reviews/use_parentheses_in_method_def_review_spec.rb +9 -7
- data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +31 -24
- data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +15 -11
- data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +14 -14
- data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +10 -8
- metadata +7 -7
@@ -5,10 +5,10 @@ require 'spec_helper'
|
|
5
5
|
module RailsBestPractices
|
6
6
|
module Prepares
|
7
7
|
describe RoutePrepare do
|
8
|
-
let(:runner) { Core::Runner.new(prepares:
|
8
|
+
let(:runner) { Core::Runner.new(prepares: described_class.new) }
|
9
9
|
|
10
10
|
context 'resources' do
|
11
|
-
it '
|
11
|
+
it 'adds resources route' do
|
12
12
|
content = <<-EOF
|
13
13
|
RailsBestPracticesCom::Application.routes.draw do
|
14
14
|
resources :posts
|
@@ -17,10 +17,20 @@ module RailsBestPractices
|
|
17
17
|
runner.prepare('config/routes.rb', content)
|
18
18
|
routes = Prepares.routes
|
19
19
|
expect(routes.size).to eq(7)
|
20
|
-
expect(routes.map(&:to_s)).to eq(
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
expect(routes.map(&:to_s)).to eq(
|
21
|
+
[
|
22
|
+
'PostsController#index',
|
23
|
+
'PostsController#show',
|
24
|
+
'PostsController#new',
|
25
|
+
'PostsController#create',
|
26
|
+
'PostsController#edit',
|
27
|
+
'PostsController#update',
|
28
|
+
'PostsController#destroy'
|
29
|
+
]
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'adds multiple resources route' do
|
24
34
|
content = <<-EOF
|
25
35
|
RailsBestPracticesCom::Application.routes.draw do
|
26
36
|
resources :posts, :users
|
@@ -31,7 +41,7 @@ module RailsBestPractices
|
|
31
41
|
expect(routes.size).to eq(14)
|
32
42
|
end
|
33
43
|
|
34
|
-
it '
|
44
|
+
it 'adds resources route with explict controller' do
|
35
45
|
content = <<-EOF
|
36
46
|
RailsBestPracticesCom::Application.routes.draw do
|
37
47
|
resources :posts, controller: :blog_posts
|
@@ -40,10 +50,20 @@ module RailsBestPractices
|
|
40
50
|
runner.prepare('config/routes.rb', content)
|
41
51
|
routes = Prepares.routes
|
42
52
|
expect(routes.size).to eq(7)
|
43
|
-
expect(routes.map(&:to_s)).to eq(
|
44
|
-
|
45
|
-
|
46
|
-
|
53
|
+
expect(routes.map(&:to_s)).to eq(
|
54
|
+
[
|
55
|
+
'BlogPostsController#index',
|
56
|
+
'BlogPostsController#show',
|
57
|
+
'BlogPostsController#new',
|
58
|
+
'BlogPostsController#create',
|
59
|
+
'BlogPostsController#edit',
|
60
|
+
'BlogPostsController#update',
|
61
|
+
'BlogPostsController#destroy'
|
62
|
+
]
|
63
|
+
)
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'adds resources route with only option' do
|
47
67
|
content = <<-EOF
|
48
68
|
RailsBestPracticesCom::Application.routes.draw do
|
49
69
|
resources :posts, only: [:index, :show, :new, :create]
|
@@ -52,10 +72,12 @@ module RailsBestPractices
|
|
52
72
|
runner.prepare('config/routes.rb', content)
|
53
73
|
routes = Prepares.routes
|
54
74
|
expect(routes.size).to eq(4)
|
55
|
-
expect(routes.map(&:to_s)).to eq(
|
75
|
+
expect(routes.map(&:to_s)).to eq(
|
76
|
+
['PostsController#index', 'PostsController#show', 'PostsController#new', 'PostsController#create']
|
77
|
+
)
|
56
78
|
end
|
57
79
|
|
58
|
-
it '
|
80
|
+
it 'adds resources route with except option' do
|
59
81
|
content = <<-EOF
|
60
82
|
RailsBestPracticesCom::Application.routes.draw do
|
61
83
|
resources :posts, except: [:edit, :update, :destroy]
|
@@ -64,10 +86,12 @@ module RailsBestPractices
|
|
64
86
|
runner.prepare('config/routes.rb', content)
|
65
87
|
routes = Prepares.routes
|
66
88
|
expect(routes.size).to eq(4)
|
67
|
-
expect(routes.map(&:to_s)).to eq(
|
89
|
+
expect(routes.map(&:to_s)).to eq(
|
90
|
+
['PostsController#index', 'PostsController#show', 'PostsController#new', 'PostsController#create']
|
91
|
+
)
|
68
92
|
end
|
69
93
|
|
70
|
-
it '
|
94
|
+
it 'does not add resources routes with only: :none' do
|
71
95
|
content = <<-EOF
|
72
96
|
RailsBestPracticesCom::Application.routes.draw do
|
73
97
|
resources :posts, only: :none
|
@@ -78,7 +102,7 @@ module RailsBestPractices
|
|
78
102
|
expect(routes.size).to eq(0)
|
79
103
|
end
|
80
104
|
|
81
|
-
it '
|
105
|
+
it 'does not add resources routes with except: :all' do
|
82
106
|
content = <<-EOF
|
83
107
|
RailsBestPracticesCom::Application.routes.draw do
|
84
108
|
resources :posts, except: :all
|
@@ -89,7 +113,7 @@ module RailsBestPractices
|
|
89
113
|
expect(routes.size).to eq(0)
|
90
114
|
end
|
91
115
|
|
92
|
-
it '
|
116
|
+
it 'adds resources routes with members' do
|
93
117
|
content = <<-EOF
|
94
118
|
RailsBestPracticesCom::Application.routes.draw do
|
95
119
|
namespace :admin do
|
@@ -104,15 +128,17 @@ module RailsBestPractices
|
|
104
128
|
EOF
|
105
129
|
runner.prepare('config/routes.rb', content)
|
106
130
|
routes = Prepares.routes
|
107
|
-
expect(routes.map(&:to_s)).to eq(
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
131
|
+
expect(routes.map(&:to_s)).to eq(
|
132
|
+
[
|
133
|
+
'Admin::PostsController#edit',
|
134
|
+
'Admin::PostsController#update',
|
135
|
+
'Admin::PostsController#link_to_post',
|
136
|
+
'Admin::PostsController#extra_update'
|
137
|
+
]
|
138
|
+
)
|
113
139
|
end
|
114
140
|
|
115
|
-
it '
|
141
|
+
it 'adds resources routes with members inline' do
|
116
142
|
content = <<-EOF
|
117
143
|
RailsBestPracticesCom::Application.routes.draw do
|
118
144
|
namespace :admin do
|
@@ -124,16 +150,18 @@ module RailsBestPractices
|
|
124
150
|
EOF
|
125
151
|
runner.prepare('config/routes.rb', content)
|
126
152
|
routes = Prepares.routes
|
127
|
-
expect(routes.map(&:to_s)).to eq(
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
153
|
+
expect(routes.map(&:to_s)).to eq(
|
154
|
+
[
|
155
|
+
'Admin::PostsController#edit',
|
156
|
+
'Admin::PostsController#update',
|
157
|
+
'Admin::PostsController#link_to_post',
|
158
|
+
'Admin::PostsController#extra_update',
|
159
|
+
'Admin::PostsController#retrieve'
|
160
|
+
]
|
161
|
+
)
|
162
|
+
end
|
163
|
+
|
164
|
+
it 'adds connect route' do
|
137
165
|
content = <<-EOF
|
138
166
|
ActionController::Routing::Routes.draw do |map|
|
139
167
|
map.connect 'vote', controller: "votes", action: "create", method: :post
|
@@ -144,7 +172,7 @@ module RailsBestPractices
|
|
144
172
|
expect(routes.map(&:to_s)).to eq(['VotesController#create'])
|
145
173
|
end
|
146
174
|
|
147
|
-
it '
|
175
|
+
it 'adds named route' do
|
148
176
|
content = <<-EOF
|
149
177
|
ActionController::Routing::Routes.draw do |map|
|
150
178
|
map.login '/player/login', controller: 'sessions', action: 'new', conditions: { method: :get }
|
@@ -157,7 +185,7 @@ module RailsBestPractices
|
|
157
185
|
end
|
158
186
|
|
159
187
|
context 'resource' do
|
160
|
-
it '
|
188
|
+
it 'adds resource route' do
|
161
189
|
content = <<-EOF
|
162
190
|
RailsBestPracticesCom::Application.routes.draw do
|
163
191
|
resource :posts
|
@@ -166,10 +194,19 @@ module RailsBestPractices
|
|
166
194
|
runner.prepare('config/routes.rb', content)
|
167
195
|
routes = Prepares.routes
|
168
196
|
expect(routes.size).to eq(6)
|
169
|
-
expect(routes.map(&:to_s)).to eq(
|
170
|
-
|
171
|
-
|
172
|
-
|
197
|
+
expect(routes.map(&:to_s)).to eq(
|
198
|
+
[
|
199
|
+
'PostsController#show',
|
200
|
+
'PostsController#new',
|
201
|
+
'PostsController#create',
|
202
|
+
'PostsController#edit',
|
203
|
+
'PostsController#update',
|
204
|
+
'PostsController#destroy'
|
205
|
+
]
|
206
|
+
)
|
207
|
+
end
|
208
|
+
|
209
|
+
it 'adds multiple resource route' do
|
173
210
|
content = <<-EOF
|
174
211
|
RailsBestPracticesCom::Application.routes.draw do
|
175
212
|
resource :posts, :users
|
@@ -180,7 +217,7 @@ module RailsBestPractices
|
|
180
217
|
expect(routes.size).to eq(12)
|
181
218
|
end
|
182
219
|
|
183
|
-
it '
|
220
|
+
it 'adds resource route with only option' do
|
184
221
|
content = <<-EOF
|
185
222
|
RailsBestPracticesCom::Application.routes.draw do
|
186
223
|
resource :posts, only: [:show, :new, :create]
|
@@ -192,7 +229,7 @@ module RailsBestPractices
|
|
192
229
|
expect(routes.map(&:to_s)).to eq(['PostsController#show', 'PostsController#new', 'PostsController#create'])
|
193
230
|
end
|
194
231
|
|
195
|
-
it '
|
232
|
+
it 'adds resource route with except option' do
|
196
233
|
content = <<-EOF
|
197
234
|
RailsBestPracticesCom::Application.routes.draw do
|
198
235
|
resource :posts, except: [:edit, :update, :destroy]
|
@@ -204,7 +241,7 @@ module RailsBestPractices
|
|
204
241
|
expect(routes.map(&:to_s)).to eq(['PostsController#show', 'PostsController#new', 'PostsController#create'])
|
205
242
|
end
|
206
243
|
|
207
|
-
it '
|
244
|
+
it 'does not add resource routes with only: :none' do
|
208
245
|
content = <<-EOF
|
209
246
|
RailsBestPracticesCom::Application.routes.draw do
|
210
247
|
resource :posts, only: :none
|
@@ -215,7 +252,7 @@ module RailsBestPractices
|
|
215
252
|
expect(routes.size).to eq(0)
|
216
253
|
end
|
217
254
|
|
218
|
-
it '
|
255
|
+
it 'does not add resource routes with except: :all' do
|
219
256
|
content = <<-EOF
|
220
257
|
RailsBestPracticesCom::Application.routes.draw do
|
221
258
|
resource :posts, except: :all
|
@@ -226,7 +263,7 @@ module RailsBestPractices
|
|
226
263
|
expect(routes.size).to eq(0)
|
227
264
|
end
|
228
265
|
|
229
|
-
it '
|
266
|
+
it 'adds resource routes with get/post/put/patch/delete routes' do
|
230
267
|
content = <<-EOF
|
231
268
|
RailsBestPracticesCom::Application.routes.draw do
|
232
269
|
resources :posts, only: [:show] do
|
@@ -246,10 +283,20 @@ module RailsBestPractices
|
|
246
283
|
runner.prepare('config/routes.rb', content)
|
247
284
|
routes = Prepares.routes
|
248
285
|
expect(routes.size).to eq(7)
|
249
|
-
expect(routes.map(&:to_s)).to eq(
|
250
|
-
|
251
|
-
|
252
|
-
|
286
|
+
expect(routes.map(&:to_s)).to eq(
|
287
|
+
[
|
288
|
+
'PostsController#show',
|
289
|
+
'PostsController#list',
|
290
|
+
'PostsController#search',
|
291
|
+
'PostsController#available',
|
292
|
+
'PostsController#create',
|
293
|
+
'PostsController#update',
|
294
|
+
'PostsController#update'
|
295
|
+
]
|
296
|
+
)
|
297
|
+
end
|
298
|
+
|
299
|
+
it 'adds custom resources routes with {}' do
|
253
300
|
content = <<-EOF
|
254
301
|
RailsBestPracticesCom::Application.routes.draw do
|
255
302
|
resources :posts, only: [:show] do
|
@@ -263,7 +310,7 @@ module RailsBestPractices
|
|
263
310
|
expect(routes.map(&:to_s)).to eq(['PostsController#show', 'PostsController#inactive'])
|
264
311
|
end
|
265
312
|
|
266
|
-
it '
|
313
|
+
it 'adds resources routes with get %w() routes' do
|
267
314
|
content = <<-EOF
|
268
315
|
RailsBestPracticesCom::Application.routes.draw do
|
269
316
|
resources :posts, only: [:show] do
|
@@ -276,10 +323,12 @@ module RailsBestPractices
|
|
276
323
|
runner.prepare('config/routes.rb', content)
|
277
324
|
routes = Prepares.routes
|
278
325
|
expect(routes.size).to eq(3)
|
279
|
-
expect(routes.map(&:to_s)).to eq(
|
326
|
+
expect(routes.map(&:to_s)).to eq(
|
327
|
+
['PostsController#show', 'PostsController#latest', 'PostsController#popular']
|
328
|
+
)
|
280
329
|
end
|
281
330
|
|
282
|
-
it '
|
331
|
+
it 'adds route with nested routes' do
|
283
332
|
content = <<-EOF
|
284
333
|
RailsBestPracticesCom::Application.routes.draw do
|
285
334
|
resources :posts
|
@@ -292,7 +341,7 @@ module RailsBestPractices
|
|
292
341
|
expect(routes.size).to eq(14)
|
293
342
|
end
|
294
343
|
|
295
|
-
it '
|
344
|
+
it 'adds route with namespace' do
|
296
345
|
content = <<-EOF
|
297
346
|
RailsBestPracticesCom::Application.routes.draw do
|
298
347
|
namespace :admin do
|
@@ -307,7 +356,7 @@ module RailsBestPractices
|
|
307
356
|
expect(routes.map(&:to_s)).to eq(['Admin::Test::PostsController#index'])
|
308
357
|
end
|
309
358
|
|
310
|
-
it '
|
359
|
+
it 'adds route with namespace, but without resources' do
|
311
360
|
content = <<-EOF
|
312
361
|
RailsBestPracticesCom::Appllication.routes.draw do
|
313
362
|
namespace :something do
|
@@ -318,10 +367,12 @@ module RailsBestPractices
|
|
318
367
|
EOF
|
319
368
|
runner.prepare('config/routes.rb', content)
|
320
369
|
routes = Prepares.routes
|
321
|
-
expect(routes.map(&:to_s)).to eq(
|
370
|
+
expect(routes.map(&:to_s)).to eq(
|
371
|
+
['SomethingController#route_one', 'SomethingController#route_two', 'SomethingController#custom_action']
|
372
|
+
)
|
322
373
|
end
|
323
374
|
|
324
|
-
it '
|
375
|
+
it 'adds route with scope' do
|
325
376
|
content = <<-EOF
|
326
377
|
RailsBestPracticesCom::Application.routes.draw do
|
327
378
|
scope module: "admin" do
|
@@ -341,17 +392,19 @@ module RailsBestPractices
|
|
341
392
|
EOF
|
342
393
|
runner.prepare('config/routes.rb', content)
|
343
394
|
routes = Prepares.routes
|
344
|
-
expect(routes.map(&:to_s)).to eq(
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
395
|
+
expect(routes.map(&:to_s)).to eq(
|
396
|
+
[
|
397
|
+
'Admin::PostsController#index',
|
398
|
+
'Admin::DiscussionsController#index',
|
399
|
+
'CommentsController#index',
|
400
|
+
'UsersController#show',
|
401
|
+
'UsersController#preview'
|
402
|
+
]
|
403
|
+
)
|
351
404
|
end
|
352
405
|
end
|
353
406
|
|
354
|
-
it '
|
407
|
+
it 'adds route for direct get/post' do
|
355
408
|
content = <<-EOF
|
356
409
|
RailsBestPracticesCom::Application.routes.draw do
|
357
410
|
get 'posts/show'
|
@@ -364,10 +417,18 @@ module RailsBestPractices
|
|
364
417
|
runner.prepare('config/routes.rb', content)
|
365
418
|
routes = Prepares.routes
|
366
419
|
expect(routes.size).to eq(5)
|
367
|
-
expect(routes.map(&:to_s)).to eq(
|
420
|
+
expect(routes.map(&:to_s)).to eq(
|
421
|
+
[
|
422
|
+
'PostsController#show',
|
423
|
+
'PostsController#create',
|
424
|
+
'PostsController#update',
|
425
|
+
'PostsController#destroy',
|
426
|
+
'HighVoltage::PagesController#show'
|
427
|
+
]
|
428
|
+
)
|
368
429
|
end
|
369
430
|
|
370
|
-
it '
|
431
|
+
it 'adds routes for another get/post' do
|
371
432
|
content = <<-EOF
|
372
433
|
RailsBestPracticesCom::Application.routes.draw
|
373
434
|
get "/login", to: 'sessions#new', as: :login
|
@@ -379,7 +440,7 @@ module RailsBestPractices
|
|
379
440
|
expect(routes.first.to_s).to eq('SessionsController#new')
|
380
441
|
end
|
381
442
|
|
382
|
-
it '
|
443
|
+
it 'adds match route' do
|
383
444
|
content = <<-EOF
|
384
445
|
RailsBestPracticesCom::Application.routes.draw do
|
385
446
|
match '/auth/:provider/callback' => 'authentications#create'
|
@@ -390,7 +451,7 @@ module RailsBestPractices
|
|
390
451
|
expect(routes.map(&:to_s)).to eq(['AuthenticationsController#create'])
|
391
452
|
end
|
392
453
|
|
393
|
-
it '
|
454
|
+
it 'adds match route with all actions' do
|
394
455
|
content = <<-EOF
|
395
456
|
RailsBestPracticesCom::Application.routes.draw do
|
396
457
|
match 'internal/:action/*whatever', controller: "internal"
|
@@ -401,7 +462,7 @@ module RailsBestPractices
|
|
401
462
|
expect(routes.map(&:to_s)).to eq(['InternalController#*'])
|
402
463
|
end
|
403
464
|
|
404
|
-
it '
|
465
|
+
it 'adds root route' do
|
405
466
|
content = <<-EOF
|
406
467
|
RailsBestPracticesCom::Application.routes.draw do
|
407
468
|
root to: 'home#index'
|
@@ -412,7 +473,7 @@ module RailsBestPractices
|
|
412
473
|
expect(routes.map(&:to_s)).to eq(['HomeController#index'])
|
413
474
|
end
|
414
475
|
|
415
|
-
it '
|
476
|
+
it 'adds root shortcut route' do
|
416
477
|
content = <<-EOF
|
417
478
|
RailsBestPracticesCom::Application.routes.draw do
|
418
479
|
root 'home#index'
|
@@ -423,7 +484,7 @@ module RailsBestPractices
|
|
423
484
|
expect(routes.map(&:to_s)).to eq(['HomeController#index'])
|
424
485
|
end
|
425
486
|
|
426
|
-
it '
|
487
|
+
it 'does nothing for default route' do
|
427
488
|
content = <<-EOF
|
428
489
|
RailsBestPracticesCom::Application.routes.draw do
|
429
490
|
match ':controller(/:action(/:id(.:format)))'
|
@@ -434,7 +495,7 @@ module RailsBestPractices
|
|
434
495
|
expect(routes.size).to eq(0)
|
435
496
|
end
|
436
497
|
|
437
|
-
it '
|
498
|
+
it 'does nothing for redirect' do
|
438
499
|
content = <<-EOF
|
439
500
|
RailsBestPracticesCom::Application.routes.draw do
|
440
501
|
match "/stories/:name" => redirect("/posts/%{name}")
|
@@ -446,7 +507,7 @@ module RailsBestPractices
|
|
446
507
|
expect(routes.size).to eq(0)
|
447
508
|
end
|
448
509
|
|
449
|
-
it '
|
510
|
+
it 'parses customize route in nested resources' do
|
450
511
|
content = <<-EOF
|
451
512
|
RailsBestPracticesCom::Application.routes.draw do
|
452
513
|
resources :posts do
|
@@ -460,7 +521,7 @@ module RailsBestPractices
|
|
460
521
|
expect(routes.last.to_s).to eq('PostsController#stop')
|
461
522
|
end
|
462
523
|
|
463
|
-
it '
|
524
|
+
it 'parses custom route for resource with explicit to and different action name' do
|
464
525
|
content = <<-EOF
|
465
526
|
RailsBestPracticesCom::Application.routes.draw do
|
466
527
|
resources :posts do
|
@@ -473,7 +534,7 @@ module RailsBestPractices
|
|
473
534
|
expect(routes.last.to_s).to eq('PostsController#stop')
|
474
535
|
end
|
475
536
|
|
476
|
-
it '
|
537
|
+
it 'parses custom route for resource with symbol action name' do
|
477
538
|
content = <<-EOF
|
478
539
|
RailsBestPracticesCom::Application.routes.draw do
|
479
540
|
resources :posts do
|
@@ -486,7 +547,7 @@ module RailsBestPractices
|
|
486
547
|
expect(routes.last.to_s).to eq('PostsController#stop')
|
487
548
|
end
|
488
549
|
|
489
|
-
it '
|
550
|
+
it 'does not take former resources for direct get/post' do
|
490
551
|
content = <<-EOF
|
491
552
|
RailsBestPracticesCom::Application.routes.draw do
|
492
553
|
resources :posts
|
@@ -498,7 +559,7 @@ module RailsBestPractices
|
|
498
559
|
expect(routes.last.to_s).to eq('SprintsController#stop')
|
499
560
|
end
|
500
561
|
|
501
|
-
it '
|
562
|
+
it 'does not parse wrong route' do
|
502
563
|
content = <<-EOF
|
503
564
|
RailsBestPracticesCom::Application.routes.draw do
|
504
565
|
match ':controller/:action' => '#index', as: :auto_complete
|