Sha256: dc8590f4d7175d6cad9ff53334ac39deabdd475a0920840a1393b1a2d1d59eb2

Contents?: true

Size: 1.36 KB

Versions: 6

Compression:

Stored size: 1.36 KB

Contents

module RailsStats
  class AppStatistics
    attr_reader :statistics, :total, :test

    def initialize(directory)
      @test = false
      @directory  = directory
      @statistics = calculate_statistics
      @total      = calculate_total
    end

    def key_concepts
      directories.collect{ |path| File.basename(path) }
    end

    private

    def calculate_total
      out = CodeStatisticsCalculator.new
      @statistics.each do |key, stats|
        out.add(stats)
      end
      out
    end

    def calculate_statistics
      Util.calculate_statistics(directories)
    end

    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
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rails_stats-1.0.2 lib/rails_stats/app_statistics.rb
rails_stats-1.0.1 lib/rails_stats/app_statistics.rb
rails_stats-1.0.0 lib/rails_stats/app_statistics.rb
rails_stats-0.1.0 lib/rails_stats/app_statistics.rb
rails_stats-0.0.6 lib/rails_stats/app_statistics.rb
rails_stats-0.0.4 lib/rails_stats/app_statistics.rb