rails_best_practices 1.9.0 → 1.9.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.
Files changed (81) hide show
  1. data/.travis.yml +4 -1
  2. data/Gemfile +0 -3
  3. data/Gemfile.lock +10 -9
  4. data/README.md +2 -0
  5. data/lib/rails_best_practices/analyzer.rb +40 -21
  6. data/lib/rails_best_practices/core.rb +1 -0
  7. data/lib/rails_best_practices/core/check.rb +12 -0
  8. data/lib/rails_best_practices/core/configs.rb +7 -0
  9. data/lib/rails_best_practices/core/error.rb +2 -1
  10. data/lib/rails_best_practices/core/routes.rb +11 -5
  11. data/lib/rails_best_practices/core/runner.rb +6 -2
  12. data/lib/rails_best_practices/core_ext/sexp.rb +3 -1
  13. data/lib/rails_best_practices/prepares.rb +5 -0
  14. data/lib/rails_best_practices/prepares/config_prepare.rb +21 -0
  15. data/lib/rails_best_practices/prepares/route_prepare.rb +24 -7
  16. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +11 -3
  17. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +7 -3
  18. data/lib/rails_best_practices/version.rb +1 -1
  19. data/rails_best_practices.gemspec +1 -0
  20. data/spec/rails_best_practices/analyzer_spec.rb +52 -32
  21. data/spec/rails_best_practices/core/check_spec.rb +64 -45
  22. data/spec/rails_best_practices/core/checking_visitor_spec.rb +65 -64
  23. data/spec/rails_best_practices/core/configs_spec.rb +7 -0
  24. data/spec/rails_best_practices/core/controllers_spec.rb +4 -2
  25. data/spec/rails_best_practices/core/error_spec.rb +28 -22
  26. data/spec/rails_best_practices/core/helpers_spec.rb +4 -2
  27. data/spec/rails_best_practices/core/klasses_spec.rb +8 -6
  28. data/spec/rails_best_practices/core/mailers_spec.rb +4 -2
  29. data/spec/rails_best_practices/core/methods_spec.rb +37 -35
  30. data/spec/rails_best_practices/core/model_associations_spec.rb +17 -15
  31. data/spec/rails_best_practices/core/model_attributes_spec.rb +17 -15
  32. data/spec/rails_best_practices/core/models_spec.rb +4 -2
  33. data/spec/rails_best_practices/core/modules_spec.rb +21 -19
  34. data/spec/rails_best_practices/core/nil_spec.rb +23 -21
  35. data/spec/rails_best_practices/core/routes_spec.rb +21 -14
  36. data/spec/rails_best_practices/core/runner_spec.rb +17 -15
  37. data/spec/rails_best_practices/core_ext/sexp_spec.rb +32 -7
  38. data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +35 -31
  39. data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +35 -31
  40. data/spec/rails_best_practices/prepares/config_prepare_spec.rb +24 -0
  41. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +122 -123
  42. data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +36 -32
  43. data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +12 -8
  44. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +326 -322
  45. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +619 -573
  46. data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +25 -21
  47. data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +85 -87
  48. data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +224 -222
  49. data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +30 -26
  50. data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +79 -75
  51. data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +76 -72
  52. data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +138 -140
  53. data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +38 -34
  54. data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +22 -18
  55. data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +57 -53
  56. data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +62 -63
  57. data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +51 -50
  58. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +140 -136
  59. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +48 -44
  60. data/spec/rails_best_practices/reviews/not_use_times_ago_in_words_review_spec.rb +42 -38
  61. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +151 -149
  62. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +86 -55
  63. data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +23 -19
  64. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +290 -286
  65. data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +76 -72
  66. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +601 -597
  67. data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +55 -54
  68. data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +34 -30
  69. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +288 -289
  70. data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +59 -55
  71. data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +73 -69
  72. data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +89 -98
  73. data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +52 -52
  74. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +192 -190
  75. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +114 -121
  76. data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +189 -190
  77. data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +97 -93
  78. data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +146 -151
  79. data/spec/spec_helper.rb +11 -20
  80. metadata +42 -26
  81. data/.watchr.example +0 -65
@@ -1,84 +1,88 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe RailsBestPractices::Reviews::RemoveUnusedMethodsInHelpersReview do
4
- let(:runner) { RailsBestPractices::Core::Runner.new(
5
- :prepares => [RailsBestPractices::Prepares::ControllerPrepare.new, RailsBestPractices::Prepares::HelperPrepare.new],
6
- :reviews => RailsBestPractices::Reviews::RemoveUnusedMethodsInHelpersReview.new(:except_methods => [])
7
- ) }
3
+ module RailsBestPractices
4
+ module Reviews
5
+ describe RemoveUnusedMethodsInHelpersReview do
6
+ let(:runner) { Core::Runner.new(
7
+ :prepares => [Prepares::ControllerPrepare.new, Prepares::HelperPrepare.new],
8
+ :reviews => RemoveUnusedMethodsInHelpersReview.new(:except_methods => [])
9
+ ) }
8
10
 
9
- it "should remove unused methods" do
10
- content =<<-EOF
11
- module PostsHelper
12
- def unused; end
13
- end
14
- EOF
15
- runner.prepare('app/helpers/posts_helper.rb', content)
16
- runner.review('app/helpers/posts_helper.rb', content)
17
- runner.after_review
18
- runner.should have(1).errors
19
- runner.errors[0].to_s.should == "app/helpers/posts_helper.rb:2 - remove unused methods (PostsHelper#unused)"
20
- end
21
-
22
- it "should not remove unused methods if called on views" do
23
- content =<<-EOF
24
- module PostsHelper
25
- def used?(post); end
26
- end
27
- EOF
28
- runner.prepare('app/helpers/posts_helper.rb', content)
29
- runner.review('app/helpers/posts_helper.rb', content)
30
- content =<<-EOF
31
- <% if used?(@post) %>
32
- <% end %>
33
- EOF
34
- runner.review('app/views/posts/show.html.erb', content)
35
- runner.after_review
36
- runner.should have(0).errors
37
- end
11
+ it "should remove unused methods" do
12
+ content =<<-EOF
13
+ module PostsHelper
14
+ def unused; end
15
+ end
16
+ EOF
17
+ runner.prepare('app/helpers/posts_helper.rb', content)
18
+ runner.review('app/helpers/posts_helper.rb', content)
19
+ runner.after_review
20
+ runner.should have(1).errors
21
+ runner.errors[0].to_s.should == "app/helpers/posts_helper.rb:2 - remove unused methods (PostsHelper#unused)"
22
+ end
38
23
 
39
- it "should not remove unused methods if called on helpers" do
40
- content =<<-EOF
41
- module PostsHelper
42
- def used?(post)
43
- test?(post)
24
+ it "should not remove unused methods if called on views" do
25
+ content =<<-EOF
26
+ module PostsHelper
27
+ def used?(post); end
28
+ end
29
+ EOF
30
+ runner.prepare('app/helpers/posts_helper.rb', content)
31
+ runner.review('app/helpers/posts_helper.rb', content)
32
+ content =<<-EOF
33
+ <% if used?(@post) %>
34
+ <% end %>
35
+ EOF
36
+ runner.review('app/views/posts/show.html.erb', content)
37
+ runner.after_review
38
+ runner.should have(0).errors
44
39
  end
45
40
 
46
- def test?(post); end
47
- end
48
- EOF
49
- runner.prepare('app/helpers/posts_helper.rb', content)
50
- runner.review('app/helpers/posts_helper.rb', content)
51
- content =<<-EOF
52
- <% if used?(@post) %>
53
- <% end %>
54
- EOF
55
- runner.review('app/views/posts/show.html.erb', content)
56
- runner.after_review
57
- runner.should have(0).errors
58
- end
41
+ it "should not remove unused methods if called on helpers" do
42
+ content =<<-EOF
43
+ module PostsHelper
44
+ def used?(post)
45
+ test?(post)
46
+ end
59
47
 
60
- it "should not remove unused methods if called on controllers" do
61
- helper_content =<<-EOF
62
- module PostsHelper
63
- def used?(post); end
64
- end
65
- EOF
66
- controller_content =<<-EOF
67
- class PostsController < InheritedResources::Base
68
- include PostsHelper
48
+ def test?(post); end
49
+ end
50
+ EOF
51
+ runner.prepare('app/helpers/posts_helper.rb', content)
52
+ runner.review('app/helpers/posts_helper.rb', content)
53
+ content =<<-EOF
54
+ <% if used?(@post) %>
55
+ <% end %>
56
+ EOF
57
+ runner.review('app/views/posts/show.html.erb', content)
58
+ runner.after_review
59
+ runner.should have(0).errors
60
+ end
61
+
62
+ it "should not remove unused methods if called on controllers" do
63
+ helper_content =<<-EOF
64
+ module PostsHelper
65
+ def used?(post); end
66
+ end
67
+ EOF
68
+ controller_content =<<-EOF
69
+ class PostsController < InheritedResources::Base
70
+ include PostsHelper
69
71
 
70
- def show
71
- @post = Post.find(params[:id])
72
- used?(@post)
72
+ def show
73
+ @post = Post.find(params[:id])
74
+ used?(@post)
75
+ end
76
+ end
77
+ EOF
78
+ runner.prepare('app/helpers/posts_helper.rb', helper_content)
79
+ runner.prepare('app/controllers/posts_controller.rb', controller_content)
80
+ runner.after_prepare
81
+ runner.review('app/helpers/posts_helper.rb', helper_content)
82
+ runner.review('app/controllers/posts_controller.rb', controller_content)
83
+ runner.after_review
84
+ runner.should have(0).errors
73
85
  end
74
86
  end
75
- EOF
76
- runner.prepare('app/helpers/posts_helper.rb', helper_content)
77
- runner.prepare('app/controllers/posts_controller.rb', controller_content)
78
- runner.after_prepare
79
- runner.review('app/helpers/posts_helper.rb', helper_content)
80
- runner.review('app/controllers/posts_controller.rb', controller_content)
81
- runner.after_review
82
- runner.should have(0).errors
83
87
  end
84
88
  end
@@ -1,670 +1,674 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe RailsBestPractices::Reviews::RemoveUnusedMethodsInModelsReview do
4
- let(:runner) { RailsBestPractices::Core::Runner.new(
5
- :prepares => RailsBestPractices::Prepares::ModelPrepare.new,
6
- :reviews => RailsBestPractices::Reviews::RemoveUnusedMethodsInModelsReview.new({'except_methods' => ["*#set_cache"]})
7
- ) }
8
-
9
- context "private" do
10
- it "should remove unused methods" do
11
- content =<<-EOF
12
- class Post < ActiveRecord::Base
13
- def find; end
14
- private
15
- def find_by_sql; end
16
- end
17
- EOF
18
- runner.prepare('app/models/post.rb', content)
19
- runner.review('app/models/post.rb', content)
20
- content =<<-EOF
21
- class PostsController < ApplicationController
22
- def get
23
- Post.new.find
3
+ module RailsBestPractices
4
+ module Reviews
5
+ describe RemoveUnusedMethodsInModelsReview do
6
+ let(:runner) { Core::Runner.new(
7
+ :prepares => Prepares::ModelPrepare.new,
8
+ :reviews => RemoveUnusedMethodsInModelsReview.new({'except_methods' => ["*#set_cache"]})
9
+ ) }
10
+
11
+ context "private" do
12
+ it "should remove unused methods" do
13
+ content =<<-EOF
14
+ class Post < ActiveRecord::Base
15
+ def find; end
16
+ private
17
+ def find_by_sql; end
18
+ end
19
+ EOF
20
+ runner.prepare('app/models/post.rb', content)
21
+ runner.review('app/models/post.rb', content)
22
+ content =<<-EOF
23
+ class PostsController < ApplicationController
24
+ def get
25
+ Post.new.find
26
+ end
27
+ end
28
+ EOF
29
+ runner.review('app/controllers/posts_controller.rb', content)
30
+ runner.after_review
31
+ runner.should have(1).errors
32
+ runner.errors[0].to_s.should == "app/models/post.rb:4 - remove unused methods (Post#find_by_sql)"
24
33
  end
25
- end
26
- EOF
27
- runner.review('app/controllers/posts_controller.rb', content)
28
- runner.after_review
29
- runner.should have(1).errors
30
- runner.errors[0].to_s.should == "app/models/post.rb:4 - remove unused methods (Post#find_by_sql)"
31
- end
32
34
 
33
- it "should not remove unused methods with except_methods" do
34
- content =<<-EOF
35
- class Post < ActiveRecord::Base
36
- def set_cache; end
37
- end
38
- EOF
39
- runner.prepare('app/models/post.rb', content)
40
- runner.review('app/models/post.rb', content)
41
- runner.after_review
42
- runner.should have(0).errors
43
- end
44
-
45
- it "should not remove unused methods with var_ref" do
46
- content =<<-EOF
47
- class Post < ActiveRecord::Base
48
- def find;
49
- find_by_sql
50
- end
51
- private
52
- def find_by_sql; end
53
- end
54
- EOF
55
- runner.prepare('app/models/post.rb', content)
56
- runner.review('app/models/post.rb', content)
57
- content =<<-EOF
58
- class PostsController < ApplicationController
59
- def get
60
- Post.new.find
35
+ it "should not remove unused methods with except_methods" do
36
+ content =<<-EOF
37
+ class Post < ActiveRecord::Base
38
+ def set_cache; end
39
+ end
40
+ EOF
41
+ runner.prepare('app/models/post.rb', content)
42
+ runner.review('app/models/post.rb', content)
43
+ runner.after_review
44
+ runner.should have(0).errors
61
45
  end
62
- end
63
- EOF
64
- runner.review('app/controllers/posts_controller.rb', content)
65
- runner.after_review
66
- runner.should have(0).errors
67
- end
68
-
69
- it "should not remove unused methods with callback" do
70
- content =<<-EOF
71
- class Post < ActiveRecord::Base
72
- after_save :expire_cache
73
- private
74
- def expire_cache; end
75
- end
76
- EOF
77
- runner.prepare('app/models/post.rb', content)
78
- runner.review('app/models/post.rb', content)
79
- runner.after_review
80
- runner.should have(0).errors
81
- end
82
46
 
83
- it "should not remove unused method with command" do
84
- content =<<-EOF
85
- class Post < ActiveRecord::Base
86
- def fetch
87
- get(:position => 'first')
88
- end
89
- private
90
- def get(options={}); end
91
- end
92
- EOF
93
- runner.prepare('app/models/post.rb', content)
94
- runner.review('app/models/post.rb', content)
95
- content =<<-EOF
96
- class PostsController < ApplicationController
97
- def get
98
- Post.new.fetch
47
+ it "should not remove unused methods with var_ref" do
48
+ content =<<-EOF
49
+ class Post < ActiveRecord::Base
50
+ def find
51
+ find_by_sql
52
+ end
53
+ private
54
+ def find_by_sql; end
55
+ end
56
+ EOF
57
+ runner.prepare('app/models/post.rb', content)
58
+ runner.review('app/models/post.rb', content)
59
+ content =<<-EOF
60
+ class PostsController < ApplicationController
61
+ def get
62
+ Post.new.find
63
+ end
64
+ end
65
+ EOF
66
+ runner.review('app/controllers/posts_controller.rb', content)
67
+ runner.after_review
68
+ runner.should have(0).errors
99
69
  end
100
- end
101
- EOF
102
- runner.review('app/controllers/posts_controller.rb', content)
103
- runner.after_review
104
- runner.should have(0).errors
105
- end
106
70
 
107
- it "should not remove unused method with call" do
108
- content =<<-EOF
109
- class Post < ActiveRecord::Base
110
- def conditions
111
- self.build_conditions({})
112
- end
113
- private
114
- def build_conditions(conditions={}); end
115
- end
116
- EOF
117
- runner.prepare('app/models/post.rb', content)
118
- runner.review('app/models/post.rb', content)
119
- content =<<-EOF
120
- class PostsController < ApplicationController
121
- def get
122
- Post.new.conditions
71
+ it "should not remove unused methods with callback" do
72
+ content =<<-EOF
73
+ class Post < ActiveRecord::Base
74
+ after_save :expire_cache
75
+ private
76
+ def expire_cache; end
77
+ end
78
+ EOF
79
+ runner.prepare('app/models/post.rb', content)
80
+ runner.review('app/models/post.rb', content)
81
+ runner.after_review
82
+ runner.should have(0).errors
123
83
  end
124
- end
125
- EOF
126
- runner.review('app/controllers/posts_controller.rb', content)
127
- runner.after_review
128
- runner.should have(0).errors
129
- end
130
84
 
131
- it "should not remove unused method with message" do
132
- content =<<-EOF
133
- class Post < ActiveRecord::Base
134
- def save
135
- transaction true do
136
- self.update
85
+ it "should not remove unused method with command" do
86
+ content =<<-EOF
87
+ class Post < ActiveRecord::Base
88
+ def fetch
89
+ get(:position => 'first')
90
+ end
91
+ private
92
+ def get(options={}); end
93
+ end
94
+ EOF
95
+ runner.prepare('app/models/post.rb', content)
96
+ runner.review('app/models/post.rb', content)
97
+ content =<<-EOF
98
+ class PostsController < ApplicationController
99
+ def get
100
+ Post.new.fetch
101
+ end
137
102
  end
103
+ EOF
104
+ runner.review('app/controllers/posts_controller.rb', content)
105
+ runner.after_review
106
+ runner.should have(0).errors
138
107
  end
139
- private
140
- def transaction(force); end
141
- end
142
- EOF
143
- runner.prepare('app/models/post.rb', content)
144
- runner.review('app/models/post.rb', content)
145
- content =<<-EOF
146
- class PostsController < ApplicationController
147
- def create
148
- Post.new.save
108
+
109
+ it "should not remove unused method with call" do
110
+ content =<<-EOF
111
+ class Post < ActiveRecord::Base
112
+ def conditions
113
+ self.build_conditions({})
114
+ end
115
+ private
116
+ def build_conditions(conditions={}); end
117
+ end
118
+ EOF
119
+ runner.prepare('app/models/post.rb', content)
120
+ runner.review('app/models/post.rb', content)
121
+ content =<<-EOF
122
+ class PostsController < ApplicationController
123
+ def get
124
+ Post.new.conditions
125
+ end
126
+ end
127
+ EOF
128
+ runner.review('app/controllers/posts_controller.rb', content)
129
+ runner.after_review
130
+ runner.should have(0).errors
149
131
  end
150
- end
151
- EOF
152
- runner.review('app/controllers/posts_controller.rb', content)
153
- runner.after_review
154
- runner.should have(0).errors
155
- end
156
132
 
157
- it "should not remove unused method with validation condition" do
158
- content =<<-EOF
159
- class Post < ActiveRecord::Base
160
- validates_uniqueness_of :login, :if => :email_blank?
161
- private
162
- def email_blank?; end
163
- end
164
- EOF
165
- runner.prepare('app/models/post.rb', content)
166
- runner.review('app/models/post.rb', content)
167
- runner.after_review
168
- runner.should have(0).errors
169
- end
133
+ it "should not remove unused method with message" do
134
+ content =<<-EOF
135
+ class Post < ActiveRecord::Base
136
+ def save
137
+ transaction true do
138
+ self.update
139
+ end
140
+ end
141
+ private
142
+ def transaction(force); end
143
+ end
144
+ EOF
145
+ runner.prepare('app/models/post.rb', content)
146
+ runner.review('app/models/post.rb', content)
147
+ content =<<-EOF
148
+ class PostsController < ApplicationController
149
+ def create
150
+ Post.new.save
151
+ end
152
+ end
153
+ EOF
154
+ runner.review('app/controllers/posts_controller.rb', content)
155
+ runner.after_review
156
+ runner.should have(0).errors
157
+ end
170
158
 
171
- it "should not remove unused method with aasm" do
172
- content =<<-EOF
173
- class Post < ActiveRecord::Base
174
- aasm_state :accepted, :enter => [:update_datetime]
175
- private
176
- def update_datetime; end
177
- end
178
- EOF
179
- runner.prepare('app/models/post.rb', content)
180
- runner.review('app/models/post.rb', content)
181
- runner.after_review
182
- runner.should have(0).errors
183
- end
159
+ it "should not remove unused method with validation condition" do
160
+ content =<<-EOF
161
+ class Post < ActiveRecord::Base
162
+ validates_uniqueness_of :login, :if => :email_blank?
163
+ private
164
+ def email_blank?; end
165
+ end
166
+ EOF
167
+ runner.prepare('app/models/post.rb', content)
168
+ runner.review('app/models/post.rb', content)
169
+ runner.after_review
170
+ runner.should have(0).errors
171
+ end
184
172
 
185
- it "should not remove unused method with initialize" do
186
- content =<<-EOF
187
- class Post < ActiveRecord::Base
188
- private
189
- def initialize; end
190
- end
191
- EOF
192
- runner.prepare('app/models/post.rb', content)
193
- runner.review('app/models/post.rb', content)
194
- runner.after_review
195
- runner.should have(0).errors
196
- end
197
- end
173
+ it "should not remove unused method with aasm" do
174
+ content =<<-EOF
175
+ class Post < ActiveRecord::Base
176
+ aasm_state :accepted, :enter => [:update_datetime]
177
+ private
178
+ def update_datetime; end
179
+ end
180
+ EOF
181
+ runner.prepare('app/models/post.rb', content)
182
+ runner.review('app/models/post.rb', content)
183
+ runner.after_review
184
+ runner.should have(0).errors
185
+ end
198
186
 
199
- context "public" do
200
- it "should remove unused methods" do
201
- content =<<-EOF
202
- class Post < ActiveRecord::Base
203
- def fetch; end
187
+ it "should not remove unused method with initialize" do
188
+ content =<<-EOF
189
+ class Post < ActiveRecord::Base
190
+ private
191
+ def initialize; end
192
+ end
193
+ EOF
194
+ runner.prepare('app/models/post.rb', content)
195
+ runner.review('app/models/post.rb', content)
196
+ runner.after_review
197
+ runner.should have(0).errors
198
+ end
204
199
  end
205
- EOF
206
- runner.prepare('app/models/post.rb', content)
207
- runner.after_review
208
- runner.should have(1).errors
209
- runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#fetch)"
210
- end
211
200
 
212
- it "should not remove unused methods" do
213
- content =<<-EOF
214
- class Post < ActiveRecord::Base
215
- def fetch; end
216
- end
217
- EOF
218
- runner.prepare('app/models/post.rb', content)
219
- content =<<-EOF
220
- class PostsController < ApplicationController
221
- def show
222
- @post.fetch
201
+ context "public" do
202
+ it "should remove unused methods" do
203
+ content =<<-EOF
204
+ class Post < ActiveRecord::Base
205
+ def fetch; end
206
+ end
207
+ EOF
208
+ runner.prepare('app/models/post.rb', content)
209
+ runner.after_review
210
+ runner.should have(1).errors
211
+ runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#fetch)"
223
212
  end
224
- end
225
- EOF
226
- runner.review('app/controllers/posts_controller.rb', content)
227
- runner.after_review
228
- runner.should have(0).errors
229
- end
230
213
 
231
- it "should not remove unused methods for attribute assignment" do
232
- content =<<-EOF
233
- class Post < ActiveRecord::Base
234
- def user=(user); end
235
- end
236
- EOF
237
- runner.prepare('app/models/post.rb', content)
238
- runner.review('app/models/post.rb', content)
239
- runner.after_review
240
- runner.should have(0).errors
241
- end
214
+ it "should not remove unused methods" do
215
+ content =<<-EOF
216
+ class Post < ActiveRecord::Base
217
+ def fetch; end
218
+ end
219
+ EOF
220
+ runner.prepare('app/models/post.rb', content)
221
+ content =<<-EOF
222
+ class PostsController < ApplicationController
223
+ def show
224
+ @post.fetch
225
+ end
226
+ end
227
+ EOF
228
+ runner.review('app/controllers/posts_controller.rb', content)
229
+ runner.after_review
230
+ runner.should have(0).errors
231
+ end
242
232
 
243
- it "should not remove unused methods for try" do
244
- content =<<-EOF
245
- class Post < ActiveRecord::Base
246
- def find(user_id); end
247
- end
248
- EOF
249
- runner.prepare('app/models/post.rb', content)
250
- runner.review('app/models/post.rb', content)
251
- content =<<-EOF
252
- class PostsController < ApplicationController
253
- def find
254
- Post.new.try(:find, current_user.id)
233
+ it "should not remove unused methods for attribute assignment" do
234
+ content =<<-EOF
235
+ class Post < ActiveRecord::Base
236
+ def user=(user); end
237
+ end
238
+ EOF
239
+ runner.prepare('app/models/post.rb', content)
240
+ runner.review('app/models/post.rb', content)
241
+ runner.after_review
242
+ runner.should have(0).errors
255
243
  end
256
- end
257
- EOF
258
- runner.review('app/controllers/posts_controller.rb', content)
259
- runner.after_review
260
- runner.should have(0).errors
261
- end
262
244
 
263
- it "should not remove unused methods for send" do
264
- content =<<-EOF
265
- class Post < ActiveRecord::Base
266
- def find(user_id); end
267
- end
268
- EOF
269
- runner.prepare('app/models/post.rb', content)
270
- runner.review('app/models/post.rb', content)
271
- content =<<-EOF
272
- class PostsController < ApplicationController
273
- def find
274
- Post.new.send(:find, current_user.id)
245
+ it "should not remove unused methods for try" do
246
+ content =<<-EOF
247
+ class Post < ActiveRecord::Base
248
+ def find(user_id); end
249
+ end
250
+ EOF
251
+ runner.prepare('app/models/post.rb', content)
252
+ runner.review('app/models/post.rb', content)
253
+ content =<<-EOF
254
+ class PostsController < ApplicationController
255
+ def find
256
+ Post.new.try(:find, current_user.id)
257
+ end
258
+ end
259
+ EOF
260
+ runner.review('app/controllers/posts_controller.rb', content)
261
+ runner.after_review
262
+ runner.should have(0).errors
275
263
  end
276
- end
277
- EOF
278
- runner.review('app/controllers/posts_controller.rb', content)
279
- runner.after_review
280
- runner.should have(0).errors
281
- end
282
264
 
283
- it "should remove unused methods for send string_embexpre" do
284
- content =<<-EOF
285
- class Post < ActiveRecord::Base
286
- def find_first; end
287
- end
288
- EOF
289
- runner.prepare('app/models/post.rb', content)
290
- runner.review('app/models/post.rb', content)
291
- content =<<-EOF
292
- class PostsController < ApplicationController
293
- def find
294
- type = "first"
295
- Post.new.send("find_\#{type}")
265
+ it "should not remove unused methods for send" do
266
+ content =<<-EOF
267
+ class Post < ActiveRecord::Base
268
+ def find(user_id); end
269
+ end
270
+ EOF
271
+ runner.prepare('app/models/post.rb', content)
272
+ runner.review('app/models/post.rb', content)
273
+ content =<<-EOF
274
+ class PostsController < ApplicationController
275
+ def find
276
+ Post.new.send(:find, current_user.id)
277
+ end
278
+ end
279
+ EOF
280
+ runner.review('app/controllers/posts_controller.rb', content)
281
+ runner.after_review
282
+ runner.should have(0).errors
296
283
  end
297
- end
298
- EOF
299
- runner.review('app/controllers/posts_controller.rb', content)
300
- runner.after_review
301
- runner.should have(1).errors
302
- end
303
284
 
304
- it "should remove unused methods for send variable" do
305
- content =<<-EOF
306
- class Post < ActiveRecord::Base
307
- def first; end
308
- end
309
- EOF
310
- runner.prepare('app/models/post.rb', content)
311
- runner.review('app/models/post.rb', content)
312
- content =<<-EOF
313
- class PostsController < ApplicationController
314
- def find
315
- type = "first"
316
- Post.new.send(type)
285
+ it "should remove unused methods for send string_embexpre" do
286
+ content =<<-EOF
287
+ class Post < ActiveRecord::Base
288
+ def find_first; end
289
+ end
290
+ EOF
291
+ runner.prepare('app/models/post.rb', content)
292
+ runner.review('app/models/post.rb', content)
293
+ content =<<-EOF
294
+ class PostsController < ApplicationController
295
+ def find
296
+ type = "first"
297
+ Post.new.send("find_\#{type}")
298
+ end
299
+ end
300
+ EOF
301
+ runner.review('app/controllers/posts_controller.rb', content)
302
+ runner.after_review
303
+ runner.should have(1).errors
317
304
  end
318
- end
319
- EOF
320
- runner.review('app/controllers/posts_controller.rb', content)
321
- runner.after_review
322
- runner.should have(1).errors
323
- end
324
- end
325
305
 
326
- context "protected" do
327
- it "should not remove unused methods" do
328
- content =<<-EOF
329
- class Post < ActiveRecord::Base
330
- protected
331
- def test; end
332
- end
333
- EOF
334
- runner.prepare("app/models/post.rb", content)
335
- runner.review("app/models/post.rb", content)
336
- content =<<-EOF
337
- class PostsController < ApplicationController
338
- def test
339
- Post.new.test
306
+ it "should remove unused methods for send variable" do
307
+ content =<<-EOF
308
+ class Post < ActiveRecord::Base
309
+ def first; end
310
+ end
311
+ EOF
312
+ runner.prepare('app/models/post.rb', content)
313
+ runner.review('app/models/post.rb', content)
314
+ content =<<-EOF
315
+ class PostsController < ApplicationController
316
+ def find
317
+ type = "first"
318
+ Post.new.send(type)
319
+ end
320
+ end
321
+ EOF
322
+ runner.review('app/controllers/posts_controller.rb', content)
323
+ runner.after_review
324
+ runner.should have(1).errors
340
325
  end
341
326
  end
342
- EOF
343
- runner.review('app/controllers/posts_controller.rb', content)
344
- runner.after_review
345
- runner.should have(1).errors
346
- runner.errors[0].to_s.should == "app/models/post.rb:3 - remove unused methods (Post#test)"
347
- end
348
327
 
349
- it "should not remove unused methods" do
350
- post_content =<<-EOF
351
- class Post < ActiveRecord::Base
352
- protected
353
- def test; end
354
- end
355
- EOF
356
- blog_post_content =<<-EOF
357
- class BlogPost < Post
358
- def play
359
- test
328
+ context "protected" do
329
+ it "should not remove unused methods" do
330
+ content =<<-EOF
331
+ class Post < ActiveRecord::Base
332
+ protected
333
+ def test; end
334
+ end
335
+ EOF
336
+ runner.prepare("app/models/post.rb", content)
337
+ runner.review("app/models/post.rb", content)
338
+ content =<<-EOF
339
+ class PostsController < ApplicationController
340
+ def test
341
+ Post.new.test
342
+ end
343
+ end
344
+ EOF
345
+ runner.review('app/controllers/posts_controller.rb', content)
346
+ runner.after_review
347
+ runner.should have(1).errors
348
+ runner.errors[0].to_s.should == "app/models/post.rb:3 - remove unused methods (Post#test)"
360
349
  end
361
- end
362
- EOF
363
- runner.prepare("app/models/post.rb", post_content)
364
- runner.prepare("app/models/blog_post.rb", blog_post_content)
365
- runner.review("app/models/post.rb", post_content)
366
- runner.review("app/models/blog_post.rb", blog_post_content)
367
- content =<<-EOF
368
- class BlogPostsController < ApplicationController
369
- def play
370
- BlogPost.new.play
350
+
351
+ it "should not remove unused methods" do
352
+ post_content =<<-EOF
353
+ class Post < ActiveRecord::Base
354
+ protected
355
+ def test; end
356
+ end
357
+ EOF
358
+ blog_post_content =<<-EOF
359
+ class BlogPost < Post
360
+ def play
361
+ test
362
+ end
363
+ end
364
+ EOF
365
+ runner.prepare("app/models/post.rb", post_content)
366
+ runner.prepare("app/models/blog_post.rb", blog_post_content)
367
+ runner.review("app/models/post.rb", post_content)
368
+ runner.review("app/models/blog_post.rb", blog_post_content)
369
+ content =<<-EOF
370
+ class BlogPostsController < ApplicationController
371
+ def play
372
+ BlogPost.new.play
373
+ end
374
+ end
375
+ EOF
376
+ runner.review('app/controllers/posts_controller.rb', content)
377
+ runner.after_review
378
+ runner.should have(0).errors
371
379
  end
372
380
  end
373
- EOF
374
- runner.review('app/controllers/posts_controller.rb', content)
375
- runner.after_review
376
- runner.should have(0).errors
377
- end
378
- end
379
381
 
380
- context "named_scope" do
381
- it "should not remove unused named_scope" do
382
- content =<<-EOF
383
- class Post < ActiveRecord::Base
384
- named_scope :active, :conditions => {:active => true}
385
- end
386
- EOF
387
- runner.prepare("app/models/post.rb", content)
388
- runner.review("app/models/post.rb", content)
389
- content =<<-EOF
390
- class PostsController < ApplicationController
391
- def index
392
- @posts = Post.active
382
+ context "named_scope" do
383
+ it "should not remove unused named_scope" do
384
+ content =<<-EOF
385
+ class Post < ActiveRecord::Base
386
+ named_scope :active, :conditions => {:active => true}
387
+ end
388
+ EOF
389
+ runner.prepare("app/models/post.rb", content)
390
+ runner.review("app/models/post.rb", content)
391
+ content =<<-EOF
392
+ class PostsController < ApplicationController
393
+ def index
394
+ @posts = Post.active
395
+ end
396
+ end
397
+ EOF
398
+ runner.review("app/controllers/posts_controller.rb", content)
399
+ runner.after_review
400
+ runner.should have(0).errors
393
401
  end
394
- end
395
- EOF
396
- runner.review("app/controllers/posts_controller.rb", content)
397
- runner.after_review
398
- runner.should have(0).errors
399
- end
400
402
 
401
- it "should remove unused named_scope" do
402
- content =<<-EOF
403
- class Post < ActiveRecord::Base
404
- named_scope :active, :conditions => {:active => true}
403
+ it "should remove unused named_scope" do
404
+ content =<<-EOF
405
+ class Post < ActiveRecord::Base
406
+ named_scope :active, :conditions => {:active => true}
407
+ end
408
+ EOF
409
+ runner.prepare("app/models/post.rb", content)
410
+ runner.review("app/models/post.rb", content)
411
+ runner.after_review
412
+ runner.should have(1).errors
413
+ runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#active)"
414
+ end
405
415
  end
406
- EOF
407
- runner.prepare("app/models/post.rb", content)
408
- runner.review("app/models/post.rb", content)
409
- runner.after_review
410
- runner.should have(1).errors
411
- runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#active)"
412
- end
413
- end
414
416
 
415
- context "scope" do
416
- it "should not remove unused scope" do
417
- content =<<-EOF
418
- class Post < ActiveRecord::Base
419
- scope :active, where(:active => true)
420
- end
421
- EOF
422
- runner.prepare("app/models/post.rb", content)
423
- runner.review("app/models/post.rb", content)
424
- content =<<-EOF
425
- class PostsController < ApplicationController
426
- def index
427
- @posts = Post.active
417
+ context "scope" do
418
+ it "should not remove unused scope" do
419
+ content =<<-EOF
420
+ class Post < ActiveRecord::Base
421
+ scope :active, where(:active => true)
422
+ end
423
+ EOF
424
+ runner.prepare("app/models/post.rb", content)
425
+ runner.review("app/models/post.rb", content)
426
+ content =<<-EOF
427
+ class PostsController < ApplicationController
428
+ def index
429
+ @posts = Post.active
430
+ end
431
+ end
432
+ EOF
433
+ runner.review("app/controllers/posts_controller.rb", content)
434
+ runner.after_review
435
+ runner.should have(0).errors
428
436
  end
429
- end
430
- EOF
431
- runner.review("app/controllers/posts_controller.rb", content)
432
- runner.after_review
433
- runner.should have(0).errors
434
- end
435
437
 
436
- it "should remove unused named_scope" do
437
- content =<<-EOF
438
- class Post < ActiveRecord::Base
439
- scope :active, where(:active => true)
438
+ it "should remove unused named_scope" do
439
+ content =<<-EOF
440
+ class Post < ActiveRecord::Base
441
+ scope :active, where(:active => true)
442
+ end
443
+ EOF
444
+ runner.prepare("app/models/post.rb", content)
445
+ runner.review("app/models/post.rb", content)
446
+ runner.after_review
447
+ runner.should have(1).errors
448
+ runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#active)"
449
+ end
440
450
  end
441
- EOF
442
- runner.prepare("app/models/post.rb", content)
443
- runner.review("app/models/post.rb", content)
444
- runner.after_review
445
- runner.should have(1).errors
446
- runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#active)"
447
- end
448
- end
449
451
 
450
- context "alias" do
451
- it "should not remove unused method with alias" do
452
- content =<<-EOF
453
- class Post < ActiveRecord::Base
454
- def old; end
455
- alias new old
456
- end
457
- EOF
458
- runner.prepare("app/models/post.rb", content)
459
- runner.review("app/models/post.rb", content)
460
- content =<<-EOF
461
- class PostsController < ApplicationController
462
- def show
463
- @post.new
452
+ context "alias" do
453
+ it "should not remove unused method with alias" do
454
+ content =<<-EOF
455
+ class Post < ActiveRecord::Base
456
+ def old; end
457
+ alias new old
458
+ end
459
+ EOF
460
+ runner.prepare("app/models/post.rb", content)
461
+ runner.review("app/models/post.rb", content)
462
+ content =<<-EOF
463
+ class PostsController < ApplicationController
464
+ def show
465
+ @post.new
466
+ end
467
+ end
468
+ EOF
469
+ runner.review("app/controllers/posts_controller.rb", content)
470
+ runner.after_review
471
+ runner.should have(0).errors
464
472
  end
465
- end
466
- EOF
467
- runner.review("app/controllers/posts_controller.rb", content)
468
- runner.after_review
469
- runner.should have(0).errors
470
- end
471
473
 
472
- it "should not remove unused method with symbol alias" do
473
- content =<<-EOF
474
- class Post < ActiveRecord::Base
475
- def old; end
476
- alias :new :old
477
- end
478
- EOF
479
- runner.prepare("app/models/post.rb", content)
480
- runner.review("app/models/post.rb", content)
481
- content =<<-EOF
482
- class PostsController < ApplicationController
483
- def show
484
- @post.new
474
+ it "should not remove unused method with symbol alias" do
475
+ content =<<-EOF
476
+ class Post < ActiveRecord::Base
477
+ def old; end
478
+ alias :new :old
479
+ end
480
+ EOF
481
+ runner.prepare("app/models/post.rb", content)
482
+ runner.review("app/models/post.rb", content)
483
+ content =<<-EOF
484
+ class PostsController < ApplicationController
485
+ def show
486
+ @post.new
487
+ end
488
+ end
489
+ EOF
490
+ runner.review("app/controllers/posts_controller.rb", content)
491
+ runner.after_review
492
+ runner.should have(0).errors
485
493
  end
486
- end
487
- EOF
488
- runner.review("app/controllers/posts_controller.rb", content)
489
- runner.after_review
490
- runner.should have(0).errors
491
- end
492
494
 
493
- it "should not remove unused method with alias_method" do
494
- content =<<-EOF
495
- class Post < ActiveRecord::Base
496
- def old; end
497
- alias_method :new, :old
498
- end
499
- EOF
500
- runner.prepare("app/models/post.rb", content)
501
- runner.review("app/models/post.rb", content)
502
- content =<<-EOF
503
- class PostsController < ApplicationController
504
- def show
505
- @post.new
495
+ it "should not remove unused method with alias_method" do
496
+ content =<<-EOF
497
+ class Post < ActiveRecord::Base
498
+ def old; end
499
+ alias_method :new, :old
500
+ end
501
+ EOF
502
+ runner.prepare("app/models/post.rb", content)
503
+ runner.review("app/models/post.rb", content)
504
+ content =<<-EOF
505
+ class PostsController < ApplicationController
506
+ def show
507
+ @post.new
508
+ end
509
+ end
510
+ EOF
511
+ runner.review("app/controllers/posts_controller.rb", content)
512
+ runner.after_review
513
+ runner.should have(0).errors
506
514
  end
507
- end
508
- EOF
509
- runner.review("app/controllers/posts_controller.rb", content)
510
- runner.after_review
511
- runner.should have(0).errors
512
- end
513
515
 
514
- it "should not remove unused method with alias_method_chain" do
515
- content =<<-EOF
516
- class Post < ActiveRecord::Base
517
- def method_with_feature; end
518
- alias_method_chain :method, :feature
519
- end
520
- EOF
521
- runner.prepare("app/models/post.rb", content)
522
- runner.review("app/models/post.rb", content)
523
- content =<<-EOF
524
- class PostsController < ApplicationController
525
- def show
526
- @post.method
516
+ it "should not remove unused method with alias_method_chain" do
517
+ content =<<-EOF
518
+ class Post < ActiveRecord::Base
519
+ def method_with_feature; end
520
+ alias_method_chain :method, :feature
521
+ end
522
+ EOF
523
+ runner.prepare("app/models/post.rb", content)
524
+ runner.review("app/models/post.rb", content)
525
+ content =<<-EOF
526
+ class PostsController < ApplicationController
527
+ def show
528
+ @post.method
529
+ end
530
+ end
531
+ EOF
532
+ runner.review("app/controllers/posts_controller.rb", content)
533
+ runner.after_review
534
+ runner.should have(0).errors
527
535
  end
528
536
  end
529
- EOF
530
- runner.review("app/controllers/posts_controller.rb", content)
531
- runner.after_review
532
- runner.should have(0).errors
533
- end
534
- end
535
537
 
536
- context "methods hash" do
537
- it "should not remove unused method with methods hash" do
538
- content =<<-EOF
539
- class Post < ActiveRecord::Base
540
- def to_xml(options = {})
541
- super options.merge(:exclude => :visible, :methods => [:is_discussion_conversation])
542
- end
538
+ context "methods hash" do
539
+ it "should not remove unused method with methods hash" do
540
+ content =<<-EOF
541
+ class Post < ActiveRecord::Base
542
+ def to_xml(options = {})
543
+ super options.merge(:exclude => :visible, :methods => [:is_discussion_conversation])
544
+ end
543
545
 
544
- def is_discussion_conversation; end
546
+ def is_discussion_conversation; end
547
+ end
548
+ EOF
549
+ runner.prepare("app/models/post.rb", content)
550
+ runner.review("app/models/post.rb", content)
551
+ runner.after_review
552
+ runner.should have(0).errors
553
+ end
545
554
  end
546
- EOF
547
- runner.prepare("app/models/post.rb", content)
548
- runner.review("app/models/post.rb", content)
549
- runner.after_review
550
- runner.should have(0).errors
551
- end
552
- end
553
555
 
554
- context "callbacks" do
555
- it "should not remove unused method" do
556
- content =<<-EOF
557
- class Post < ActiveRecord::Base
558
- before_save :init_columns
559
- after_destroy :remove_dependencies
556
+ context "callbacks" do
557
+ it "should not remove unused method" do
558
+ content =<<-EOF
559
+ class Post < ActiveRecord::Base
560
+ before_save :init_columns
561
+ after_destroy :remove_dependencies
560
562
 
561
- protected
562
- def init_columns; end
563
- def remove_dependencies; end
563
+ protected
564
+ def init_columns; end
565
+ def remove_dependencies; end
566
+ end
567
+ EOF
568
+ runner.prepare("app/models/post.rb", content)
569
+ runner.review("app/models/post.rb", content)
570
+ runner.after_review
571
+ runner.should have(0).errors
572
+ end
564
573
  end
565
- EOF
566
- runner.prepare("app/models/post.rb", content)
567
- runner.review("app/models/post.rb", content)
568
- runner.after_review
569
- runner.should have(0).errors
570
- end
571
- end
572
574
 
573
- context "validates" do
574
- it "should not remove unused method" do
575
- content =<<-EOF
576
- class Post < ActiveRecord::Base
577
- validate :valid_birth_date
575
+ context "validates" do
576
+ it "should not remove unused method" do
577
+ content =<<-EOF
578
+ class Post < ActiveRecord::Base
579
+ validate :valid_birth_date
578
580
 
579
- protected
580
- def valid_birth_date; end
581
- end
582
- EOF
583
- runner.prepare("app/models/post.rb", content)
584
- runner.review("app/models/post.rb", content)
585
- runner.after_review
586
- runner.should have(0).errors
587
- end
581
+ protected
582
+ def valid_birth_date; end
583
+ end
584
+ EOF
585
+ runner.prepare("app/models/post.rb", content)
586
+ runner.review("app/models/post.rb", content)
587
+ runner.after_review
588
+ runner.should have(0).errors
589
+ end
588
590
 
589
- it "should not remove unused method for validate_on_create and validate_on_update" do
590
- content =<<-EOF
591
- class Post < ActiveRecord::Base
592
- validate_on_create :valid_email
593
- validate_on_update :valid_birth_date
591
+ it "should not remove unused method for validate_on_create and validate_on_update" do
592
+ content =<<-EOF
593
+ class Post < ActiveRecord::Base
594
+ validate_on_create :valid_email
595
+ validate_on_update :valid_birth_date
594
596
 
595
- protected
596
- def valid_email; end
597
- def valid_birth_date; end
598
- end
599
- EOF
600
- runner.prepare("app/models/post.rb", content)
601
- runner.review("app/models/post.rb", content)
602
- runner.after_review
603
- runner.should have(0).errors
604
- end
597
+ protected
598
+ def valid_email; end
599
+ def valid_birth_date; end
600
+ end
601
+ EOF
602
+ runner.prepare("app/models/post.rb", content)
603
+ runner.review("app/models/post.rb", content)
604
+ runner.after_review
605
+ runner.should have(0).errors
606
+ end
605
607
 
606
- it "should not remove unused methods for to_param" do
607
- content =<<-EOF
608
- class Post < ActiveRecord::Base
609
- def to_param
610
- id
608
+ it "should not remove unused methods for to_param" do
609
+ content =<<-EOF
610
+ class Post < ActiveRecord::Base
611
+ def to_param
612
+ id
613
+ end
614
+ end
615
+ EOF
616
+ runner.prepare("app/models/post.rb", content)
617
+ runner.review("app/models/post.rb", content)
618
+ runner.after_review
619
+ runner.should have(0).errors
611
620
  end
612
621
  end
613
- EOF
614
- runner.prepare("app/models/post.rb", content)
615
- runner.review("app/models/post.rb", content)
616
- runner.after_review
617
- runner.should have(0).errors
618
- end
619
- end
620
622
 
621
- context "helper method" do
622
- it "should not remove unused method for coommand_call collection_select" do
623
- content =<<-EOF
624
- class Category < ActiveRecord::Base
625
- def indented_name; end
626
- end
627
- EOF
628
- runner.prepare("app/models/category.rb", content)
629
- runner.review("app/models/category.rb", content)
630
- content =<<-EOF
631
- <%= f.collection_select :parent_id, Category.all_hierarchic(except: @category), :id, :indented_name, {include_blank: true} %>
632
- EOF
633
- runner.review("app/views/categories/_form.html.erb", content)
634
- runner.after_review
635
- runner.should have(0).errors
636
- end
623
+ context "helper method" do
624
+ it "should not remove unused method for coommand_call collection_select" do
625
+ content =<<-EOF
626
+ class Category < ActiveRecord::Base
627
+ def indented_name; end
628
+ end
629
+ EOF
630
+ runner.prepare("app/models/category.rb", content)
631
+ runner.review("app/models/category.rb", content)
632
+ content =<<-EOF
633
+ <%= f.collection_select :parent_id, Category.all_hierarchic(except: @category), :id, :indented_name, {include_blank: true} %>
634
+ EOF
635
+ runner.review("app/views/categories/_form.html.erb", content)
636
+ runner.after_review
637
+ runner.should have(0).errors
638
+ end
637
639
 
638
- it "should not remove unused method for command collection_select" do
639
- content =<<-EOF
640
- class Category < ActiveRecord::Base
641
- def indented_name; end
642
- end
643
- EOF
644
- runner.prepare("app/models/category.rb", content)
645
- runner.review("app/models/category.rb", content)
646
- content =<<-EOF
647
- <%= collection_select :category, :parent_id, Category.all_hierarchic(except: @category), :id, :indented_name, {include_blank: true} %>
648
- EOF
649
- runner.review("app/views/categories/_form.html.erb", content)
650
- runner.after_review
651
- runner.should have(0).errors
652
- end
640
+ it "should not remove unused method for command collection_select" do
641
+ content =<<-EOF
642
+ class Category < ActiveRecord::Base
643
+ def indented_name; end
644
+ end
645
+ EOF
646
+ runner.prepare("app/models/category.rb", content)
647
+ runner.review("app/models/category.rb", content)
648
+ content =<<-EOF
649
+ <%= collection_select :category, :parent_id, Category.all_hierarchic(except: @category), :id, :indented_name, {include_blank: true} %>
650
+ EOF
651
+ runner.review("app/views/categories/_form.html.erb", content)
652
+ runner.after_review
653
+ runner.should have(0).errors
654
+ end
653
655
 
654
- it "should not remove unused method for options_from_collection_for_select" do
655
- content =<<-EOF
656
- class Category < ActiveRecord::Base
657
- def indented_name; end
656
+ it "should not remove unused method for options_from_collection_for_select" do
657
+ content =<<-EOF
658
+ class Category < ActiveRecord::Base
659
+ def indented_name; end
660
+ end
661
+ EOF
662
+ runner.prepare("app/models/category.rb", content)
663
+ runner.review("app/models/category.rb", content)
664
+ content =<<-EOF
665
+ <%= select_tag 'category', options_from_collection_for_select(Category.all_hierachic(except: @category), :id, :indented_name) %>
666
+ EOF
667
+ runner.review("app/views/categories/_form.html.erb", content)
668
+ runner.after_review
669
+ runner.should have(0).errors
670
+ end
658
671
  end
659
- EOF
660
- runner.prepare("app/models/category.rb", content)
661
- runner.review("app/models/category.rb", content)
662
- content =<<-EOF
663
- <%= select_tag 'category', options_from_collection_for_select(Category.all_hierachic(except: @category), :id, :indented_name) %>
664
- EOF
665
- runner.review("app/views/categories/_form.html.erb", content)
666
- runner.after_review
667
- runner.should have(0).errors
668
672
  end
669
673
  end
670
674
  end