1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Add code statistics for Javascript and

CoffeeScript files to `rake stats` task

Orignal PR was #2270

Thanks to @nfm
This commit is contained in:
Arun Agrawal 2012-05-31 16:15:35 +05:30
parent 08477a6516
commit a48b3f1a68
2 changed files with 10 additions and 2 deletions

View file

@ -26,7 +26,7 @@ class CodeStatistics #:nodoc:
Hash[@pairs.map{|pair| [pair.first, calculate_directory_statistics(pair.last)]}]
end
def calculate_directory_statistics(directory, pattern = /.*\.rb$/)
def calculate_directory_statistics(directory, pattern = /.*\.(rb|js|coffee)$/)
stats = { "lines" => 0, "codelines" => 0, "classes" => 0, "methods" => 0 }
Dir.foreach(directory) do |file_name|
@ -39,6 +39,13 @@ class CodeStatistics #:nodoc:
comment_started = false
case file_name
when /.*\.js$/
comment_pattern = /^\s*\/\//
else
comment_pattern = /^\s*#/
end
File.open(directory + "/" + file_name) do |f|
while line = f.gets
stats["lines"] += 1
@ -55,7 +62,7 @@ class CodeStatistics #:nodoc:
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*#/
stats["codelines"] += 1 unless line =~ /^\s*$/ || line =~ comment_pattern
end
end
end

View file

@ -3,6 +3,7 @@ STATS_DIRECTORIES = [
%w(Helpers app/helpers),
%w(Models app/models),
%w(Mailers app/mailers),
%w(Javascripts app/assets/javascripts),
%w(Libraries lib/),
%w(APIs app/apis),
%w(Integration\ tests test/integration),