Permalink
Browse files

improved code stats calculation, check on multiline comments and rewr…

…ite regexps according to a class naming convention
  • Loading branch information...
1 parent a93ee92 commit d78a7026fcd5eb0cd91e3da2a125ddfcf53e7a7a @HeeL HeeL committed Nov 23, 2011
Showing with 14 additions and 3 deletions.
  1. +14 −3 railties/lib/rails/code_statistics.rb
@@ -38,11 +38,22 @@ def calculate_directory_statistics(directory, pattern = /.*\.rb$/)
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

0 comments on commit d78a702

Please sign in to comment.