rails_best_practices 1.9.1 → 1.10.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.
Files changed (91) hide show
  1. data/.rvmrc +1 -1
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +10 -2
  4. data/README.md +33 -27
  5. data/lib/rails_best_practices/analyzer.rb +13 -13
  6. data/lib/rails_best_practices/core/check.rb +7 -6
  7. data/lib/rails_best_practices/core/checking_visitor.rb +1 -1
  8. data/lib/rails_best_practices/core/runner.rb +2 -3
  9. data/lib/rails_best_practices/core_ext/sexp.rb +18 -17
  10. data/lib/rails_best_practices/lexicals.rb +1 -0
  11. data/lib/rails_best_practices/lexicals/long_line_check.rb +31 -0
  12. data/lib/rails_best_practices/prepares/config_prepare.rb +1 -1
  13. data/lib/rails_best_practices/reviews.rb +2 -0
  14. data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +2 -2
  15. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +1 -1
  16. data/lib/rails_best_practices/reviews/hash_syntax_review.rb +63 -0
  17. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +1 -1
  18. data/lib/rails_best_practices/reviews/move_code_into_model_review.rb +1 -1
  19. data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +1 -1
  20. data/lib/rails_best_practices/reviews/move_model_logic_into_model_review.rb +1 -1
  21. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +1 -1
  22. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +1 -1
  23. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +15 -6
  24. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +4 -2
  25. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +8 -4
  26. data/lib/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review.rb +2 -1
  27. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +52 -8
  28. data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +14 -2
  29. data/lib/rails_best_practices/reviews/use_before_filter_review.rb +8 -3
  30. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +2 -1
  31. data/lib/rails_best_practices/reviews/use_observer_review.rb +1 -1
  32. data/lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb +33 -0
  33. data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +16 -6
  34. data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +9 -6
  35. data/lib/rails_best_practices/reviews/use_scope_access_review.rb +8 -3
  36. data/lib/rails_best_practices/version.rb +1 -1
  37. data/rails_best_practices.yml +28 -25
  38. data/rake_rubies.sh +1 -1
  39. data/spec/rails_best_practices/analyzer_spec.rb +1 -1
  40. data/spec/rails_best_practices/core/check_spec.rb +7 -7
  41. data/spec/rails_best_practices/core/checking_visitor_spec.rb +7 -7
  42. data/spec/rails_best_practices/core/error_spec.rb +12 -12
  43. data/spec/rails_best_practices/core_ext/sexp_spec.rb +103 -85
  44. data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +47 -0
  45. data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +1 -1
  46. data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +1 -1
  47. data/spec/rails_best_practices/prepares/config_prepare_spec.rb +1 -1
  48. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +1 -1
  49. data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +1 -1
  50. data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +1 -1
  51. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +4 -4
  52. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +54 -54
  53. data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +6 -6
  54. data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +4 -4
  55. data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +46 -46
  56. data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +3 -3
  57. data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +67 -0
  58. data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +8 -8
  59. data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +9 -9
  60. data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +7 -7
  61. data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +1 -1
  62. data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +1 -1
  63. data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +1 -1
  64. data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +13 -13
  65. data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +2 -2
  66. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +3 -3
  67. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +3 -3
  68. data/spec/rails_best_practices/reviews/not_use_times_ago_in_words_review_spec.rb +1 -1
  69. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +26 -26
  70. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +11 -2
  71. data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +1 -1
  72. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +8 -8
  73. data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +2 -2
  74. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +25 -10
  75. data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +3 -3
  76. data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +1 -1
  77. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +28 -28
  78. data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +4 -4
  79. data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +15 -7
  80. data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +3 -3
  81. data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +3 -3
  82. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +3 -3
  83. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +5 -5
  84. data/spec/rails_best_practices/reviews/use_parenthesis_in_method_def_spec.rb +41 -0
  85. data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +3 -3
  86. data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +8 -8
  87. data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +9 -9
  88. data/spec/spec_helper.rb +1 -1
  89. metadata +36 -29
  90. data/.rspec.example +0 -2
  91. data/.rvmrc.example +0 -2
@@ -4,8 +4,8 @@ module RailsBestPractices
4
4
  module Reviews
5
5
  describe RemoveUnusedMethodsInHelpersReview do
6
6
  let(:runner) { Core::Runner.new(
7
- :prepares => [Prepares::ControllerPrepare.new, Prepares::HelperPrepare.new],
8
- :reviews => RemoveUnusedMethodsInHelpersReview.new(:except_methods => [])
7
+ prepares: [Prepares::ControllerPrepare.new, Prepares::HelperPrepare.new],
8
+ reviews: RemoveUnusedMethodsInHelpersReview.new(except_methods: [])
9
9
  ) }
10
10
 
11
11
  it "should remove unused methods" do
@@ -4,8 +4,8 @@ module RailsBestPractices
4
4
  module Reviews
5
5
  describe RemoveUnusedMethodsInModelsReview do
6
6
  let(:runner) { Core::Runner.new(
7
- :prepares => Prepares::ModelPrepare.new,
8
- :reviews => RemoveUnusedMethodsInModelsReview.new({'except_methods' => ["*#set_cache"]})
7
+ prepares: Prepares::ModelPrepare.new,
8
+ reviews: RemoveUnusedMethodsInModelsReview.new({'except_methods' => ["*#set_cache"]})
9
9
  ) }
10
10
 
11
11
  context "private" do
@@ -86,7 +86,7 @@ module RailsBestPractices
86
86
  content =<<-EOF
87
87
  class Post < ActiveRecord::Base
88
88
  def fetch
89
- get(:position => 'first')
89
+ get(position: 'first')
90
90
  end
91
91
  private
92
92
  def get(options={}); end
@@ -159,7 +159,7 @@ module RailsBestPractices
159
159
  it "should not remove unused method with validation condition" do
160
160
  content =<<-EOF
161
161
  class Post < ActiveRecord::Base
162
- validates_uniqueness_of :login, :if => :email_blank?
162
+ validates_uniqueness_of :login, if: :email_blank?
163
163
  private
164
164
  def email_blank?; end
165
165
  end
@@ -173,7 +173,7 @@ module RailsBestPractices
173
173
  it "should not remove unused method with aasm" do
174
174
  content =<<-EOF
175
175
  class Post < ActiveRecord::Base
176
- aasm_state :accepted, :enter => [:update_datetime]
176
+ aasm_state :accepted, enter: [:update_datetime]
177
177
  private
178
178
  def update_datetime; end
179
179
  end
@@ -383,7 +383,7 @@ module RailsBestPractices
383
383
  it "should not remove unused named_scope" do
384
384
  content =<<-EOF
385
385
  class Post < ActiveRecord::Base
386
- named_scope :active, :conditions => {:active => true}
386
+ named_scope :active, conditions: {active: true}
387
387
  end
388
388
  EOF
389
389
  runner.prepare("app/models/post.rb", content)
@@ -403,7 +403,7 @@ module RailsBestPractices
403
403
  it "should remove unused named_scope" do
404
404
  content =<<-EOF
405
405
  class Post < ActiveRecord::Base
406
- named_scope :active, :conditions => {:active => true}
406
+ named_scope :active, conditions: {active: true}
407
407
  end
408
408
  EOF
409
409
  runner.prepare("app/models/post.rb", content)
@@ -418,7 +418,7 @@ module RailsBestPractices
418
418
  it "should not remove unused scope" do
419
419
  content =<<-EOF
420
420
  class Post < ActiveRecord::Base
421
- scope :active, where(:active => true)
421
+ scope :active, where(active: true)
422
422
  end
423
423
  EOF
424
424
  runner.prepare("app/models/post.rb", content)
@@ -438,7 +438,7 @@ module RailsBestPractices
438
438
  it "should remove unused named_scope" do
439
439
  content =<<-EOF
440
440
  class Post < ActiveRecord::Base
441
- scope :active, where(:active => true)
441
+ scope :active, where(active: true)
442
442
  end
443
443
  EOF
444
444
  runner.prepare("app/models/post.rb", content)
@@ -540,7 +540,7 @@ module RailsBestPractices
540
540
  content =<<-EOF
541
541
  class Post < ActiveRecord::Base
542
542
  def to_xml(options = {})
543
- super options.merge(:exclude => :visible, :methods => [:is_discussion_conversation])
543
+ super options.merge(exclude: :visible, methods: [:is_discussion_conversation])
544
544
  end
545
545
 
546
546
  def is_discussion_conversation; end
@@ -669,6 +669,21 @@ module RailsBestPractices
669
669
  runner.should have(0).errors
670
670
  end
671
671
  end
672
+
673
+ it "should not skip :call as call message" do
674
+ content =<<-EOF
675
+ module DateRange
676
+ RANGES = lambda {
677
+ last_month = {
678
+ 'range' => lambda { [date_from_time.(31.days.ago), date_from_time.(Time.now)] },
679
+ 'value' => 'last_month',
680
+ 'label' => 'Last month'}
681
+ }[]
682
+ end
683
+ EOF
684
+ runner.prepare("app/mixins/date_range.rb", content)
685
+ runner.review("app/mixins/date_range.rb", content)
686
+ end
672
687
  end
673
688
  end
674
689
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  module RailsBestPractices
4
4
  module Reviews
5
5
  describe ReplaceComplexCreationWithFactoryMethodReview do
6
- let(:runner) { Core::Runner.new(:reviews => ReplaceComplexCreationWithFactoryMethodReview.new) }
6
+ let(:runner) { Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new) }
7
7
 
8
8
  it "should replace complex creation with factory method" do
9
9
  content = <<-EOF
@@ -26,7 +26,7 @@ module RailsBestPractices
26
26
  EOF
27
27
  runner.review('app/controllers/invoices_controller.rb', content)
28
28
  runner.should have(1).errors
29
- runner.errors[0].to_s.should == "app/controllers/invoices_controller.rb:3 - replace complex creation with factory method (@invoice attribute_assignment_count > 2)"
29
+ runner.errors[0].to_s.should == "app/controllers/invoices_controller.rb:2 - replace complex creation with factory method (@invoice attribute_assignment_count > 2)"
30
30
  end
31
31
 
32
32
  it "should not replace complex creation with factory method with simple creation" do
@@ -63,7 +63,7 @@ module RailsBestPractices
63
63
  end
64
64
  end
65
65
  EOF
66
- runner = Core::Runner.new(:reviews => ReplaceComplexCreationWithFactoryMethodReview.new('attribute_assignment_count' => 5))
66
+ runner = Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new('attribute_assignment_count' => 5))
67
67
  runner.review('app/controllers/invoices_controller.rb', content)
68
68
  runner.should have(0).errors
69
69
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  module RailsBestPractices
4
4
  module Reviews
5
5
  describe ReplaceInstanceVariableWithLocalVariableReview do
6
- let(:runner) { Core::Runner.new(:reviews => ReplaceInstanceVariableWithLocalVariableReview.new) }
6
+ let(:runner) { Core::Runner.new(reviews: ReplaceInstanceVariableWithLocalVariableReview.new) }
7
7
 
8
8
  it "should replace instance variable with local varialbe" do
9
9
  content = <<-EOF
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  module RailsBestPractices
4
4
  module Reviews
5
5
  describe RestrictAutoGeneratedRoutesReview do
6
- let(:runner) { Core::Runner.new(:prepares => Prepares::ControllerPrepare.new, :reviews => RestrictAutoGeneratedRoutesReview.new) }
6
+ let(:runner) { Core::Runner.new(prepares: Prepares::ControllerPrepare.new, reviews: RestrictAutoGeneratedRoutesReview.new) }
7
7
 
8
8
  describe "resources" do
9
9
  before :each do
@@ -29,13 +29,13 @@ module RailsBestPractices
29
29
  EOF
30
30
  runner.review('config/routes.rb', content)
31
31
  runner.should have(1).errors
32
- runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update, :destroy])"
32
+ runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes posts (only: [:show, :new, :create, :edit, :update, :destroy])"
33
33
  end
34
34
 
35
35
  it "should not restrict auto-generated routes with only" do
36
36
  content =<<-EOF
37
37
  ActionController::Routing::Routes.draw do |map|
38
- map.resources :posts, :only => [:show, :new, :create, :edit, :update, :destroy]
38
+ map.resources :posts, only: [:show, :new, :create, :edit, :update, :destroy]
39
39
  end
40
40
  EOF
41
41
  runner.review('config/routes.rb', content)
@@ -45,27 +45,27 @@ module RailsBestPractices
45
45
  it "should not restrict auto-generated routes with except" do
46
46
  content =<<-EOF
47
47
  ActionController::Routing::Routes.draw do |map|
48
- map.resources :posts, :except => :index
48
+ map.resources :posts, except: :index
49
49
  end
50
50
  EOF
51
51
  runner.review('config/routes.rb', content)
52
52
  runner.should have(0).errors
53
53
  end
54
54
 
55
- it "should not restrict auto-generated routes with :only => :none" do
55
+ it "should not restrict auto-generated routes with only: :none" do
56
56
  content =<<-EOF
57
57
  ActionController::Routing::Routes.draw do |map|
58
- map.resources :posts, :only => :none
58
+ map.resources :posts, only: :none
59
59
  end
60
60
  EOF
61
61
  runner.review('config/routes.rb', content)
62
62
  runner.should have(0).errors
63
63
  end
64
64
 
65
- it "should not restrict auto-generated routes with :except => :all" do
65
+ it "should not restrict auto-generated routes with except: :all" do
66
66
  content =<<-EOF
67
67
  ActionController::Routing::Routes.draw do |map|
68
- map.resources :posts, :except => :all
68
+ map.resources :posts, except: :all
69
69
  end
70
70
  EOF
71
71
  runner.review('config/routes.rb', content)
@@ -76,12 +76,12 @@ module RailsBestPractices
76
76
  it "should restrict auto-generated routes" do
77
77
  content =<<-EOF
78
78
  ActionController::Routing::Routes.draw do |map|
79
- map.resources :articles, :controller => "posts"
79
+ map.resources :articles, controller: "posts"
80
80
  end
81
81
  EOF
82
82
  runner.review('config/routes.rb', content)
83
83
  runner.should have(1).errors
84
- runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update, :destroy])"
84
+ runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes articles (only: [:show, :new, :create, :edit, :update, :destroy])"
85
85
  end
86
86
  end
87
87
 
@@ -111,13 +111,13 @@ module RailsBestPractices
111
111
  EOF
112
112
  runner.review('config/routes.rb', content)
113
113
  runner.should have(1).errors
114
- runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update, :destroy])"
114
+ runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes posts (only: [:show, :new, :create, :edit, :update, :destroy])"
115
115
  end
116
116
 
117
117
  it "should not restrict auto-generated routes with only" do
118
118
  content =<<-EOF
119
119
  ActionController::Routing::Routes.draw do |map|
120
- map.resources :posts, :only => [:show, :new, :create, :edit, :update, :destroy] do |post|
120
+ map.resources :posts, only: [:show, :new, :create, :edit, :update, :destroy] do |post|
121
121
  post.resources :comments
122
122
  end
123
123
  end
@@ -129,7 +129,7 @@ module RailsBestPractices
129
129
  it "should not restrict auto-generated routes with except" do
130
130
  content =<<-EOF
131
131
  ActionController::Routing::Routes.draw do |map|
132
- map.resources :posts, :except => :index do |post|
132
+ map.resources :posts, except: :index do |post|
133
133
  post.resources :comments
134
134
  end
135
135
  end
@@ -149,13 +149,13 @@ module RailsBestPractices
149
149
  EOF
150
150
  runner.review('config/routes.rb', content)
151
151
  runner.should have(1).errors
152
- runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update, :destroy])"
152
+ runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes posts (only: [:show, :new, :create, :edit, :update, :destroy])"
153
153
  end
154
154
 
155
155
  it "should not restrict auto-generated routes with only" do
156
156
  content =<<-EOF
157
157
  RailsBestPracticesCom::Application.routes.draw do
158
- resources :posts, :only => [:show, :new, :create, :edit, :update, :destroy]
158
+ resources :posts, only: %w(show new create edit update destroy)
159
159
  end
160
160
  EOF
161
161
  runner.review('config/routes.rb', content)
@@ -165,7 +165,7 @@ module RailsBestPractices
165
165
  it "should not restrict auto-generated routes with except" do
166
166
  content =<<-EOF
167
167
  RailsBestPracticesCom::Application.routes.draw do
168
- resources :posts, :except => :index
168
+ resources :posts, except: :index
169
169
  end
170
170
  EOF
171
171
  runner.review('config/routes.rb', content)
@@ -176,12 +176,12 @@ module RailsBestPractices
176
176
  it "should restrict auto-generated routes" do
177
177
  content =<<-EOF
178
178
  RailsBestPracticesCom::Application.routes.draw do
179
- resources :articles, :controller => "posts"
179
+ resources :articles, controller: "posts"
180
180
  end
181
181
  EOF
182
182
  runner.review('config/routes.rb', content)
183
183
  runner.should have(1).errors
184
- runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update, :destroy])"
184
+ runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes articles (only: [:show, :new, :create, :edit, :update, :destroy])"
185
185
  end
186
186
  end
187
187
 
@@ -208,7 +208,7 @@ module RailsBestPractices
208
208
  EOF
209
209
  runner.review('config/routes.rb', content)
210
210
  runner.should have(1).errors
211
- runner.errors[0].to_s.should == "config/routes.rb:3 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update, :destroy])"
211
+ runner.errors[0].to_s.should == "config/routes.rb:3 - restrict auto-generated routes admin/comments (only: [:show, :new, :create, :edit, :update, :destroy])"
212
212
  end
213
213
  end
214
214
 
@@ -238,13 +238,13 @@ module RailsBestPractices
238
238
  EOF
239
239
  runner.review('config/routes.rb', content)
240
240
  runner.should have(1).errors
241
- runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update, :destroy])"
241
+ runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes posts (only: [:show, :new, :create, :edit, :update, :destroy])"
242
242
  end
243
243
 
244
244
  it "should not restrict auto-generated routes with only" do
245
245
  content =<<-EOF
246
246
  RailsBestPracticesCom::Application.routes.draw do
247
- resources :posts, :only => [:show, :new, :create, :edit, :update, :destroy] do
247
+ resources :posts, only: %w(show new create edit update destroy) do
248
248
  resources :comments
249
249
  end
250
250
  end
@@ -256,7 +256,7 @@ module RailsBestPractices
256
256
  it "should not restrict auto-generated routes with except" do
257
257
  content =<<-EOF
258
258
  RailsBestPracticesCom::Application.routes.draw do
259
- resources :posts, :except => :index do
259
+ resources :posts, except: :index do
260
260
  resources :comments
261
261
  end
262
262
  end
@@ -291,13 +291,13 @@ module RailsBestPractices
291
291
  EOF
292
292
  runner.review('config/routes.rb', content)
293
293
  runner.should have(1).errors
294
- runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update])"
294
+ runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes account (only: [:show, :new, :create, :edit, :update])"
295
295
  end
296
296
 
297
297
  it "should not restrict auto-generated routes with only" do
298
298
  content =<<-EOF
299
299
  ActionController::Routing::Routes.draw do |map|
300
- map.resource :account, :only => [:show, :new, :create, :edit, :update]
300
+ map.resource :account, only: %w(show new create edit update)
301
301
  end
302
302
  EOF
303
303
  runner.review('config/routes.rb', content)
@@ -307,7 +307,7 @@ module RailsBestPractices
307
307
  it "should not restrict auto-generated routes with except" do
308
308
  content =<<-EOF
309
309
  ActionController::Routing::Routes.draw do |map|
310
- map.resource :account, :except => :destroy
310
+ map.resource :account, except: :destroy
311
311
  end
312
312
  EOF
313
313
  runner.review('config/routes.rb', content)
@@ -324,13 +324,13 @@ module RailsBestPractices
324
324
  EOF
325
325
  runner.review('config/routes.rb', content)
326
326
  runner.should have(1).errors
327
- runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes (:only => [:show, :new, :create, :edit, :update])"
327
+ runner.errors[0].to_s.should == "config/routes.rb:2 - restrict auto-generated routes account (only: [:show, :new, :create, :edit, :update])"
328
328
  end
329
329
 
330
330
  it "should not restrict auto-generated routes with only" do
331
331
  content =<<-EOF
332
332
  ActionController::Routing::Routes.draw do |map|
333
- map.resource :account, :only => [:show, :new, :create, :edit, :update]
333
+ map.resource :account, only: %w(show new create edit update)
334
334
  end
335
335
  EOF
336
336
  runner.review('config/routes.rb', content)
@@ -340,7 +340,7 @@ module RailsBestPractices
340
340
  it "should not restrict auto-generated routes with except" do
341
341
  content =<<-EOF
342
342
  ActionController::Routing::Routes.draw do |map|
343
- map.resource :account, :except => :destroy
343
+ map.resource :account, except: :destroy
344
344
  end
345
345
  EOF
346
346
  runner.review('config/routes.rb', content)
@@ -3,12 +3,12 @@ require 'spec_helper'
3
3
  module RailsBestPractices
4
4
  module Reviews
5
5
  describe SimplifyRenderInControllersReview do
6
- let(:runner) { Core::Runner.new(:reviews => SimplifyRenderInControllersReview.new) }
6
+ let(:runner) { Core::Runner.new(reviews: SimplifyRenderInControllersReview.new) }
7
7
 
8
8
  it "should simplify render action view" do
9
9
  content =<<-EOF
10
10
  def edit
11
- render :action => :edit
11
+ render action: :edit
12
12
  end
13
13
  EOF
14
14
  runner.review("app/controllers/posts_controller.rb", content)
@@ -19,7 +19,7 @@ module RailsBestPractices
19
19
  it "should simplify render actions's template" do
20
20
  content =<<-EOF
21
21
  def edit
22
- render :template => 'books/edit'
22
+ render template: 'books/edit'
23
23
  end
24
24
  EOF
25
25
  runner.review("app/controllers/posts_controller.rb", content)
@@ -30,7 +30,7 @@ module RailsBestPractices
30
30
  it "should simplify render an arbitrary file" do
31
31
  content =<<-EOF
32
32
  def edit
33
- render :file => '/path/to/rails/app/views/books/edit'
33
+ render file: '/path/to/rails/app/views/books/edit'
34
34
  end
35
35
  EOF
36
36
  runner.review("app/controllers/posts_controller.rb", content)
@@ -3,11 +3,11 @@ require 'spec_helper'
3
3
  module RailsBestPractices
4
4
  module Reviews
5
5
  describe SimplifyRenderInViewsReview do
6
- let(:runner) { Core::Runner.new(:reviews => SimplifyRenderInViewsReview.new) }
6
+ let(:runner) { Core::Runner.new(reviews: SimplifyRenderInViewsReview.new) }
7
7
 
8
8
  it "should simplify render simple partial" do
9
9
  content =<<-EOF
10
- <%= render :partial => 'sidebar' %>
10
+ <%= render partial: 'sidebar' %>
11
11
  EOF
12
12
  runner.review('app/views/posts/index.html.erb', content)
13
13
  runner.should have(1).errors
@@ -16,7 +16,7 @@ module RailsBestPractices
16
16
 
17
17
  it "should simplify render partial with object" do
18
18
  content =<<-EOF
19
- <%= render :partial => 'post', :object => @post %>
19
+ <%= render partial: 'post', object: @post %>
20
20
  EOF
21
21
  runner.review('app/views/posts/index.html.erb', content)
22
22
  runner.should have(1).errors
@@ -25,7 +25,7 @@ module RailsBestPractices
25
25
 
26
26
  it "should simplify render partial with collection" do
27
27
  content =<<-EOF
28
- <%= render :partial => 'posts', :collection => @posts %>
28
+ <%= render partial: 'posts', collection: @posts %>
29
29
  EOF
30
30
  runner.review('app/views/posts/index.html.erb', content)
31
31
  runner.should have(1).errors
@@ -34,7 +34,7 @@ module RailsBestPractices
34
34
 
35
35
  it "should simplify render partial with local variables" do
36
36
  content =<<-EOF
37
- <%= render :partial => 'comment', :locals => { :parent => post } %>
37
+ <%= render partial: 'comment', locals: { parent: post } %>
38
38
  EOF
39
39
  runner.review('app/views/posts/index.html.erb', content)
40
40
  runner.should have(1).errors
@@ -68,7 +68,7 @@ module RailsBestPractices
68
68
 
69
69
  it "should not simplify render partial with local variables" do
70
70
  content =<<-EOF
71
- <%= render 'comment', :parent => post %>
71
+ <%= render 'comment', parent: post %>
72
72
  EOF
73
73
  runner.review('app/views/posts/index.html.erb', content)
74
74
  runner.should have(0).errors
@@ -76,7 +76,15 @@ module RailsBestPractices
76
76
 
77
77
  it "should not simplify render partial with complex partial" do
78
78
  content =<<-EOF
79
- <%= render :partial => 'shared/post', :object => @post %>
79
+ <%= render partial: 'shared/post', object: @post %>
80
+ EOF
81
+ runner.review('app/views/posts/index.html.erb', content)
82
+ runner.should have(0).errors
83
+ end
84
+
85
+ it "should not simplify render partial with layout option" do
86
+ content =<<-EOF
87
+ <%= render partial: 'post', layout: 'post' %>
80
88
  EOF
81
89
  runner.review('app/views/posts/index.html.erb', content)
82
90
  runner.should have(0).errors