private Method

CodeStatistics.calculate_directory_statistics(directory, pattern = /.*\.rb$/)

There's no documentation for this item.

Source Code

# File code_statistics.rb, line 29
def calculate_directory_statistics(directory, pattern = /.*\.rb$/)
  stats = { "lines" => 0, "codelines" => 0, "classes" => 0, "methods" => 0 }

  Dir.foreach(directory) do |file_name| 
    if File.stat(directory + "/" + file_name).directory? and (/^\./ !~ file_name)
      newstats = calculate_directory_statistics(directory + "/" + file_name, pattern)
      stats.each { |k, v| stats[k] += newstats[k] }
    end

    next unless file_name =~ pattern

    f = File.open(directory + "/" + file_name)

    while line = f.gets
      stats["lines"]     += 1
      stats["classes"]   += 1 if line =~ /class [A-Z]/
      stats["methods"]   += 1 if line =~ /def [a-z]/
      stats["codelines"] += 1 unless line =~ /^\s*$/ || line =~ /^\s*#/
    end
  end

  stats
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.