rails_best_practices 0.3.13 → 0.3.14

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.13
1
+ 0.3.14
@@ -4,7 +4,7 @@ module RailsBestPractices
4
4
  module Checks
5
5
  # Check a view file to make sure there is no complex logic call for model.
6
6
  #
7
- # Implementation: Check if a local variable or instance variable called more than 3 times in if statuement, then it should more code into model.
7
+ # Implementation: Check if a local variable or instance variable called more than 3 times in if conditional statement, then it should more code into model.
8
8
  class MoveCodeIntoModelCheck < Check
9
9
 
10
10
  def interesting_nodes
@@ -17,7 +17,7 @@ module RailsBestPractices
17
17
 
18
18
  def evaluate_start(node)
19
19
  @variables = {}
20
- node.grep_nodes(:node_type => :call).each { |call_node| remember_call(call_node) }
20
+ node.conditional_statement.grep_nodes(:node_type => :call).each { |call_node| remember_call(call_node) }
21
21
  check_errors
22
22
  end
23
23
 
@@ -70,6 +70,12 @@ class Sexp
70
70
  end
71
71
  end
72
72
 
73
+ def conditional_statement
74
+ if node_type == :if
75
+ self[1]
76
+ end
77
+ end
78
+
73
79
  def true_node
74
80
  if :if == node_type
75
81
  self[2]
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rails_best_practices}
8
- s.version = "0.3.13"
8
+ s.version = "0.3.14"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Richard Huang"]
12
- s.date = %q{2009-12-14}
12
+ s.date = %q{2009-12-15}
13
13
  s.default_executable = %q{rails_best_practices}
14
14
  s.description = %q{check rails files according to ihower's presentation 'rails best practices'}
15
15
  s.email = %q{flyerhzm@gmail.com}
@@ -91,28 +91,28 @@ Gem::Specification.new do |s|
91
91
  s.rubygems_version = %q{1.3.5}
92
92
  s.summary = %q{check rails files according to ihower's presentation 'rails best practices'}
93
93
  s.test_files = [
94
- "spec/rails_best_practices/checks/isolate_seed_data_check_spec.rb",
95
- "spec/rails_best_practices/checks/move_model_logic_into_model_check_spec.rb",
96
- "spec/rails_best_practices/checks/move_code_into_helper_check_spec.rb",
97
- "spec/rails_best_practices/checks/move_code_into_controller_check_spec.rb",
98
- "spec/rails_best_practices/checks/use_observer_check_spec.rb",
99
- "spec/rails_best_practices/checks/overuse_route_customizations_check_spec.rb",
100
- "spec/rails_best_practices/checks/nested_model_forms_check_spec.rb",
94
+ "spec/rails_best_practices/checks/add_model_virtual_attribute_check_spec.rb",
101
95
  "spec/rails_best_practices/checks/always_add_db_index_check_spec.rb",
102
- "spec/rails_best_practices/checks/many_to_many_collection_check_spec.rb",
103
- "spec/rails_best_practices/checks/use_before_filter_check_spec.rb",
96
+ "spec/rails_best_practices/checks/isolate_seed_data_check_spec.rb",
97
+ "spec/rails_best_practices/checks/keep_finders_on_their_own_model_check_spec.rb",
104
98
  "spec/rails_best_practices/checks/law_of_demeter_check_spec.rb",
105
- "spec/rails_best_practices/checks/use_scope_access_check_spec.rb",
106
- "spec/rails_best_practices/checks/replace_complex_creation_with_factory_method_check_spec.rb",
107
- "spec/rails_best_practices/checks/not_use_default_route_check_spec.rb",
99
+ "spec/rails_best_practices/checks/many_to_many_collection_check_spec.rb",
100
+ "spec/rails_best_practices/checks/move_code_into_controller_check_spec.rb",
101
+ "spec/rails_best_practices/checks/move_code_into_helper_check_spec.rb",
102
+ "spec/rails_best_practices/checks/move_code_into_model_check_spec.rb",
108
103
  "spec/rails_best_practices/checks/move_finder_to_named_scope_check_spec.rb",
109
- "spec/rails_best_practices/checks/use_model_callback_check_spec.rb",
110
- "spec/rails_best_practices/checks/add_model_virtual_attribute_check_spec.rb",
104
+ "spec/rails_best_practices/checks/move_model_logic_into_model_check_spec.rb",
105
+ "spec/rails_best_practices/checks/needless_deep_nesting_check_spec.rb",
106
+ "spec/rails_best_practices/checks/nested_model_forms_check_spec.rb",
107
+ "spec/rails_best_practices/checks/not_use_default_route_check_spec.rb",
108
+ "spec/rails_best_practices/checks/overuse_route_customizations_check_spec.rb",
109
+ "spec/rails_best_practices/checks/replace_complex_creation_with_factory_method_check_spec.rb",
111
110
  "spec/rails_best_practices/checks/replace_instance_variable_with_local_variable_check_spec.rb",
111
+ "spec/rails_best_practices/checks/use_before_filter_check_spec.rb",
112
112
  "spec/rails_best_practices/checks/use_model_association_check_spec.rb",
113
- "spec/rails_best_practices/checks/move_code_into_model_check_spec.rb",
114
- "spec/rails_best_practices/checks/needless_deep_nesting_check_spec.rb",
115
- "spec/rails_best_practices/checks/keep_finders_on_their_own_model_check_spec.rb",
113
+ "spec/rails_best_practices/checks/use_model_callback_check_spec.rb",
114
+ "spec/rails_best_practices/checks/use_observer_check_spec.rb",
115
+ "spec/rails_best_practices/checks/use_scope_access_check_spec.rb",
116
116
  "spec/spec_helper.rb"
117
117
  ]
118
118
 
@@ -27,10 +27,24 @@ describe RailsBestPractices::Checks::MoveCodeIntoModelCheck do
27
27
  errors.should_not be_empty
28
28
  errors[0].to_s.should == "app/views/posts/show.html.haml:1 - move code into model (@post)"
29
29
  end
30
+
31
+ it "should move code into model only check for current if conditional statement" do
32
+ content =<<-EOF
33
+ <% if @post.title %>
34
+ <% if @post.user %>
35
+ <% if @post.description %>
36
+ <% end %>
37
+ <% end %>
38
+ <% end %>
39
+ EOF
40
+ @runner.check('app/views/posts/show.html.erb', content)
41
+ errors = @runner.errors
42
+ errors.should be_empty
43
+ end
30
44
 
31
45
  it "should not move code into model" do
32
46
  content =<<-EOF
33
- <% if @post.editable_by?(current_user)) %>
47
+ <% if @post.editable_by?(current_user) %>
34
48
  <%= link_to 'Edit this post', edit_post_url(@post) %>
35
49
  <% end %>
36
50
  EOF
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_best_practices
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.13
4
+ version: 0.3.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-14 00:00:00 +08:00
12
+ date: 2009-12-15 00:00:00 +08:00
13
13
  default_executable: rails_best_practices
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -136,26 +136,26 @@ signing_key:
136
136
  specification_version: 3
137
137
  summary: check rails files according to ihower's presentation 'rails best practices'
138
138
  test_files:
139
+ - spec/rails_best_practices/checks/add_model_virtual_attribute_check_spec.rb
140
+ - spec/rails_best_practices/checks/always_add_db_index_check_spec.rb
139
141
  - spec/rails_best_practices/checks/isolate_seed_data_check_spec.rb
140
- - spec/rails_best_practices/checks/move_model_logic_into_model_check_spec.rb
141
- - spec/rails_best_practices/checks/move_code_into_helper_check_spec.rb
142
+ - spec/rails_best_practices/checks/keep_finders_on_their_own_model_check_spec.rb
143
+ - spec/rails_best_practices/checks/law_of_demeter_check_spec.rb
144
+ - spec/rails_best_practices/checks/many_to_many_collection_check_spec.rb
142
145
  - spec/rails_best_practices/checks/move_code_into_controller_check_spec.rb
143
- - spec/rails_best_practices/checks/use_observer_check_spec.rb
144
- - spec/rails_best_practices/checks/overuse_route_customizations_check_spec.rb
146
+ - spec/rails_best_practices/checks/move_code_into_helper_check_spec.rb
147
+ - spec/rails_best_practices/checks/move_code_into_model_check_spec.rb
148
+ - spec/rails_best_practices/checks/move_finder_to_named_scope_check_spec.rb
149
+ - spec/rails_best_practices/checks/move_model_logic_into_model_check_spec.rb
150
+ - spec/rails_best_practices/checks/needless_deep_nesting_check_spec.rb
145
151
  - spec/rails_best_practices/checks/nested_model_forms_check_spec.rb
146
- - spec/rails_best_practices/checks/always_add_db_index_check_spec.rb
147
- - spec/rails_best_practices/checks/many_to_many_collection_check_spec.rb
148
- - spec/rails_best_practices/checks/use_before_filter_check_spec.rb
149
- - spec/rails_best_practices/checks/law_of_demeter_check_spec.rb
150
- - spec/rails_best_practices/checks/use_scope_access_check_spec.rb
151
- - spec/rails_best_practices/checks/replace_complex_creation_with_factory_method_check_spec.rb
152
152
  - spec/rails_best_practices/checks/not_use_default_route_check_spec.rb
153
- - spec/rails_best_practices/checks/move_finder_to_named_scope_check_spec.rb
154
- - spec/rails_best_practices/checks/use_model_callback_check_spec.rb
155
- - spec/rails_best_practices/checks/add_model_virtual_attribute_check_spec.rb
153
+ - spec/rails_best_practices/checks/overuse_route_customizations_check_spec.rb
154
+ - spec/rails_best_practices/checks/replace_complex_creation_with_factory_method_check_spec.rb
156
155
  - spec/rails_best_practices/checks/replace_instance_variable_with_local_variable_check_spec.rb
156
+ - spec/rails_best_practices/checks/use_before_filter_check_spec.rb
157
157
  - spec/rails_best_practices/checks/use_model_association_check_spec.rb
158
- - spec/rails_best_practices/checks/move_code_into_model_check_spec.rb
159
- - spec/rails_best_practices/checks/needless_deep_nesting_check_spec.rb
160
- - spec/rails_best_practices/checks/keep_finders_on_their_own_model_check_spec.rb
158
+ - spec/rails_best_practices/checks/use_model_callback_check_spec.rb
159
+ - spec/rails_best_practices/checks/use_observer_check_spec.rb
160
+ - spec/rails_best_practices/checks/use_scope_access_check_spec.rb
161
161
  - spec/spec_helper.rb