aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorSergey Parizhskiy <parizhskiy@gmail.com>2011-11-23 14:10:30 +0200
committerSergey Parizhskiy <parizhskiy@gmail.com>2011-11-23 14:10:30 +0200
commitd78a7026fcd5eb0cd91e3da2a125ddfcf53e7a7a (patch)
treeb5dbf12ec86b876be70ba10687314af55563d983 /railties
parenta93ee92da2b9ba83e3a3fe0b8d4dd5cac2790f15 (diff)
downloadrails-d78a7026fcd5eb0cd91e3da2a125ddfcf53e7a7a.tar.gz
rails-d78a7026fcd5eb0cd91e3da2a125ddfcf53e7a7a.tar.bz2
rails-d78a7026fcd5eb0cd91e3da2a125ddfcf53e7a7a.zip
improved code stats calculation, check on multiline comments and rewrite regexps according to a class naming convention
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/code_statistics.rb17
1 files changed, 14 insertions, 3 deletions
diff --git a/railties/lib/rails/code_statistics.rb b/railties/lib/rails/code_statistics.rb
index e6822b75b7..435ea83ad8 100644
--- a/railties/lib/rails/code_statistics.rb
+++ b/railties/lib/rails/code_statistics.rb
@@ -38,11 +38,22 @@ class CodeStatistics #:nodoc:
next unless file_name =~ pattern
f = File.open(directory + "/" + file_name)
-
+ comment_started = false
while line = f.gets
stats["lines"] += 1
- stats["classes"] += 1 if line =~ /class [A-Z]/
- stats["methods"] += 1 if line =~ /def [a-z]/
+ if(comment_started)
+ if line =~ /^=end/
+ comment_started = false
+ end
+ next
+ else
+ if line =~ /^=begin/
+ comment_started = true
+ next
+ end
+ end
+ stats["classes"] += 1 if line =~ /^\s*class\s+[_A-Z]/
+ stats["methods"] += 1 if line =~ /^\s*def\s+[_a-z]/
stats["codelines"] += 1 unless line =~ /^\s*$/ || line =~ /^\s*#/
end
end