rails_best_practices 0.3.13 → 0.3.14

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/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