rails_best_practices 1.9.1 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +1 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +10 -2
- data/README.md +33 -27
- data/lib/rails_best_practices/analyzer.rb +13 -13
- data/lib/rails_best_practices/core/check.rb +7 -6
- data/lib/rails_best_practices/core/checking_visitor.rb +1 -1
- data/lib/rails_best_practices/core/runner.rb +2 -3
- data/lib/rails_best_practices/core_ext/sexp.rb +18 -17
- data/lib/rails_best_practices/lexicals.rb +1 -0
- data/lib/rails_best_practices/lexicals/long_line_check.rb +31 -0
- data/lib/rails_best_practices/prepares/config_prepare.rb +1 -1
- data/lib/rails_best_practices/reviews.rb +2 -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 +1 -1
- data/lib/rails_best_practices/reviews/hash_syntax_review.rb +63 -0
- data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +1 -1
- data/lib/rails_best_practices/reviews/move_code_into_model_review.rb +1 -1
- data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +1 -1
- data/lib/rails_best_practices/reviews/move_model_logic_into_model_review.rb +1 -1
- data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +1 -1
- data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +1 -1
- data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +15 -6
- data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +4 -2
- data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +8 -4
- 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 +52 -8
- data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +14 -2
- data/lib/rails_best_practices/reviews/use_before_filter_review.rb +8 -3
- data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +2 -1
- data/lib/rails_best_practices/reviews/use_observer_review.rb +1 -1
- data/lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb +33 -0
- data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +16 -6
- data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +9 -6
- data/lib/rails_best_practices/reviews/use_scope_access_review.rb +8 -3
- data/lib/rails_best_practices/version.rb +1 -1
- data/rails_best_practices.yml +28 -25
- data/rake_rubies.sh +1 -1
- data/spec/rails_best_practices/analyzer_spec.rb +1 -1
- data/spec/rails_best_practices/core/check_spec.rb +7 -7
- data/spec/rails_best_practices/core/checking_visitor_spec.rb +7 -7
- data/spec/rails_best_practices/core/error_spec.rb +12 -12
- data/spec/rails_best_practices/core_ext/sexp_spec.rb +103 -85
- data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +47 -0
- data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +1 -1
- data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +1 -1
- data/spec/rails_best_practices/prepares/config_prepare_spec.rb +1 -1
- data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +1 -1
- data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +1 -1
- data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +1 -1
- data/spec/rails_best_practices/prepares/model_prepare_spec.rb +4 -4
- data/spec/rails_best_practices/prepares/route_prepare_spec.rb +54 -54
- data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +6 -6
- data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +4 -4
- data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +46 -46
- data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +3 -3
- data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +67 -0
- data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +8 -8
- 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 +7 -7
- data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +1 -1
- data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +1 -1
- data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +1 -1
- data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +13 -13
- data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +2 -2
- data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +3 -3
- data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +3 -3
- data/spec/rails_best_practices/reviews/not_use_times_ago_in_words_review_spec.rb +1 -1
- data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +26 -26
- data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +11 -2
- data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +1 -1
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +8 -8
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +2 -2
- data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +25 -10
- data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +3 -3
- data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +1 -1
- data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +28 -28
- data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +4 -4
- data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +15 -7
- data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +3 -3
- data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +3 -3
- data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +3 -3
- data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +5 -5
- data/spec/rails_best_practices/reviews/use_parenthesis_in_method_def_spec.rb +41 -0
- data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +3 -3
- data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +8 -8
- data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +9 -9
- data/spec/spec_helper.rb +1 -1
- metadata +36 -29
- data/.rspec.example +0 -2
- data/.rvmrc.example +0 -2
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module RailsBestPractices
|
4
|
+
module Lexicals
|
5
|
+
describe LongLineCheck do
|
6
|
+
|
7
|
+
it "should find long lines" do
|
8
|
+
runner = Core::Runner.new(lexicals: LongLineCheck.new)
|
9
|
+
content =<<-EOF
|
10
|
+
class User < ActiveRecord::Base
|
11
|
+
# 81 Chars
|
12
|
+
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
13
|
+
# 80 Chars
|
14
|
+
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
15
|
+
end
|
16
|
+
EOF
|
17
|
+
content.gsub!("\n", "\t\n")
|
18
|
+
runner.lexical('app/models/user.rb', content)
|
19
|
+
runner.should have(1).errors
|
20
|
+
runner.errors[0].to_s.should == "app/models/user.rb:3 - line is longer than 80 characters (81 characters)"
|
21
|
+
end
|
22
|
+
it "should find long lines with own max size" do
|
23
|
+
runner = Core::Runner.new(lexicals: LongLineCheck.new('max_line_length' => 90))
|
24
|
+
content =<<-EOF
|
25
|
+
class User < ActiveRecord::Base
|
26
|
+
# 91 Chars
|
27
|
+
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
28
|
+
# 90 Chars
|
29
|
+
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
30
|
+
end
|
31
|
+
EOF
|
32
|
+
content.gsub!("\n", "\t\n")
|
33
|
+
runner.lexical('app/models/user.rb', content)
|
34
|
+
runner.should have(1).errors
|
35
|
+
runner.errors[0].to_s.should == "app/models/user.rb:3 - line is longer than 90 characters (91 characters)"
|
36
|
+
end
|
37
|
+
it "should not check non .rb files" do
|
38
|
+
runner = Core::Runner.new(lexicals: LongLineCheck.new)
|
39
|
+
content = "
|
40
|
+
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
41
|
+
"
|
42
|
+
runner.lexical('app/views/users/index.html.erb', content)
|
43
|
+
runner.should have(0).errors
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
module RailsBestPractices
|
4
4
|
module Lexicals
|
5
5
|
describe RemoveTabCheck do
|
6
|
-
let(:runner) { Core::Runner.new(:
|
6
|
+
let(:runner) { Core::Runner.new(lexicals: RemoveTabCheck.new) }
|
7
7
|
|
8
8
|
it "should remove tab" do
|
9
9
|
content =<<-EOF
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
module RailsBestPractices
|
4
4
|
module Lexicals
|
5
5
|
describe RemoveTrailingWhitespaceCheck do
|
6
|
-
let(:runner) { Core::Runner.new(:
|
6
|
+
let(:runner) { Core::Runner.new(lexicals: RemoveTrailingWhitespaceCheck.new) }
|
7
7
|
|
8
8
|
it "should remove trailing whitespace" do
|
9
9
|
content =<<-EOF
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
module RailsBestPractices
|
4
4
|
module Prepares
|
5
5
|
describe ConfigPrepare do
|
6
|
-
let(:runner) { Core::Runner.new(:
|
6
|
+
let(:runner) { Core::Runner.new(prepares: ConfigPrepare.new) }
|
7
7
|
|
8
8
|
context "configs" do
|
9
9
|
it "should parse configs" do
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
module RailsBestPractices
|
4
4
|
module Prepares
|
5
5
|
describe ControllerPrepare do
|
6
|
-
let(:runner) { Core::Runner.new(:
|
6
|
+
let(:runner) { Core::Runner.new(prepares: [ControllerPrepare.new, HelperPrepare.new]) }
|
7
7
|
before(:each) { runner.whiny = true }
|
8
8
|
|
9
9
|
context "methods" do
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
module RailsBestPractices
|
4
4
|
module Prepares
|
5
5
|
describe HelperPrepare do
|
6
|
-
let(:runner) { Core::Runner.new(:
|
6
|
+
let(:runner) { Core::Runner.new(prepares: HelperPrepare.new) }
|
7
7
|
|
8
8
|
context "methods" do
|
9
9
|
it "should parse helper methods" do
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
module RailsBestPractices
|
4
4
|
module Prepares
|
5
5
|
describe MailerPrepare do
|
6
|
-
let(:runner) { Core::Runner.new(:
|
6
|
+
let(:runner) { Core::Runner.new(prepares: MailerPrepare.new) }
|
7
7
|
|
8
8
|
it "should parse mailer names" do
|
9
9
|
content =<<-EOF
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
module RailsBestPractices
|
4
4
|
module Prepares
|
5
5
|
describe ModelPrepare do
|
6
|
-
let(:runner) { Core::Runner.new(:
|
6
|
+
let(:runner) { Core::Runner.new(prepares: ModelPrepare.new) }
|
7
7
|
|
8
8
|
before :each do
|
9
9
|
runner.whiny = true
|
@@ -267,7 +267,7 @@ module RailsBestPractices
|
|
267
267
|
it "should treat named_scope as method" do
|
268
268
|
content =<<-EOF
|
269
269
|
class Post < ActiveRecord::Base
|
270
|
-
named_scope :active, :
|
270
|
+
named_scope :active, conditions: {active: true}
|
271
271
|
end
|
272
272
|
EOF
|
273
273
|
runner.prepare("app/models/post.rb", content)
|
@@ -278,7 +278,7 @@ module RailsBestPractices
|
|
278
278
|
it "should treat scope as method" do
|
279
279
|
content =<<-EOF
|
280
280
|
class Post < ActiveRecord::Base
|
281
|
-
scope :active, where(:
|
281
|
+
scope :active, where(active: true)
|
282
282
|
end
|
283
283
|
EOF
|
284
284
|
runner.prepare("app/models/post.rb", content)
|
@@ -370,7 +370,7 @@ module RailsBestPractices
|
|
370
370
|
it "should raised for finder_sql option" do
|
371
371
|
content =<<-EOF
|
372
372
|
class EventSubscription < ActiveRecord::Base
|
373
|
-
has_many :event_notification_template, :
|
373
|
+
has_many :event_notification_template, finder_sql: ?
|
374
374
|
end
|
375
375
|
EOF
|
376
376
|
content.sub!('?', '\'SELECT event_notification_templates.* from event_notification_templates where event_type_id=#{event_type_id} and delivery_method_id=#{delivery_method_id}\'')
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
module RailsBestPractices
|
4
4
|
module Prepares
|
5
5
|
describe RoutePrepare do
|
6
|
-
let(:runner) { Core::Runner.new(:
|
6
|
+
let(:runner) { Core::Runner.new(prepares: RoutePrepare.new) }
|
7
7
|
|
8
8
|
context "rails2" do
|
9
9
|
context "resources" do
|
@@ -33,7 +33,7 @@ module RailsBestPractices
|
|
33
33
|
it "should add resources route with explict controller" do
|
34
34
|
content =<<-EOF
|
35
35
|
ActionController::Routing::Routes.draw do |map|
|
36
|
-
map.resources :posts, :
|
36
|
+
map.resources :posts, controller: :blog_posts
|
37
37
|
end
|
38
38
|
EOF
|
39
39
|
runner.prepare('config/routes.rb', content)
|
@@ -45,7 +45,7 @@ module RailsBestPractices
|
|
45
45
|
it "should add resources route with only option" do
|
46
46
|
content =<<-EOF
|
47
47
|
ActionController::Routing::Routes.draw do |map|
|
48
|
-
map.resources :posts, :
|
48
|
+
map.resources :posts, only: [:index, :show, :new, :create]
|
49
49
|
end
|
50
50
|
EOF
|
51
51
|
runner.prepare('config/routes.rb', content)
|
@@ -57,7 +57,7 @@ module RailsBestPractices
|
|
57
57
|
it "should add resources route with except option" do
|
58
58
|
content =<<-EOF
|
59
59
|
ActionController::Routing::Routes.draw do |map|
|
60
|
-
map.resources :posts, :
|
60
|
+
map.resources :posts, except: [:edit, :update, :destroy]
|
61
61
|
end
|
62
62
|
EOF
|
63
63
|
runner.prepare('config/routes.rb', content)
|
@@ -66,10 +66,10 @@ module RailsBestPractices
|
|
66
66
|
routes.map(&:to_s).should == ["PostsController#index", "PostsController#show", "PostsController#new", "PostsController#create"]
|
67
67
|
end
|
68
68
|
|
69
|
-
it "should not add resources routes with :
|
69
|
+
it "should not add resources routes with only: :none" do
|
70
70
|
content =<<-EOF
|
71
71
|
ActionController::Routing::Routes.draw do |map|
|
72
|
-
map.resources :posts, :
|
72
|
+
map.resources :posts, only: :none
|
73
73
|
end
|
74
74
|
EOF
|
75
75
|
runner.prepare('config/routes.rb', content)
|
@@ -77,10 +77,10 @@ module RailsBestPractices
|
|
77
77
|
routes.size.should == 0
|
78
78
|
end
|
79
79
|
|
80
|
-
it "should not add resources routes with :
|
80
|
+
it "should not add resources routes with except: :all" do
|
81
81
|
content =<<-EOF
|
82
82
|
ActionController::Routing::Routes.draw do |map|
|
83
|
-
map.resources :posts, :
|
83
|
+
map.resources :posts, except: :all
|
84
84
|
end
|
85
85
|
EOF
|
86
86
|
runner.prepare('config/routes.rb', content)
|
@@ -91,7 +91,7 @@ module RailsBestPractices
|
|
91
91
|
it "should add resource routes with hash collection/member routes" do
|
92
92
|
content =<<-EOF
|
93
93
|
ActionController::Routing::Routes.draw do |map|
|
94
|
-
map.resources :posts, :
|
94
|
+
map.resources :posts, only: [:show], collection: { list: :get }, member: { create: :post, update: :put, destroy: :delete }
|
95
95
|
end
|
96
96
|
EOF
|
97
97
|
runner.prepare('config/routes.rb', content)
|
@@ -103,7 +103,7 @@ module RailsBestPractices
|
|
103
103
|
it "should add resource routes with array collection/member routes" do
|
104
104
|
content =<<-EOF
|
105
105
|
ActionController::Routing::Routes.draw do |map|
|
106
|
-
map.resources :posts, :
|
106
|
+
map.resources :posts, only: [:show], collection: [:list], member: [:create, :update, :destroy]
|
107
107
|
end
|
108
108
|
EOF
|
109
109
|
runner.prepare('config/routes.rb', content)
|
@@ -130,7 +130,7 @@ module RailsBestPractices
|
|
130
130
|
ActionController::Routing::Routes.draw do |map|
|
131
131
|
map.namespace :admin do |admin|
|
132
132
|
admin.namespace :test do |test|
|
133
|
-
test.resources :posts, :
|
133
|
+
test.resources :posts, only: [:index]
|
134
134
|
end
|
135
135
|
end
|
136
136
|
end
|
@@ -168,7 +168,7 @@ module RailsBestPractices
|
|
168
168
|
it "should add resource route with only option" do
|
169
169
|
content =<<-EOF
|
170
170
|
ActionController::Routing::Routes.draw do |map|
|
171
|
-
map.resource :posts, :
|
171
|
+
map.resource :posts, only: [:show, :new, :create]
|
172
172
|
end
|
173
173
|
EOF
|
174
174
|
runner.prepare('config/routes.rb', content)
|
@@ -180,7 +180,7 @@ module RailsBestPractices
|
|
180
180
|
it "should add resource route with except option" do
|
181
181
|
content =<<-EOF
|
182
182
|
ActionController::Routing::Routes.draw do |map|
|
183
|
-
map.resource :posts, :
|
183
|
+
map.resource :posts, except: [:edit, :update, :destroy]
|
184
184
|
end
|
185
185
|
EOF
|
186
186
|
runner.prepare('config/routes.rb', content)
|
@@ -189,10 +189,10 @@ module RailsBestPractices
|
|
189
189
|
routes.map(&:to_s).should == ["PostsController#show", "PostsController#new", "PostsController#create"]
|
190
190
|
end
|
191
191
|
|
192
|
-
it "should not add resource routes with :
|
192
|
+
it "should not add resource routes with only: :none" do
|
193
193
|
content =<<-EOF
|
194
194
|
ActionController::Routing::Routes.draw do |map|
|
195
|
-
map.resource :posts, :
|
195
|
+
map.resource :posts, only: :none
|
196
196
|
end
|
197
197
|
EOF
|
198
198
|
runner.prepare('config/routes.rb', content)
|
@@ -200,10 +200,10 @@ module RailsBestPractices
|
|
200
200
|
routes.size.should == 0
|
201
201
|
end
|
202
202
|
|
203
|
-
it "should not add resource routes with :
|
203
|
+
it "should not add resource routes with except: :all" do
|
204
204
|
content =<<-EOF
|
205
205
|
ActionController::Routing::Routes.draw do |map|
|
206
|
-
map.resource :posts, :
|
206
|
+
map.resource :posts, except: :all
|
207
207
|
end
|
208
208
|
EOF
|
209
209
|
runner.prepare('config/routes.rb', content)
|
@@ -215,7 +215,7 @@ module RailsBestPractices
|
|
215
215
|
it "should add connect route" do
|
216
216
|
content =<<-EOF
|
217
217
|
ActionController::Routing::Routes.draw do |map|
|
218
|
-
map.connect 'vote', :
|
218
|
+
map.connect 'vote', controller: "votes", action: "create", method: :post
|
219
219
|
end
|
220
220
|
EOF
|
221
221
|
runner.prepare('config/routes.rb', content)
|
@@ -226,7 +226,7 @@ module RailsBestPractices
|
|
226
226
|
it "should add connect route with all actions" do
|
227
227
|
content =<<-EOF
|
228
228
|
ActionController::Routing::Routes.draw do |map|
|
229
|
-
map.connect 'internal/:action/*whatever', :
|
229
|
+
map.connect 'internal/:action/*whatever', controller: "internal"
|
230
230
|
end
|
231
231
|
EOF
|
232
232
|
runner.prepare('config/routes.rb', content)
|
@@ -237,7 +237,7 @@ module RailsBestPractices
|
|
237
237
|
it "should add named route" do
|
238
238
|
content =<<-EOF
|
239
239
|
ActionController::Routing::Routes.draw do |map|
|
240
|
-
map.login '/player/login', :
|
240
|
+
map.login '/player/login', controller: 'sessions', action: 'new', conditions: { method: :get }
|
241
241
|
end
|
242
242
|
EOF
|
243
243
|
runner.prepare('config/routes.rb', content)
|
@@ -248,8 +248,8 @@ module RailsBestPractices
|
|
248
248
|
it "should add named route with with_options" do
|
249
249
|
content =<<-EOF
|
250
250
|
ActionController::Routing::Routes.draw do |map|
|
251
|
-
map.with_options(:
|
252
|
-
session.login '/login', :
|
251
|
+
map.with_options(controller: "admin_session") do |session|
|
252
|
+
session.login '/login', action: 'new', method: :get
|
253
253
|
end
|
254
254
|
end
|
255
255
|
EOF
|
@@ -262,7 +262,7 @@ module RailsBestPractices
|
|
262
262
|
content =<<-EOF
|
263
263
|
ActionController::Routing::Routes.draw do |map|
|
264
264
|
map.resources :posts
|
265
|
-
map.stop 'sprints/stop', :
|
265
|
+
map.stop 'sprints/stop', controller: 'sprints', action: 'stop'
|
266
266
|
end
|
267
267
|
EOF
|
268
268
|
runner.prepare('config/routes.rb', content)
|
@@ -299,7 +299,7 @@ module RailsBestPractices
|
|
299
299
|
it "should add resources route with explict controller" do
|
300
300
|
content =<<-EOF
|
301
301
|
RailsBestPracticesCom::Application.routes.draw do
|
302
|
-
resources :posts, :
|
302
|
+
resources :posts, controller: :blog_posts
|
303
303
|
end
|
304
304
|
EOF
|
305
305
|
runner.prepare('config/routes.rb', content)
|
@@ -311,7 +311,7 @@ module RailsBestPractices
|
|
311
311
|
it "should add resources route with only option" do
|
312
312
|
content =<<-EOF
|
313
313
|
RailsBestPracticesCom::Application.routes.draw do
|
314
|
-
resources :posts, :
|
314
|
+
resources :posts, only: [:index, :show, :new, :create]
|
315
315
|
end
|
316
316
|
EOF
|
317
317
|
runner.prepare('config/routes.rb', content)
|
@@ -323,7 +323,7 @@ module RailsBestPractices
|
|
323
323
|
it "should add resources route with except option" do
|
324
324
|
content =<<-EOF
|
325
325
|
RailsBestPracticesCom::Application.routes.draw do
|
326
|
-
resources :posts, :
|
326
|
+
resources :posts, except: [:edit, :update, :destroy]
|
327
327
|
end
|
328
328
|
EOF
|
329
329
|
runner.prepare('config/routes.rb', content)
|
@@ -332,10 +332,10 @@ module RailsBestPractices
|
|
332
332
|
routes.map(&:to_s).should == ["PostsController#index", "PostsController#show", "PostsController#new", "PostsController#create"]
|
333
333
|
end
|
334
334
|
|
335
|
-
it "should not add resources routes with :
|
335
|
+
it "should not add resources routes with only: :none" do
|
336
336
|
content =<<-EOF
|
337
337
|
RailsBestPracticesCom::Application.routes.draw do
|
338
|
-
resources :posts, :
|
338
|
+
resources :posts, only: :none
|
339
339
|
end
|
340
340
|
EOF
|
341
341
|
runner.prepare('config/routes.rb', content)
|
@@ -343,10 +343,10 @@ module RailsBestPractices
|
|
343
343
|
routes.size.should == 0
|
344
344
|
end
|
345
345
|
|
346
|
-
it "should not add resources routes with :
|
346
|
+
it "should not add resources routes with except: :all" do
|
347
347
|
content =<<-EOF
|
348
348
|
RailsBestPracticesCom::Application.routes.draw do
|
349
|
-
resources :posts, :
|
349
|
+
resources :posts, except: :all
|
350
350
|
end
|
351
351
|
EOF
|
352
352
|
runner.prepare('config/routes.rb', content)
|
@@ -357,7 +357,7 @@ module RailsBestPractices
|
|
357
357
|
it "should add connect route" do
|
358
358
|
content =<<-EOF
|
359
359
|
ActionController::Routing::Routes.draw do |map|
|
360
|
-
map.connect 'vote', :
|
360
|
+
map.connect 'vote', controller: "votes", action: "create", method: :post
|
361
361
|
end
|
362
362
|
EOF
|
363
363
|
runner.prepare('config/routes.rb', content)
|
@@ -368,7 +368,7 @@ module RailsBestPractices
|
|
368
368
|
it "should add named route" do
|
369
369
|
content =<<-EOF
|
370
370
|
ActionController::Routing::Routes.draw do |map|
|
371
|
-
map.login '/player/login', :
|
371
|
+
map.login '/player/login', controller: 'sessions', action: 'new', conditions: { method: :get }
|
372
372
|
end
|
373
373
|
EOF
|
374
374
|
runner.prepare('config/routes.rb', content)
|
@@ -404,7 +404,7 @@ module RailsBestPractices
|
|
404
404
|
it "should add resource route with only option" do
|
405
405
|
content =<<-EOF
|
406
406
|
RailsBestPracticesCom::Application.routes.draw do
|
407
|
-
resource :posts, :
|
407
|
+
resource :posts, only: [:show, :new, :create]
|
408
408
|
end
|
409
409
|
EOF
|
410
410
|
runner.prepare('config/routes.rb', content)
|
@@ -416,7 +416,7 @@ module RailsBestPractices
|
|
416
416
|
it "should add resource route with except option" do
|
417
417
|
content =<<-EOF
|
418
418
|
RailsBestPracticesCom::Application.routes.draw do
|
419
|
-
resource :posts, :
|
419
|
+
resource :posts, except: [:edit, :update, :destroy]
|
420
420
|
end
|
421
421
|
EOF
|
422
422
|
runner.prepare('config/routes.rb', content)
|
@@ -425,10 +425,10 @@ module RailsBestPractices
|
|
425
425
|
routes.map(&:to_s).should == ["PostsController#show", "PostsController#new", "PostsController#create"]
|
426
426
|
end
|
427
427
|
|
428
|
-
it "should not add resource routes with :
|
428
|
+
it "should not add resource routes with only: :none" do
|
429
429
|
content =<<-EOF
|
430
430
|
RailsBestPracticesCom::Application.routes.draw do
|
431
|
-
resource :posts, :
|
431
|
+
resource :posts, only: :none
|
432
432
|
end
|
433
433
|
EOF
|
434
434
|
runner.prepare('config/routes.rb', content)
|
@@ -436,10 +436,10 @@ module RailsBestPractices
|
|
436
436
|
routes.size.should == 0
|
437
437
|
end
|
438
438
|
|
439
|
-
it "should not add resource routes with :
|
439
|
+
it "should not add resource routes with except: :all" do
|
440
440
|
content =<<-EOF
|
441
441
|
RailsBestPracticesCom::Application.routes.draw do
|
442
|
-
resource :posts, :
|
442
|
+
resource :posts, except: :all
|
443
443
|
end
|
444
444
|
EOF
|
445
445
|
runner.prepare('config/routes.rb', content)
|
@@ -450,13 +450,13 @@ module RailsBestPractices
|
|
450
450
|
it "should add resource routes with get/post/put/delete routes" do
|
451
451
|
content =<<-EOF
|
452
452
|
RailsBestPracticesCom::Application.routes.draw do
|
453
|
-
resources :posts, :
|
454
|
-
get :list, :
|
453
|
+
resources :posts, only: [:show] do
|
454
|
+
get :list, on: :collection
|
455
455
|
collection do
|
456
456
|
get :search
|
457
457
|
match :available
|
458
458
|
end
|
459
|
-
post :create, :
|
459
|
+
post :create, on: :member
|
460
460
|
member do
|
461
461
|
put :update
|
462
462
|
end
|
@@ -472,7 +472,7 @@ module RailsBestPractices
|
|
472
472
|
it "should add custom resources routes with {}" do
|
473
473
|
content =<<-EOF
|
474
474
|
RailsBestPracticesCom::Application.routes.draw do
|
475
|
-
resources :posts, :
|
475
|
+
resources :posts, only: [:show] { get :inactive, on: :collection }
|
476
476
|
end
|
477
477
|
EOF
|
478
478
|
runner.prepare('config/routes.rb', content)
|
@@ -484,7 +484,7 @@ module RailsBestPractices
|
|
484
484
|
it "should add resources routes with get %w() routes" do
|
485
485
|
content =<<-EOF
|
486
486
|
RailsBestPracticesCom::Application.routes.draw do
|
487
|
-
resources :posts, :
|
487
|
+
resources :posts, only: [:show] do
|
488
488
|
collection do
|
489
489
|
get *%w(latest popular)
|
490
490
|
end
|
@@ -515,7 +515,7 @@ module RailsBestPractices
|
|
515
515
|
RailsBestPracticesCom::Application.routes.draw do
|
516
516
|
namespace :admin do
|
517
517
|
namespace :test do
|
518
|
-
resources :posts, :
|
518
|
+
resources :posts, only: [:index]
|
519
519
|
end
|
520
520
|
end
|
521
521
|
end
|
@@ -530,7 +530,7 @@ module RailsBestPractices
|
|
530
530
|
RailsBestPracticesCom::Appllication.routes.draw do
|
531
531
|
namespace :something do
|
532
532
|
get *%w(route_one route_two)
|
533
|
-
get :route_three, :
|
533
|
+
get :route_three, action: "custom_action"
|
534
534
|
end
|
535
535
|
end
|
536
536
|
EOF
|
@@ -542,17 +542,17 @@ module RailsBestPractices
|
|
542
542
|
it "should add route with scope" do
|
543
543
|
content =<<-EOF
|
544
544
|
RailsBestPracticesCom::Application.routes.draw do
|
545
|
-
scope :
|
546
|
-
resources :posts, :
|
545
|
+
scope module: "admin" do
|
546
|
+
resources :posts, only: [:index]
|
547
547
|
end
|
548
|
-
resources :discussions, :
|
548
|
+
resources :discussions, only: [:index], module: "admin"
|
549
549
|
scope "/admin" do
|
550
|
-
resources :comments, :
|
550
|
+
resources :comments, only: [:index]
|
551
551
|
end
|
552
552
|
scope "/:username", controller: :users do
|
553
553
|
get '/' => :show
|
554
554
|
scope 'topic' do
|
555
|
-
get 'preview', :
|
555
|
+
get 'preview', as: 'preview_user', action: 'preview'
|
556
556
|
end
|
557
557
|
end
|
558
558
|
end
|
@@ -576,7 +576,7 @@ module RailsBestPractices
|
|
576
576
|
post '/posts' => 'posts#create'
|
577
577
|
put '/posts/:id' => 'posts#update'
|
578
578
|
delete '/post/:id' => 'posts#destroy'
|
579
|
-
get '/agb' => 'high_voltage/pages#show', :
|
579
|
+
get '/agb' => 'high_voltage/pages#show', id: 'agb'
|
580
580
|
end
|
581
581
|
EOF
|
582
582
|
runner.prepare('config/routes.rb', content)
|
@@ -611,7 +611,7 @@ module RailsBestPractices
|
|
611
611
|
it "should add match route with all actions" do
|
612
612
|
content =<<-EOF
|
613
613
|
RailsBestPracticesCom::Application.routes.draw do
|
614
|
-
match 'internal/:action/*whatever', :
|
614
|
+
match 'internal/:action/*whatever', controller: "internal"
|
615
615
|
end
|
616
616
|
EOF
|
617
617
|
runner.prepare('config/routes.rb', content)
|
@@ -622,7 +622,7 @@ module RailsBestPractices
|
|
622
622
|
it "should add root route" do
|
623
623
|
content =<<-EOF
|
624
624
|
RailsBestPracticesCom::Application.routes.draw do
|
625
|
-
root :
|
625
|
+
root to: 'home#index'
|
626
626
|
end
|
627
627
|
EOF
|
628
628
|
runner.prepare('config/routes.rb', content)
|
@@ -682,7 +682,7 @@ module RailsBestPractices
|
|
682
682
|
it "should not parse wrong route" do
|
683
683
|
content =<<-EOF
|
684
684
|
RailsBestPracticesCom::Application.routes.draw do
|
685
|
-
match ':controller/:action' => '#index', :
|
685
|
+
match ':controller/:action' => '#index', as: :auto_complete
|
686
686
|
end
|
687
687
|
EOF
|
688
688
|
runner.prepare('config/routes.rb', content)
|