rails_best_practices 1.20.0 → 1.20.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/Gemfile.lock +30 -26
  4. data/Guardfile +2 -0
  5. data/Rakefile +2 -0
  6. data/lib/rails_best_practices.rb +1 -2
  7. data/lib/rails_best_practices/analyzer.rb +56 -46
  8. data/lib/rails_best_practices/core/check.rb +39 -32
  9. data/lib/rails_best_practices/core/checks_loader.rb +8 -6
  10. data/lib/rails_best_practices/core/configs.rb +1 -2
  11. data/lib/rails_best_practices/core/controllers.rb +1 -2
  12. data/lib/rails_best_practices/core/error.rb +1 -1
  13. data/lib/rails_best_practices/core/helpers.rb +1 -2
  14. data/lib/rails_best_practices/core/mailers.rb +1 -2
  15. data/lib/rails_best_practices/core/methods.rb +21 -16
  16. data/lib/rails_best_practices/core/model_associations.rb +9 -4
  17. data/lib/rails_best_practices/core/models.rb +1 -2
  18. data/lib/rails_best_practices/core/modules.rb +1 -1
  19. data/lib/rails_best_practices/core/routes.rb +2 -2
  20. data/lib/rails_best_practices/core/runner.rb +29 -33
  21. data/lib/rails_best_practices/lexicals/long_line_check.rb +7 -3
  22. data/lib/rails_best_practices/option_parser.rb +17 -6
  23. data/lib/rails_best_practices/prepares.rb +1 -1
  24. data/lib/rails_best_practices/prepares/controller_prepare.rb +15 -3
  25. data/lib/rails_best_practices/prepares/gemfile_prepare.rb +1 -1
  26. data/lib/rails_best_practices/prepares/helper_prepare.rb +6 -1
  27. data/lib/rails_best_practices/prepares/initializer_prepare.rb +2 -2
  28. data/lib/rails_best_practices/prepares/mailer_prepare.rb +1 -0
  29. data/lib/rails_best_practices/prepares/model_prepare.rb +52 -12
  30. data/lib/rails_best_practices/prepares/route_prepare.rb +16 -10
  31. data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +15 -13
  32. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +34 -29
  33. data/lib/rails_best_practices/reviews/check_destroy_return_value_review.rb +14 -5
  34. data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +19 -8
  35. data/lib/rails_best_practices/reviews/hash_syntax_review.rb +5 -5
  36. data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +4 -4
  37. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +7 -8
  38. data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +6 -6
  39. data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +1 -1
  40. data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +6 -7
  41. data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +7 -8
  42. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +12 -10
  43. data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +1 -2
  44. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +5 -5
  45. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +5 -2
  46. data/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +6 -3
  47. data/lib/rails_best_practices/reviews/remove_unused_methods_in_helpers_review.rb +6 -4
  48. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +29 -9
  49. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +3 -3
  50. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +17 -15
  51. data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +1 -2
  52. data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +3 -3
  53. data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -1
  54. data/lib/rails_best_practices/reviews/use_model_association_review.rb +5 -5
  55. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +9 -8
  56. data/lib/rails_best_practices/reviews/use_observer_review.rb +9 -9
  57. data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +26 -26
  58. data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +8 -7
  59. data/lib/rails_best_practices/reviews/use_scope_access_review.rb +17 -15
  60. data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +2 -1
  61. data/lib/rails_best_practices/version.rb +1 -1
  62. data/rails_best_practices.gemspec +35 -36
  63. data/spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb +1 -2
  64. data/spec/rails_best_practices/analyzer_spec.rb +73 -42
  65. data/spec/rails_best_practices/core/check_spec.rb +5 -5
  66. data/spec/rails_best_practices/core/checks_loader_spec.rb +3 -3
  67. data/spec/rails_best_practices/core/configs_spec.rb +1 -1
  68. data/spec/rails_best_practices/core/controllers_spec.rb +1 -1
  69. data/spec/rails_best_practices/core/error_spec.rb +21 -21
  70. data/spec/rails_best_practices/core/except_methods_spec.rb +7 -7
  71. data/spec/rails_best_practices/core/gems_spec.rb +4 -4
  72. data/spec/rails_best_practices/core/helpers_spec.rb +1 -1
  73. data/spec/rails_best_practices/core/klasses_spec.rb +3 -3
  74. data/spec/rails_best_practices/core/mailers_spec.rb +1 -1
  75. data/spec/rails_best_practices/core/methods_spec.rb +6 -6
  76. data/spec/rails_best_practices/core/model_associations_spec.rb +10 -6
  77. data/spec/rails_best_practices/core/model_attributes_spec.rb +4 -4
  78. data/spec/rails_best_practices/core/models_spec.rb +1 -1
  79. data/spec/rails_best_practices/core/modules_spec.rb +5 -5
  80. data/spec/rails_best_practices/core/routes_spec.rb +5 -5
  81. data/spec/rails_best_practices/core/runner_spec.rb +9 -7
  82. data/spec/rails_best_practices/core_ext/erubis_spec.rb +10 -10
  83. data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +11 -10
  84. data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +6 -6
  85. data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +6 -6
  86. data/spec/rails_best_practices/prepares/config_prepare_spec.rb +2 -2
  87. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +18 -10
  88. data/spec/rails_best_practices/prepares/gemfile_prepare_spec.rb +2 -2
  89. data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +3 -3
  90. data/spec/rails_best_practices/prepares/initializer_prepare_spec.rb +3 -3
  91. data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +2 -2
  92. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +79 -43
  93. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +138 -77
  94. data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +2 -2
  95. data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +18 -12
  96. data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +28 -22
  97. data/spec/rails_best_practices/reviews/check_destroy_return_value_review_spec.rb +15 -13
  98. data/spec/rails_best_practices/reviews/check_save_return_value_review_spec.rb +31 -21
  99. data/spec/rails_best_practices/reviews/default_scope_is_evil_review_spec.rb +6 -6
  100. data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +5 -5
  101. data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +9 -9
  102. data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +7 -7
  103. data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +9 -9
  104. data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +21 -14
  105. data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +6 -6
  106. data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +11 -6
  107. data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +26 -16
  108. data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +7 -7
  109. data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +9 -7
  110. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +9 -9
  111. data/spec/rails_best_practices/reviews/not_rescue_exception_review_spec.rb +9 -9
  112. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +5 -5
  113. data/spec/rails_best_practices/reviews/not_use_time_ago_in_words_review_spec.rb +7 -7
  114. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +7 -7
  115. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +24 -19
  116. data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +6 -6
  117. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +44 -31
  118. data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +17 -12
  119. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +46 -44
  120. data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +10 -8
  121. data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +16 -10
  122. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +54 -31
  123. data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +9 -9
  124. data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +13 -13
  125. data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +11 -9
  126. data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +7 -7
  127. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +21 -17
  128. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +6 -6
  129. data/spec/rails_best_practices/reviews/use_parentheses_in_method_def_review_spec.rb +9 -7
  130. data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +31 -24
  131. data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +15 -11
  132. data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +14 -14
  133. data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +10 -8
  134. metadata +7 -7
@@ -5,9 +5,9 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe ReplaceComplexCreationWithFactoryMethodReview do
8
- let(:runner) { Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
- it 'should replace complex creation with factory method' do
10
+ it 'replaces complex creation with factory method' do
11
11
  content = <<-EOF
12
12
  class InvoiceController < ApplicationController
13
13
  def create
@@ -28,10 +28,12 @@ module RailsBestPractices
28
28
  EOF
29
29
  runner.review('app/controllers/invoices_controller.rb', content)
30
30
  expect(runner.errors.size).to eq(1)
31
- expect(runner.errors[0].to_s).to eq('app/controllers/invoices_controller.rb:2 - replace complex creation with factory method (@invoice attribute_assignment_count > 2)')
31
+ expect(runner.errors[0].to_s).to eq(
32
+ 'app/controllers/invoices_controller.rb:2 - replace complex creation with factory method (@invoice attribute_assignment_count > 2)'
33
+ )
32
34
  end
33
35
 
34
- it 'should not replace complex creation with factory method with simple creation' do
36
+ it 'does not replace complex creation with factory method with simple creation' do
35
37
  content = <<-EOF
36
38
  class InvoiceController < ApplicationController
37
39
  def create
@@ -46,7 +48,7 @@ module RailsBestPractices
46
48
  expect(runner.errors.size).to eq(0)
47
49
  end
48
50
 
49
- it 'should not replace complex creation with factory method when attrasgn_count is 5' do
51
+ it 'does not replace complex creation with factory method when attrasgn_count is 5' do
50
52
  content = <<-EOF
51
53
  class InvoiceController < ApplicationController
52
54
  def create
@@ -65,13 +67,13 @@ module RailsBestPractices
65
67
  end
66
68
  end
67
69
  EOF
68
- runner = Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new('attribute_assignment_count' => 5))
70
+ runner = Core::Runner.new(reviews: described_class.new('attribute_assignment_count' => 5))
69
71
  runner.review('app/controllers/invoices_controller.rb', content)
70
72
  expect(runner.errors.size).to eq(0)
71
73
  end
72
74
 
73
- it 'should not check ignored files' do
74
- runner = Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new(ignored_files: /invoices_controller/))
75
+ it 'does not check ignored files' do
76
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: /invoices_controller/))
75
77
  content = <<-EOF
76
78
  class InvoiceController < ApplicationController
77
79
  def create
@@ -5,36 +5,42 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe ReplaceInstanceVariableWithLocalVariableReview do
8
- let(:runner) { Core::Runner.new(reviews: ReplaceInstanceVariableWithLocalVariableReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
- it 'should replace instance variable with local varialbe' do
10
+ it 'replaces instance variable with local varialbe' do
11
11
  content = <<-EOF
12
12
  <%= @post.title %>
13
13
  EOF
14
14
  runner.review('app/views/posts/_post.html.erb', content)
15
15
  expect(runner.errors.size).to eq(1)
16
- expect(runner.errors[0].to_s).to eq('app/views/posts/_post.html.erb:1 - replace instance variable with local variable')
16
+ expect(runner.errors[0].to_s).to eq(
17
+ 'app/views/posts/_post.html.erb:1 - replace instance variable with local variable'
18
+ )
17
19
  end
18
20
 
19
- it 'should replace instance variable with local varialbe in haml file' do
21
+ it 'replaces instance variable with local varialbe in haml file' do
20
22
  content = <<~EOF
21
23
  = @post.title
22
24
  EOF
23
25
  runner.review('app/views/posts/_post.html.haml', content)
24
26
  expect(runner.errors.size).to eq(1)
25
- expect(runner.errors[0].to_s).to eq('app/views/posts/_post.html.haml:1 - replace instance variable with local variable')
27
+ expect(runner.errors[0].to_s).to eq(
28
+ 'app/views/posts/_post.html.haml:1 - replace instance variable with local variable'
29
+ )
26
30
  end
27
31
 
28
- it 'should replace instance variable with local varialbe in slim file' do
32
+ it 'replaces instance variable with local varialbe in slim file' do
29
33
  content = <<~EOF
30
34
  = @post.title
31
35
  EOF
32
36
  runner.review('app/views/posts/_post.html.slim', content)
33
37
  expect(runner.errors.size).to eq(1)
34
- expect(runner.errors[0].to_s).to eq('app/views/posts/_post.html.slim:1 - replace instance variable with local variable')
38
+ expect(runner.errors[0].to_s).to eq(
39
+ 'app/views/posts/_post.html.slim:1 - replace instance variable with local variable'
40
+ )
35
41
  end
36
42
 
37
- it 'should not replace instance variable with local varialbe' do
43
+ it 'does not replace instance variable with local varialbe' do
38
44
  content = <<-EOF
39
45
  <%= post.title %>
40
46
  EOF
@@ -42,8 +48,8 @@ module RailsBestPractices
42
48
  expect(runner.errors.size).to eq(0)
43
49
  end
44
50
 
45
- it 'should not check ignored files' do
46
- runner = Core::Runner.new(reviews: ReplaceInstanceVariableWithLocalVariableReview.new(ignored_files: /views\/posts/))
51
+ it 'does not check ignored files' do
52
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: %r{views/posts}))
47
53
  content = <<-EOF
48
54
  <%= @post.title %>
49
55
  EOF
@@ -5,10 +5,10 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe RestrictAutoGeneratedRoutesReview do
8
- let(:runner) { Core::Runner.new(prepares: Prepares::ControllerPrepare.new, reviews: RestrictAutoGeneratedRoutesReview.new) }
8
+ let(:runner) { Core::Runner.new(prepares: Prepares::ControllerPrepare.new, reviews: described_class.new) }
9
9
 
10
10
  describe 'resources' do
11
- before :each do
11
+ before do
12
12
  content = <<-EOF
13
13
  class PostsController < ApplicationController
14
14
  def show; end
@@ -22,7 +22,7 @@ module RailsBestPractices
22
22
  runner.prepare('app/controllers/posts_controller.rb', content)
23
23
  end
24
24
 
25
- it 'should restrict auto-generated routes' do
25
+ it 'restricts auto-generated routes' do
26
26
  content = <<-EOF
27
27
  RailsBestPracticesCom::Application.routes.draw do
28
28
  resources :posts
@@ -30,10 +30,12 @@ module RailsBestPractices
30
30
  EOF
31
31
  runner.review('config/routes.rb', content)
32
32
  expect(runner.errors.size).to eq(1)
33
- expect(runner.errors[0].to_s).to eq('config/routes.rb:2 - restrict auto-generated routes posts (except: [:index])')
33
+ expect(runner.errors[0].to_s).to eq(
34
+ 'config/routes.rb:2 - restrict auto-generated routes posts (except: [:index])'
35
+ )
34
36
  end
35
37
 
36
- it 'should not restrict auto-generated routes with only' do
38
+ it 'does not restrict auto-generated routes with only' do
37
39
  content = <<-EOF
38
40
  RailsBestPracticesCom::Application.routes.draw do
39
41
  resources :posts, only: %w(show new create edit update destroy)
@@ -43,7 +45,7 @@ module RailsBestPractices
43
45
  expect(runner.errors.size).to eq(0)
44
46
  end
45
47
 
46
- it 'should not restrict auto-generated routes with except' do
48
+ it 'does not restrict auto-generated routes with except' do
47
49
  content = <<-EOF
48
50
  RailsBestPracticesCom::Application.routes.draw do
49
51
  resources :posts, except: :index
@@ -54,7 +56,7 @@ module RailsBestPractices
54
56
  end
55
57
 
56
58
  describe 'specify a controller' do
57
- it 'should restrict auto-generated routes' do
59
+ it 'restricts auto-generated routes' do
58
60
  content = <<-EOF
59
61
  RailsBestPracticesCom::Application.routes.draw do
60
62
  resources :articles, controller: "posts"
@@ -62,7 +64,9 @@ module RailsBestPractices
62
64
  EOF
63
65
  runner.review('config/routes.rb', content)
64
66
  expect(runner.errors.size).to eq(1)
65
- expect(runner.errors[0].to_s).to eq('config/routes.rb:2 - restrict auto-generated routes articles (except: [:index])')
67
+ expect(runner.errors[0].to_s).to eq(
68
+ 'config/routes.rb:2 - restrict auto-generated routes articles (except: [:index])'
69
+ )
66
70
  end
67
71
  end
68
72
 
@@ -81,7 +85,7 @@ module RailsBestPractices
81
85
  runner.prepare('app/controllers/admin/comments_controller.rb', content)
82
86
  end
83
87
 
84
- it 'should restrict auto-generated routes' do
88
+ it 'restricts auto-generated routes' do
85
89
  content = <<-EOF
86
90
  RailsBestPracticesCom::Application.routes.draw do
87
91
  namespace :admin do
@@ -91,10 +95,12 @@ module RailsBestPractices
91
95
  EOF
92
96
  runner.review('config/routes.rb', content)
93
97
  expect(runner.errors.size).to eq(1)
94
- expect(runner.errors[0].to_s).to eq('config/routes.rb:3 - restrict auto-generated routes admin/comments (except: [:index])')
98
+ expect(runner.errors[0].to_s).to eq(
99
+ 'config/routes.rb:3 - restrict auto-generated routes admin/comments (except: [:index])'
100
+ )
95
101
  end
96
102
 
97
- it 'should restrict auto-generated routes with scope :module' do
103
+ it 'restricts auto-generated routes with scope :module' do
98
104
  content = <<-EOF
99
105
  RailsBestPracticesCom::Application.routes.draw do
100
106
  scope module: :admin do
@@ -104,10 +110,12 @@ module RailsBestPractices
104
110
  EOF
105
111
  runner.review('config/routes.rb', content)
106
112
  expect(runner.errors.size).to eq(1)
107
- expect(runner.errors[0].to_s).to eq('config/routes.rb:3 - restrict auto-generated routes admin/comments (except: [:index])')
113
+ expect(runner.errors[0].to_s).to eq(
114
+ 'config/routes.rb:3 - restrict auto-generated routes admin/comments (except: [:index])'
115
+ )
108
116
  end
109
117
 
110
- it 'should restrict auto-generated routes with resources :module' do
118
+ it 'restricts auto-generated routes with resources :module' do
111
119
  content = <<-EOF
112
120
  RailsBestPracticesCom::Application.routes.draw do
113
121
  resources :comments, module: :admin
@@ -115,12 +123,14 @@ module RailsBestPractices
115
123
  EOF
116
124
  runner.review('config/routes.rb', content)
117
125
  expect(runner.errors.size).to eq(1)
118
- expect(runner.errors[0].to_s).to eq('config/routes.rb:2 - restrict auto-generated routes admin/comments (except: [:index])')
126
+ expect(runner.errors[0].to_s).to eq(
127
+ 'config/routes.rb:2 - restrict auto-generated routes admin/comments (except: [:index])'
128
+ )
119
129
  end
120
130
  end
121
131
 
122
132
  describe 'nested routes' do
123
- before :each do
133
+ before do
124
134
  content = <<-EOF
125
135
  class CommentsController < ApplicationController
126
136
  def index; end
@@ -135,7 +145,7 @@ module RailsBestPractices
135
145
  runner.prepare('app/controllers/comments_controller.rb', content)
136
146
  end
137
147
 
138
- it 'should restrict auto-generated routes' do
148
+ it 'restricts auto-generated routes' do
139
149
  content = <<-EOF
140
150
  RailsBestPracticesCom::Application.routes.draw do
141
151
  resources :posts do
@@ -145,10 +155,12 @@ module RailsBestPractices
145
155
  EOF
146
156
  runner.review('config/routes.rb', content)
147
157
  expect(runner.errors.size).to eq(1)
148
- expect(runner.errors[0].to_s).to eq('config/routes.rb:2 - restrict auto-generated routes posts (except: [:index])')
158
+ expect(runner.errors[0].to_s).to eq(
159
+ 'config/routes.rb:2 - restrict auto-generated routes posts (except: [:index])'
160
+ )
149
161
  end
150
162
 
151
- it 'should not restrict auto-generated routes with only' do
163
+ it 'does not restrict auto-generated routes with only' do
152
164
  content = <<-EOF
153
165
  RailsBestPracticesCom::Application.routes.draw do
154
166
  resources :posts, only: %w(show new create edit update destroy) do
@@ -160,7 +172,7 @@ module RailsBestPractices
160
172
  expect(runner.errors.size).to eq(0)
161
173
  end
162
174
 
163
- it 'should not restrict auto-generated routes with except' do
175
+ it 'does not restrict auto-generated routes with except' do
164
176
  content = <<-EOF
165
177
  RailsBestPracticesCom::Application.routes.draw do
166
178
  resources :posts, except: :index do
@@ -175,7 +187,7 @@ module RailsBestPractices
175
187
  end
176
188
 
177
189
  describe 'resource' do
178
- before :each do
190
+ before do
179
191
  content = <<-EOF
180
192
  class AccountsController < ApplicationController
181
193
  def show; end
@@ -188,7 +200,7 @@ module RailsBestPractices
188
200
  runner.prepare('app/controllers/accounts_controller.rb', content)
189
201
  end
190
202
 
191
- it 'should restrict auto-generated routes' do
203
+ it 'restricts auto-generated routes' do
192
204
  content = <<-EOF
193
205
  ActionController::Routing::Routes.draw do |map|
194
206
  map.resource :account
@@ -196,10 +208,12 @@ module RailsBestPractices
196
208
  EOF
197
209
  runner.review('config/routes.rb', content)
198
210
  expect(runner.errors.size).to eq(1)
199
- expect(runner.errors[0].to_s).to eq('config/routes.rb:2 - restrict auto-generated routes account (except: [:destroy])')
211
+ expect(runner.errors[0].to_s).to eq(
212
+ 'config/routes.rb:2 - restrict auto-generated routes account (except: [:destroy])'
213
+ )
200
214
  end
201
215
 
202
- it 'should not restrict auto-generated routes with only' do
216
+ it 'does not restrict auto-generated routes with only' do
203
217
  content = <<-EOF
204
218
  ActionController::Routing::Routes.draw do |map|
205
219
  map.resource :account, only: %w(show new create edit update)
@@ -209,7 +223,7 @@ module RailsBestPractices
209
223
  expect(runner.errors.size).to eq(0)
210
224
  end
211
225
 
212
- it 'should not restrict auto-generated routes with except' do
226
+ it 'does not restrict auto-generated routes with except' do
213
227
  content = <<-EOF
214
228
  ActionController::Routing::Routes.draw do |map|
215
229
  map.resource :account, except: :destroy
@@ -219,9 +233,12 @@ module RailsBestPractices
219
233
  expect(runner.errors.size).to eq(0)
220
234
  end
221
235
 
222
- it 'should not check ignored files' do
223
- runner = Core::Runner.new(prepares: Prepares::ControllerPrepare.new,
224
- reviews: RestrictAutoGeneratedRoutesReview.new(ignored_files: /config\/routes\.rb/))
236
+ it 'does not check ignored files' do
237
+ runner =
238
+ Core::Runner.new(
239
+ prepares: Prepares::ControllerPrepare.new,
240
+ reviews: described_class.new(ignored_files: %r{config/routes\.rb})
241
+ )
225
242
 
226
243
  content = <<-EOF
227
244
  ActionController::Routing::Routes.draw do |map|
@@ -234,7 +251,11 @@ module RailsBestPractices
234
251
  end
235
252
 
236
253
  context 'api_only = true' do
237
- let(:runner) { Core::Runner.new(prepares: [Prepares::ConfigPrepare.new, Prepares::ControllerPrepare.new], reviews: RestrictAutoGeneratedRoutesReview.new) }
254
+ let(:runner) do
255
+ Core::Runner.new(
256
+ prepares: [Prepares::ConfigPrepare.new, Prepares::ControllerPrepare.new], reviews: described_class.new
257
+ )
258
+ end
238
259
 
239
260
  before do
240
261
  content = <<-EOF
@@ -256,7 +277,7 @@ module RailsBestPractices
256
277
  runner.prepare('app/controllers/posts_controller.rb', content)
257
278
  end
258
279
 
259
- it 'should restrict auto-generated routes' do
280
+ it 'restricts auto-generated routes' do
260
281
  content = <<-EOF
261
282
  RailsBestPracticesCom::Application.routes.draw do
262
283
  resources :posts
@@ -264,10 +285,12 @@ module RailsBestPractices
264
285
  EOF
265
286
  runner.review('config/routes.rb', content)
266
287
  expect(runner.errors.size).to eq(1)
267
- expect(runner.errors[0].to_s).to eq('config/routes.rb:2 - restrict auto-generated routes posts (except: [:index])')
288
+ expect(runner.errors[0].to_s).to eq(
289
+ 'config/routes.rb:2 - restrict auto-generated routes posts (except: [:index])'
290
+ )
268
291
  end
269
292
 
270
- it 'should not restrict auto-generated routes with only' do
293
+ it 'does not restrict auto-generated routes with only' do
271
294
  content = <<-EOF
272
295
  RailsBestPracticesCom::Application.routes.draw do
273
296
  resources :posts, only: %w(show create update destroy)
@@ -5,9 +5,9 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe SimplifyRenderInControllersReview do
8
- let(:runner) { Core::Runner.new(reviews: SimplifyRenderInControllersReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
- it 'should simplify render action view' do
10
+ it 'simplifies render action view' do
11
11
  content = <<-EOF
12
12
  def edit
13
13
  render action: :edit
@@ -18,7 +18,7 @@ module RailsBestPractices
18
18
  expect(runner.errors[0].to_s).to eq('app/controllers/posts_controller.rb:2 - simplify render in controllers')
19
19
  end
20
20
 
21
- it "should simplify render actions's template" do
21
+ it "simplifies render actions's template" do
22
22
  content = <<-EOF
23
23
  def edit
24
24
  render template: 'books/edit'
@@ -29,7 +29,7 @@ module RailsBestPractices
29
29
  expect(runner.errors[0].to_s).to eq('app/controllers/posts_controller.rb:2 - simplify render in controllers')
30
30
  end
31
31
 
32
- it 'should simplify render an arbitrary file' do
32
+ it 'simplifies render an arbitrary file' do
33
33
  content = <<-EOF
34
34
  def edit
35
35
  render file: '/path/to/rails/app/views/books/edit'
@@ -40,7 +40,7 @@ module RailsBestPractices
40
40
  expect(runner.errors[0].to_s).to eq('app/controllers/posts_controller.rb:2 - simplify render in controllers')
41
41
  end
42
42
 
43
- it 'should not simplify render action view' do
43
+ it 'does not simplify render action view' do
44
44
  content = <<-EOF
45
45
  render :edit
46
46
  EOF
@@ -48,7 +48,7 @@ module RailsBestPractices
48
48
  expect(runner.errors.size).to eq(0)
49
49
  end
50
50
 
51
- it "should not simplify render actions's template" do
51
+ it "does not simplify render actions's template" do
52
52
  content = <<-EOF
53
53
  def edit
54
54
  render 'books/edit'
@@ -58,7 +58,7 @@ module RailsBestPractices
58
58
  expect(runner.errors.size).to eq(0)
59
59
  end
60
60
 
61
- it 'should not simplify render an arbitrary file' do
61
+ it 'does not simplify render an arbitrary file' do
62
62
  content = <<-EOF
63
63
  def edit
64
64
  render '/path/to/rails/app/views/books/edit'
@@ -68,8 +68,8 @@ module RailsBestPractices
68
68
  expect(runner.errors.size).to eq(0)
69
69
  end
70
70
 
71
- it 'should not check ignored files' do
72
- runner = Core::Runner.new(reviews: SimplifyRenderInControllersReview.new(ignored_files: /posts_controller/))
71
+ it 'does not check ignored files' do
72
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: /posts_controller/))
73
73
  content = <<-EOF
74
74
  def edit
75
75
  render action: :edit
@@ -5,9 +5,9 @@ require 'spec_helper'
5
5
  module RailsBestPractices
6
6
  module Reviews
7
7
  describe SimplifyRenderInViewsReview do
8
- let(:runner) { Core::Runner.new(reviews: SimplifyRenderInViewsReview.new) }
8
+ let(:runner) { Core::Runner.new(reviews: described_class.new) }
9
9
 
10
- it 'should simplify render simple partial' do
10
+ it 'simplifies render simple partial' do
11
11
  content = <<-EOF
12
12
  <%= render partial: 'sidebar' %>
13
13
  EOF
@@ -16,7 +16,7 @@ module RailsBestPractices
16
16
  expect(runner.errors[0].to_s).to eq('app/views/posts/index.html.erb:1 - simplify render in views')
17
17
  end
18
18
 
19
- it 'should simplify render partial with object' do
19
+ it 'simplifies render partial with object' do
20
20
  content = <<-EOF
21
21
  <%= render partial: 'post', object: @post %>
22
22
  EOF
@@ -25,7 +25,7 @@ module RailsBestPractices
25
25
  expect(runner.errors[0].to_s).to eq('app/views/posts/index.html.erb:1 - simplify render in views')
26
26
  end
27
27
 
28
- it 'should simplify render partial with collection' do
28
+ it 'simplifies render partial with collection' do
29
29
  content = <<-EOF
30
30
  <%= render partial: 'posts', collection: @posts %>
31
31
  EOF
@@ -34,7 +34,7 @@ module RailsBestPractices
34
34
  expect(runner.errors[0].to_s).to eq('app/views/posts/index.html.erb:1 - simplify render in views')
35
35
  end
36
36
 
37
- it 'should simplify render partial with local variables' do
37
+ it 'simplifies render partial with local variables' do
38
38
  content = <<-EOF
39
39
  <%= render partial: 'comment', locals: { parent: post } %>
40
40
  EOF
@@ -43,7 +43,7 @@ module RailsBestPractices
43
43
  expect(runner.errors[0].to_s).to eq('app/views/posts/index.html.erb:1 - simplify render in views')
44
44
  end
45
45
 
46
- it 'should not simplify render simple partial' do
46
+ it 'does not simplify render simple partial' do
47
47
  content = <<-EOF
48
48
  <%= render 'sidebar' %>
49
49
  <%= render 'shared/sidebar' %>
@@ -52,7 +52,7 @@ module RailsBestPractices
52
52
  expect(runner.errors.size).to eq(0)
53
53
  end
54
54
 
55
- it 'should not simplify render partial with object' do
55
+ it 'does not simplify render partial with object' do
56
56
  content = <<-EOF
57
57
  <%= render @post %>
58
58
  EOF
@@ -60,7 +60,7 @@ module RailsBestPractices
60
60
  expect(runner.errors.size).to eq(0)
61
61
  end
62
62
 
63
- it 'should not simplify render partial with collection' do
63
+ it 'does not simplify render partial with collection' do
64
64
  content = <<-EOF
65
65
  <%= render @posts %>
66
66
  EOF
@@ -68,7 +68,7 @@ module RailsBestPractices
68
68
  expect(runner.errors.size).to eq(0)
69
69
  end
70
70
 
71
- it 'should not simplify render partial with local variables' do
71
+ it 'does not simplify render partial with local variables' do
72
72
  content = <<-EOF
73
73
  <%= render 'comment', parent: post %>
74
74
  EOF
@@ -76,7 +76,7 @@ module RailsBestPractices
76
76
  expect(runner.errors.size).to eq(0)
77
77
  end
78
78
 
79
- it 'should not simplify render partial with complex partial' do
79
+ it 'does not simplify render partial with complex partial' do
80
80
  content = <<-EOF
81
81
  <%= render partial: 'shared/post', object: @post %>
82
82
  EOF
@@ -84,7 +84,7 @@ module RailsBestPractices
84
84
  expect(runner.errors.size).to eq(0)
85
85
  end
86
86
 
87
- it 'should not simplify render partial with layout option' do
87
+ it 'does not simplify render partial with layout option' do
88
88
  content = <<-EOF
89
89
  <%= render partial: 'post', layout: 'post' %>
90
90
  EOF
@@ -92,8 +92,8 @@ module RailsBestPractices
92
92
  expect(runner.errors.size).to eq(0)
93
93
  end
94
94
 
95
- it 'should not check ignored files' do
96
- runner = Core::Runner.new(reviews: SimplifyRenderInViewsReview.new(ignored_files: /views\/posts\/index/))
95
+ it 'does not check ignored files' do
96
+ runner = Core::Runner.new(reviews: described_class.new(ignored_files: %r{views/posts/index}))
97
97
  content = <<-EOF
98
98
  <%= render partial: 'sidebar' %>
99
99
  EOF