class RailsStats::AppStatistics

Attributes

statistics[R]
test[R]
total[R]

Public Class Methods

new(directory) click to toggle source
# File lib/rails_stats/app_statistics.rb, line 5
def initialize(directory)
  @test = false
  @directory  = directory
  @statistics = calculate_statistics
  @total      = calculate_total
end

Public Instance Methods

key_concepts() click to toggle source
# File lib/rails_stats/app_statistics.rb, line 12
def key_concepts
  directories.collect{ |path| File.basename(path) }
end

Private Instance Methods

calculate_statistics() click to toggle source
# File lib/rails_stats/app_statistics.rb, line 26
def calculate_statistics
  Util.calculate_statistics(directories)
end
calculate_total() click to toggle source
# File lib/rails_stats/app_statistics.rb, line 18
def calculate_total
  out = CodeStatisticsCalculator.new
  @statistics.each do |key, stats|
    out.add(stats)
  end
  out
end
directories() click to toggle source
# File lib/rails_stats/app_statistics.rb, line 30
def directories
  return @directories if @directories
  out = []
  Dir.foreach(@directory) do |file_name|
    path = File.join(@directory, file_name)
    next unless File.directory?(path)
    next if (/^\./ =~ file_name)
    next if file_name == "assets" # doing separately
    next if file_name == "views"  # TODO
    out << path
  end

  assets = File.join(@directory, "assets")
  if File.directory?(assets)
    Dir.foreach(assets) do |file_name|
      path = File.join(assets, file_name)
      next unless File.directory?(path)
      next if (/^\./ =~ file_name)

      case file_name
      when "javascripts"
        out << path
      # TODO when "css"
      end
    end
  end

  out
end