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,26 +1,17 @@
1
- require 'rubygems'
2
- require 'spork'
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
 
4
- Spork.prefork do
5
- $LOAD_PATH.unshift(File.dirname(__FILE__))
6
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
4
+ require 'rspec'
5
+ require 'rails_best_practices'
7
6
 
8
- require 'rspec'
9
-
10
- RSpec.configure do |config|
11
- config.after do
12
- RailsBestPractices::Prepares.clear
13
- end
14
- config.filter_run :focus => true
15
- config.run_all_when_everything_filtered = true
16
- end
17
-
18
- def parse_content(content)
19
- Sexp.from_array(Ripper::SexpBuilder.new(content).parse)[1]
7
+ RSpec.configure do |config|
8
+ config.after do
9
+ RailsBestPractices::Prepares.clear
20
10
  end
11
+ config.filter_run :focus => true
12
+ config.run_all_when_everything_filtered = true
21
13
  end
22
14
 
23
- Spork.each_run do
24
- require 'rails_best_practices'
15
+ def parse_content(content)
16
+ Sexp.from_array(Ripper::SexpBuilder.new(content).parse)[1]
25
17
  end
26
-
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: 1.9.0
4
+ version: 1.9.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-07 00:00:00.000000000 Z
12
+ date: 2012-04-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sexp_processor
16
- requirement: &70152469216300 !ruby/object:Gem::Requirement
16
+ requirement: &70273211510520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70152469216300
24
+ version_requirements: *70273211510520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: progressbar
27
- requirement: &70152469214420 !ruby/object:Gem::Requirement
27
+ requirement: &70273211510000 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70152469214420
35
+ version_requirements: *70273211510000
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: colored
38
- requirement: &70152469213480 !ruby/object:Gem::Requirement
38
+ requirement: &70273211509320 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70152469213480
46
+ version_requirements: *70273211509320
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: erubis
49
- requirement: &70152469212320 !ruby/object:Gem::Requirement
49
+ requirement: &70273211508720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70152469212320
57
+ version_requirements: *70273211508720
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: i18n
60
- requirement: &70152469211160 !ruby/object:Gem::Requirement
60
+ requirement: &70273211508220 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70152469211160
68
+ version_requirements: *70273211508220
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activesupport
71
- requirement: &70152469209960 !ruby/object:Gem::Requirement
71
+ requirement: &70273211507520 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,21 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70152469209960
79
+ version_requirements: *70273211507520
80
+ - !ruby/object:Gem::Dependency
81
+ name: awesome_print
82
+ requirement: &70273211506140 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *70273211506140
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: rake
82
- requirement: &70152469209140 !ruby/object:Gem::Requirement
93
+ requirement: &70273211504420 !ruby/object:Gem::Requirement
83
94
  none: false
84
95
  requirements:
85
96
  - - ! '>='
@@ -87,10 +98,10 @@ dependencies:
87
98
  version: '0'
88
99
  type: :development
89
100
  prerelease: false
90
- version_requirements: *70152469209140
101
+ version_requirements: *70273211504420
91
102
  - !ruby/object:Gem::Dependency
92
103
  name: rspec
93
- requirement: &70152469208480 !ruby/object:Gem::Requirement
104
+ requirement: &70273211503240 !ruby/object:Gem::Requirement
94
105
  none: false
95
106
  requirements:
96
107
  - - ! '>='
@@ -98,10 +109,10 @@ dependencies:
98
109
  version: '0'
99
110
  type: :development
100
111
  prerelease: false
101
- version_requirements: *70152469208480
112
+ version_requirements: *70273211503240
102
113
  - !ruby/object:Gem::Dependency
103
114
  name: haml
104
- requirement: &70152469207680 !ruby/object:Gem::Requirement
115
+ requirement: &70273211502360 !ruby/object:Gem::Requirement
105
116
  none: false
106
117
  requirements:
107
118
  - - ! '>='
@@ -109,10 +120,10 @@ dependencies:
109
120
  version: '0'
110
121
  type: :development
111
122
  prerelease: false
112
- version_requirements: *70152469207680
123
+ version_requirements: *70273211502360
113
124
  - !ruby/object:Gem::Dependency
114
125
  name: slim
115
- requirement: &70152469206760 !ruby/object:Gem::Requirement
126
+ requirement: &70273211501280 !ruby/object:Gem::Requirement
116
127
  none: false
117
128
  requirements:
118
129
  - - ! '>='
@@ -120,10 +131,10 @@ dependencies:
120
131
  version: '0'
121
132
  type: :development
122
133
  prerelease: false
123
- version_requirements: *70152469206760
134
+ version_requirements: *70273211501280
124
135
  - !ruby/object:Gem::Dependency
125
136
  name: bundler
126
- requirement: &70152469205560 !ruby/object:Gem::Requirement
137
+ requirement: &70273211500360 !ruby/object:Gem::Requirement
127
138
  none: false
128
139
  requirements:
129
140
  - - ! '>='
@@ -131,7 +142,7 @@ dependencies:
131
142
  version: '0'
132
143
  type: :development
133
144
  prerelease: false
134
- version_requirements: *70152469205560
145
+ version_requirements: *70273211500360
135
146
  description: a code metric tool for rails codes, written in Ruby.
136
147
  email:
137
148
  - flyerhzm@gmail.com
@@ -147,7 +158,6 @@ files:
147
158
  - .rvmrc
148
159
  - .rvmrc.example
149
160
  - .travis.yml
150
- - .watchr.example
151
161
  - Gemfile
152
162
  - Gemfile.lock
153
163
  - Guardfile
@@ -163,6 +173,7 @@ files:
163
173
  - lib/rails_best_practices/core.rb
164
174
  - lib/rails_best_practices/core/check.rb
165
175
  - lib/rails_best_practices/core/checking_visitor.rb
176
+ - lib/rails_best_practices/core/configs.rb
166
177
  - lib/rails_best_practices/core/controllers.rb
167
178
  - lib/rails_best_practices/core/error.rb
168
179
  - lib/rails_best_practices/core/helpers.rb
@@ -183,6 +194,7 @@ files:
183
194
  - lib/rails_best_practices/lexicals/remove_tab_check.rb
184
195
  - lib/rails_best_practices/lexicals/remove_trailing_whitespace_check.rb
185
196
  - lib/rails_best_practices/prepares.rb
197
+ - lib/rails_best_practices/prepares/config_prepare.rb
186
198
  - lib/rails_best_practices/prepares/controller_prepare.rb
187
199
  - lib/rails_best_practices/prepares/helper_prepare.rb
188
200
  - lib/rails_best_practices/prepares/mailer_prepare.rb
@@ -231,6 +243,7 @@ files:
231
243
  - spec/rails_best_practices/analyzer_spec.rb
232
244
  - spec/rails_best_practices/core/check_spec.rb
233
245
  - spec/rails_best_practices/core/checking_visitor_spec.rb
246
+ - spec/rails_best_practices/core/configs_spec.rb
234
247
  - spec/rails_best_practices/core/controllers_spec.rb
235
248
  - spec/rails_best_practices/core/error_spec.rb
236
249
  - spec/rails_best_practices/core/helpers_spec.rb
@@ -249,6 +262,7 @@ files:
249
262
  - spec/rails_best_practices/core_ext/sexp_spec.rb
250
263
  - spec/rails_best_practices/lexicals/remove_tab_check_spec.rb
251
264
  - spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb
265
+ - spec/rails_best_practices/prepares/config_prepare_spec.rb
252
266
  - spec/rails_best_practices/prepares/controller_prepare_spec.rb
253
267
  - spec/rails_best_practices/prepares/helper_prepare_spec.rb
254
268
  - spec/rails_best_practices/prepares/mailer_prepare_spec.rb
@@ -307,7 +321,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
307
321
  version: '0'
308
322
  segments:
309
323
  - 0
310
- hash: -964066537248826324
324
+ hash: 1930159151247489089
311
325
  required_rubygems_version: !ruby/object:Gem::Requirement
312
326
  none: false
313
327
  requirements:
@@ -325,6 +339,7 @@ test_files:
325
339
  - spec/rails_best_practices/analyzer_spec.rb
326
340
  - spec/rails_best_practices/core/check_spec.rb
327
341
  - spec/rails_best_practices/core/checking_visitor_spec.rb
342
+ - spec/rails_best_practices/core/configs_spec.rb
328
343
  - spec/rails_best_practices/core/controllers_spec.rb
329
344
  - spec/rails_best_practices/core/error_spec.rb
330
345
  - spec/rails_best_practices/core/helpers_spec.rb
@@ -343,6 +358,7 @@ test_files:
343
358
  - spec/rails_best_practices/core_ext/sexp_spec.rb
344
359
  - spec/rails_best_practices/lexicals/remove_tab_check_spec.rb
345
360
  - spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb
361
+ - spec/rails_best_practices/prepares/config_prepare_spec.rb
346
362
  - spec/rails_best_practices/prepares/controller_prepare_spec.rb
347
363
  - spec/rails_best_practices/prepares/helper_prepare_spec.rb
348
364
  - spec/rails_best_practices/prepares/mailer_prepare_spec.rb
@@ -1,65 +0,0 @@
1
- # vim:set filetype=ruby:
2
- def growl
3
- title = "Watchr Test Results"
4
- image = $?.success? ? "~/.watchr/images/passed.png" : "~/.watchr/images/failed.png"
5
- message = $?.success? ? "success" : "failed"
6
- growlnotify = `which growlnotify`.chomp
7
- options = "-w -n Watchr --image '#{File.expand_path(image)}' -m '#{message}' '#{title}'"
8
- system %(#{growlnotify} #{options} &)
9
- end
10
-
11
- def run(cmd)
12
- puts cmd
13
- system(cmd)
14
- end
15
-
16
- def spec(file)
17
- if File.exists?(file)
18
- run("rspec #{file}")
19
- growl
20
- else
21
- puts("Spec: #{file} does not exist.")
22
- end
23
- end
24
-
25
-
26
- def run_all_specs
27
- run "rake spec"
28
- growl
29
- end
30
-
31
- def run_suite
32
- system "clear"
33
- run_all_specs
34
- end
35
-
36
- watch("spec/.*/*_spec\.rb") do |match|
37
- puts(match[0])
38
- spec(match[0])
39
- end
40
-
41
- watch("lib/(.*/.*)\.rb") do |match|
42
- puts(match[1])
43
- spec("spec/#{match[1]}_spec.rb")
44
- end
45
-
46
-
47
- # Ctrl-\
48
- Signal.trap 'QUIT' do
49
- puts " --- Running all tests ---\n\n"
50
- run_suite
51
- end
52
-
53
- # Ctrl-C
54
- Signal.trap 'INT' do
55
- if @interrupted then
56
- abort("\n")
57
- else
58
- puts "Interrupt a second time to quit"
59
- @interrupted = true
60
- Kernel.sleep 1.5
61
- # raise Interrupt, nil # let the run loop catch it
62
- run_suite
63
- @interrupted = false
64
- end
65
- end