rails_best_practices 0.3.0 → 0.4.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.
- data/README.textile +72 -54
- data/Rakefile +5 -5
- data/VERSION +1 -1
- data/identifier +0 -0
- data/lib/rails_best_practices/checks/always_add_db_index_check.rb +27 -62
- data/lib/rails_best_practices/checks/check.rb +12 -13
- data/lib/rails_best_practices/checks/isolate_seed_data_check.rb +7 -20
- data/lib/rails_best_practices/checks/keep_finders_on_their_own_model_check.rb +1 -1
- data/lib/rails_best_practices/checks/law_of_demeter_check.rb +6 -5
- data/lib/rails_best_practices/checks/move_code_into_helper_check.rb +8 -3
- data/lib/rails_best_practices/checks/move_code_into_model_check.rb +53 -0
- data/lib/rails_best_practices/checks/needless_deep_nesting_check.rb +36 -4
- data/lib/rails_best_practices/checks/not_use_default_route_check.rb +3 -2
- data/lib/rails_best_practices/checks/overuse_route_customizations_check.rb +23 -10
- data/lib/rails_best_practices/checks/replace_instance_variable_with_local_variable_check.rb +1 -1
- data/lib/rails_best_practices/checks/{use_filter_check.rb → use_before_filter_check.rb} +9 -7
- data/lib/rails_best_practices/checks/use_scope_access_check.rb +1 -1
- data/lib/rails_best_practices/checks.rb +2 -4
- data/lib/rails_best_practices/command.rb +7 -41
- data/lib/rails_best_practices/core/checking_visitor.rb +2 -2
- data/lib/rails_best_practices/core/runner.rb +8 -6
- data/lib/rails_best_practices/core/visitable_sexp.rb +8 -2
- data/lib/rails_best_practices.rb +41 -1
- data/rails_best_practices.gemspec +25 -30
- data/rails_best_practices.yml +3 -5
- data/spec/rails_best_practices/checks/always_add_db_index_check_spec.rb +32 -112
- data/spec/rails_best_practices/checks/isolate_seed_data_check_spec.rb +0 -3
- data/spec/rails_best_practices/checks/keep_finders_on_their_own_model_check_spec.rb +33 -1
- data/spec/rails_best_practices/checks/law_of_demeter_check_spec.rb +66 -27
- data/spec/rails_best_practices/checks/move_code_into_helper_check_spec.rb +2 -2
- data/spec/rails_best_practices/checks/move_code_into_model_check_spec.rb +55 -0
- data/spec/rails_best_practices/checks/needless_deep_nesting_check_spec.rb +55 -21
- data/spec/rails_best_practices/checks/not_use_default_route_check_spec.rb +51 -22
- data/spec/rails_best_practices/checks/overuse_route_customizations_check_spec.rb +134 -48
- data/spec/rails_best_practices/checks/replace_instance_variable_with_local_variable_check_spec.rb +11 -1
- data/spec/rails_best_practices/checks/{use_filter_check_spec.rb → use_before_filter_check_spec.rb} +6 -6
- data/spec/rails_best_practices/checks/use_scope_access_check_spec.rb +22 -0
- metadata +49 -39
- data/lib/rails_best_practices/checks/many_to_many_collection_check.rb +0 -12
- data/lib/rails_best_practices/checks/nested_model_forms_check.rb +0 -12
- data/lib/rails_best_practices/checks/use_model_callback_check.rb +0 -12
- data/spec/rails_best_practices/checks/many_to_many_collection_check_spec.rb +0 -11
- data/spec/rails_best_practices/checks/nested_model_forms_check_spec.rb +0 -11
- data/spec/rails_best_practices/checks/use_model_callback_check_spec.rb +0 -11
data/spec/rails_best_practices/checks/{use_filter_check_spec.rb → use_before_filter_check_spec.rb}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
require File.join(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
2
|
|
|
3
|
-
describe RailsBestPractices::Checks::
|
|
3
|
+
describe RailsBestPractices::Checks::UseBeforeFilterCheck do
|
|
4
4
|
before(:each) do
|
|
5
|
-
@runner = RailsBestPractices::Core::Runner.new(RailsBestPractices::Checks::
|
|
5
|
+
@runner = RailsBestPractices::Core::Runner.new(RailsBestPractices::Checks::UseBeforeFilterCheck.new)
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
it "should use
|
|
8
|
+
it "should use before_filter" do
|
|
9
9
|
content = <<-EOF
|
|
10
10
|
class PostsController < ApplicationController
|
|
11
11
|
|
|
@@ -32,10 +32,10 @@ describe RailsBestPractices::Checks::UseFilterCheck do
|
|
|
32
32
|
@runner.check('app/controllers/posts_controller.rb', content)
|
|
33
33
|
errors = @runner.errors
|
|
34
34
|
errors.should_not be_empty
|
|
35
|
-
errors[0].to_s.should == "app/controllers/posts_controller.rb:
|
|
35
|
+
errors[0].to_s.should == "app/controllers/posts_controller.rb:3,7,11,16 - use before_filter for show,edit,update,destroy"
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
it "should not use
|
|
38
|
+
it "should not use before_filter" do
|
|
39
39
|
content = <<-EOF
|
|
40
40
|
class PostsController < ApplicationController
|
|
41
41
|
before_filter :find_post, :only => [:show, :edit, :update, :destroy]
|
|
@@ -60,7 +60,7 @@ describe RailsBestPractices::Checks::UseFilterCheck do
|
|
|
60
60
|
errors.should be_empty
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
-
it "should not use
|
|
63
|
+
it "should not use before_filter by nil" do
|
|
64
64
|
content = <<-EOF
|
|
65
65
|
class PostsController < ApplicationController
|
|
66
66
|
|
|
@@ -167,5 +167,27 @@ describe RailsBestPractices::Checks::UseScopeAccessCheck do
|
|
|
167
167
|
errors.should_not be_empty
|
|
168
168
|
errors[0].to_s.should == "app/controllers/posts_controller.rb:6 - use scope access"
|
|
169
169
|
end
|
|
170
|
+
|
|
171
|
+
it "should no error in use_scope_access_check" do
|
|
172
|
+
content = <<-EOF
|
|
173
|
+
class CommentsController < ApplicationController
|
|
174
|
+
|
|
175
|
+
def add_comment
|
|
176
|
+
@current_user = User.find_by_id(session[:user_id])
|
|
177
|
+
@id = params[:post_id]
|
|
178
|
+
@error = ""
|
|
179
|
+
if (@text = params[:text]) == ""
|
|
180
|
+
@error = "Please enter a comment!"
|
|
181
|
+
else
|
|
182
|
+
@comment = Comment.create_object(@text, @id, @current_user.id)
|
|
183
|
+
end
|
|
184
|
+
unless @comment
|
|
185
|
+
@error = "Comment could not be saved."
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
EOF
|
|
190
|
+
@runner.check('app/controllers/comments_controller.rb', content)
|
|
191
|
+
end
|
|
170
192
|
end
|
|
171
193
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails_best_practices
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 0
|
|
7
|
+
- 4
|
|
8
|
+
- 0
|
|
9
|
+
version: 0.4.0
|
|
5
10
|
platform: ruby
|
|
6
11
|
authors:
|
|
7
12
|
- Richard Huang
|
|
@@ -9,30 +14,38 @@ autorequire:
|
|
|
9
14
|
bindir: bin
|
|
10
15
|
cert_chain: []
|
|
11
16
|
|
|
12
|
-
date:
|
|
17
|
+
date: 2010-08-15 00:00:00 +08:00
|
|
13
18
|
default_executable: rails_best_practices
|
|
14
19
|
dependencies:
|
|
15
20
|
- !ruby/object:Gem::Dependency
|
|
16
21
|
name: ruby_parser
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
prerelease: false
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
24
|
requirements:
|
|
21
25
|
- - ">="
|
|
22
26
|
- !ruby/object:Gem::Version
|
|
27
|
+
segments:
|
|
28
|
+
- 2
|
|
29
|
+
- 0
|
|
30
|
+
- 4
|
|
23
31
|
version: 2.0.4
|
|
24
|
-
|
|
32
|
+
type: :runtime
|
|
33
|
+
version_requirements: *id001
|
|
25
34
|
- !ruby/object:Gem::Dependency
|
|
26
35
|
name: ruby2ruby
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
prerelease: false
|
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
30
38
|
requirements:
|
|
31
39
|
- - ">="
|
|
32
40
|
- !ruby/object:Gem::Version
|
|
41
|
+
segments:
|
|
42
|
+
- 1
|
|
43
|
+
- 2
|
|
44
|
+
- 4
|
|
33
45
|
version: 1.2.4
|
|
34
|
-
|
|
35
|
-
|
|
46
|
+
type: :runtime
|
|
47
|
+
version_requirements: *id002
|
|
48
|
+
description: a code metric tool for rails codes.
|
|
36
49
|
email: flyerhzm@gmail.com
|
|
37
50
|
executables:
|
|
38
51
|
- rails_best_practices
|
|
@@ -48,6 +61,7 @@ files:
|
|
|
48
61
|
- Rakefile
|
|
49
62
|
- VERSION
|
|
50
63
|
- bin/rails_best_practices
|
|
64
|
+
- identifier
|
|
51
65
|
- lib/rails_best_practices.rb
|
|
52
66
|
- lib/rails_best_practices/checks.rb
|
|
53
67
|
- lib/rails_best_practices/checks/add_model_virtual_attribute_check.rb
|
|
@@ -56,20 +70,18 @@ files:
|
|
|
56
70
|
- lib/rails_best_practices/checks/isolate_seed_data_check.rb
|
|
57
71
|
- lib/rails_best_practices/checks/keep_finders_on_their_own_model_check.rb
|
|
58
72
|
- lib/rails_best_practices/checks/law_of_demeter_check.rb
|
|
59
|
-
- lib/rails_best_practices/checks/many_to_many_collection_check.rb
|
|
60
73
|
- lib/rails_best_practices/checks/move_code_into_controller_check.rb
|
|
61
74
|
- lib/rails_best_practices/checks/move_code_into_helper_check.rb
|
|
75
|
+
- lib/rails_best_practices/checks/move_code_into_model_check.rb
|
|
62
76
|
- lib/rails_best_practices/checks/move_finder_to_named_scope_check.rb
|
|
63
77
|
- lib/rails_best_practices/checks/move_model_logic_into_model_check.rb
|
|
64
78
|
- lib/rails_best_practices/checks/needless_deep_nesting_check.rb
|
|
65
|
-
- lib/rails_best_practices/checks/nested_model_forms_check.rb
|
|
66
79
|
- lib/rails_best_practices/checks/not_use_default_route_check.rb
|
|
67
80
|
- lib/rails_best_practices/checks/overuse_route_customizations_check.rb
|
|
68
81
|
- lib/rails_best_practices/checks/replace_complex_creation_with_factory_method_check.rb
|
|
69
82
|
- lib/rails_best_practices/checks/replace_instance_variable_with_local_variable_check.rb
|
|
70
|
-
- lib/rails_best_practices/checks/
|
|
83
|
+
- lib/rails_best_practices/checks/use_before_filter_check.rb
|
|
71
84
|
- lib/rails_best_practices/checks/use_model_association_check.rb
|
|
72
|
-
- lib/rails_best_practices/checks/use_model_callback_check.rb
|
|
73
85
|
- lib/rails_best_practices/checks/use_observer_check.rb
|
|
74
86
|
- lib/rails_best_practices/checks/use_scope_access_check.rb
|
|
75
87
|
- lib/rails_best_practices/command.rb
|
|
@@ -86,26 +98,24 @@ files:
|
|
|
86
98
|
- spec/rails_best_practices/checks/isolate_seed_data_check_spec.rb
|
|
87
99
|
- spec/rails_best_practices/checks/keep_finders_on_their_own_model_check_spec.rb
|
|
88
100
|
- spec/rails_best_practices/checks/law_of_demeter_check_spec.rb
|
|
89
|
-
- spec/rails_best_practices/checks/many_to_many_collection_check_spec.rb
|
|
90
101
|
- spec/rails_best_practices/checks/move_code_into_controller_check_spec.rb
|
|
91
102
|
- spec/rails_best_practices/checks/move_code_into_helper_check_spec.rb
|
|
103
|
+
- spec/rails_best_practices/checks/move_code_into_model_check_spec.rb
|
|
92
104
|
- spec/rails_best_practices/checks/move_finder_to_named_scope_check_spec.rb
|
|
93
105
|
- spec/rails_best_practices/checks/move_model_logic_into_model_check_spec.rb
|
|
94
106
|
- spec/rails_best_practices/checks/needless_deep_nesting_check_spec.rb
|
|
95
|
-
- spec/rails_best_practices/checks/nested_model_forms_check_spec.rb
|
|
96
107
|
- spec/rails_best_practices/checks/not_use_default_route_check_spec.rb
|
|
97
108
|
- spec/rails_best_practices/checks/overuse_route_customizations_check_spec.rb
|
|
98
109
|
- spec/rails_best_practices/checks/replace_complex_creation_with_factory_method_check_spec.rb
|
|
99
110
|
- spec/rails_best_practices/checks/replace_instance_variable_with_local_variable_check_spec.rb
|
|
100
|
-
- spec/rails_best_practices/checks/
|
|
111
|
+
- spec/rails_best_practices/checks/use_before_filter_check_spec.rb
|
|
101
112
|
- spec/rails_best_practices/checks/use_model_association_check_spec.rb
|
|
102
|
-
- spec/rails_best_practices/checks/use_model_callback_check_spec.rb
|
|
103
113
|
- spec/rails_best_practices/checks/use_observer_check_spec.rb
|
|
104
114
|
- spec/rails_best_practices/checks/use_scope_access_check_spec.rb
|
|
105
115
|
- spec/spec.opts
|
|
106
116
|
- spec/spec_helper.rb
|
|
107
117
|
has_rdoc: true
|
|
108
|
-
homepage: http://
|
|
118
|
+
homepage: http://rails-bestpractices.com
|
|
109
119
|
licenses: []
|
|
110
120
|
|
|
111
121
|
post_install_message:
|
|
@@ -117,41 +127,41 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
117
127
|
requirements:
|
|
118
128
|
- - ">="
|
|
119
129
|
- !ruby/object:Gem::Version
|
|
130
|
+
segments:
|
|
131
|
+
- 0
|
|
120
132
|
version: "0"
|
|
121
|
-
version:
|
|
122
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
134
|
requirements:
|
|
124
135
|
- - ">="
|
|
125
136
|
- !ruby/object:Gem::Version
|
|
137
|
+
segments:
|
|
138
|
+
- 0
|
|
126
139
|
version: "0"
|
|
127
|
-
version:
|
|
128
140
|
requirements: []
|
|
129
141
|
|
|
130
142
|
rubyforge_project:
|
|
131
|
-
rubygems_version: 1.3.
|
|
143
|
+
rubygems_version: 1.3.6
|
|
132
144
|
signing_key:
|
|
133
145
|
specification_version: 3
|
|
134
|
-
summary:
|
|
146
|
+
summary: a code metric tool for rails codes.
|
|
135
147
|
test_files:
|
|
136
|
-
- spec/rails_best_practices/checks/add_model_virtual_attribute_check_spec.rb
|
|
137
|
-
- spec/rails_best_practices/checks/always_add_db_index_check_spec.rb
|
|
138
148
|
- spec/rails_best_practices/checks/isolate_seed_data_check_spec.rb
|
|
139
|
-
- spec/rails_best_practices/checks/keep_finders_on_their_own_model_check_spec.rb
|
|
140
|
-
- spec/rails_best_practices/checks/law_of_demeter_check_spec.rb
|
|
141
|
-
- spec/rails_best_practices/checks/many_to_many_collection_check_spec.rb
|
|
142
|
-
- spec/rails_best_practices/checks/move_code_into_controller_check_spec.rb
|
|
143
|
-
- spec/rails_best_practices/checks/move_code_into_helper_check_spec.rb
|
|
144
|
-
- spec/rails_best_practices/checks/move_finder_to_named_scope_check_spec.rb
|
|
145
149
|
- spec/rails_best_practices/checks/move_model_logic_into_model_check_spec.rb
|
|
146
|
-
- spec/rails_best_practices/checks/
|
|
147
|
-
- spec/rails_best_practices/checks/
|
|
148
|
-
- spec/rails_best_practices/checks/
|
|
150
|
+
- spec/rails_best_practices/checks/move_code_into_helper_check_spec.rb
|
|
151
|
+
- spec/rails_best_practices/checks/move_code_into_controller_check_spec.rb
|
|
152
|
+
- spec/rails_best_practices/checks/use_observer_check_spec.rb
|
|
149
153
|
- spec/rails_best_practices/checks/overuse_route_customizations_check_spec.rb
|
|
154
|
+
- spec/rails_best_practices/checks/always_add_db_index_check_spec.rb
|
|
155
|
+
- spec/rails_best_practices/checks/use_before_filter_check_spec.rb
|
|
156
|
+
- spec/rails_best_practices/checks/law_of_demeter_check_spec.rb
|
|
157
|
+
- spec/rails_best_practices/checks/use_scope_access_check_spec.rb
|
|
150
158
|
- spec/rails_best_practices/checks/replace_complex_creation_with_factory_method_check_spec.rb
|
|
159
|
+
- spec/rails_best_practices/checks/not_use_default_route_check_spec.rb
|
|
160
|
+
- spec/rails_best_practices/checks/move_finder_to_named_scope_check_spec.rb
|
|
161
|
+
- spec/rails_best_practices/checks/add_model_virtual_attribute_check_spec.rb
|
|
151
162
|
- spec/rails_best_practices/checks/replace_instance_variable_with_local_variable_check_spec.rb
|
|
152
|
-
- spec/rails_best_practices/checks/use_filter_check_spec.rb
|
|
153
163
|
- spec/rails_best_practices/checks/use_model_association_check_spec.rb
|
|
154
|
-
- spec/rails_best_practices/checks/
|
|
155
|
-
- spec/rails_best_practices/checks/
|
|
156
|
-
- spec/rails_best_practices/checks/
|
|
164
|
+
- spec/rails_best_practices/checks/move_code_into_model_check_spec.rb
|
|
165
|
+
- spec/rails_best_practices/checks/needless_deep_nesting_check_spec.rb
|
|
166
|
+
- spec/rails_best_practices/checks/keep_finders_on_their_own_model_check_spec.rb
|
|
157
167
|
- spec/spec_helper.rb
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
-
|
|
3
|
-
describe RailsBestPractices::Checks::ManyToManyCollectionCheck do
|
|
4
|
-
before(:each) do
|
|
5
|
-
@runner = RailsBestPractices::Core::Runner.new(RailsBestPractices::Checks::ManyToManyCollectionCheck.new)
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
it "should many to many collection check" do
|
|
9
|
-
pending
|
|
10
|
-
end
|
|
11
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
-
|
|
3
|
-
describe RailsBestPractices::Checks::NestedModelFormsCheck do
|
|
4
|
-
before(:each) do
|
|
5
|
-
@runner = RailsBestPractices::Core::Runner.new(RailsBestPractices::Checks::NestedModelFormsCheck.new)
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
it "should nested model form check" do
|
|
9
|
-
pending
|
|
10
|
-
end
|
|
11
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
-
|
|
3
|
-
describe RailsBestPractices::Checks::UseModelCallbackCheck do
|
|
4
|
-
before(:each) do
|
|
5
|
-
@runner = RailsBestPractices::Core::Runner.new(RailsBestPractices::Checks::UseModelCallbackCheck.new)
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
it "should use model callback check" do
|
|
9
|
-
pending
|
|
10
|
-
end
|
|
11
|
-
end
|