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:
parent
08477a6516
commit
a48b3f1a68
2 changed files with 10 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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),
|
||||
|
|
Loading…
Reference in a new issue