Sha256: babe2a5a0a0bcb3d72ee85a23b2ccdf7708367f91e30980ca0f71005cad4e406

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

# encoding: utf-8
#

# Gathers various statistics.
#
class Statistics # :nodoc:all

  def initialize
    @indexes = ["\033[1mIndexes analysis\033[m:"]
  end

  def preamble
    loc = lines_of_code File.open('app/application.rb').read

    @preamble ||= <<-PREAMBLE
\033[1mApplication(s)\033[m
  Definition LOC:  #{"%4d" % loc}
  Indexes defined: #{"%4d" % Indexes.size}
PREAMBLE
  end

  # Gathers information about the application.
  #
  def application
    preamble
    @application = Application.apps.map &:indented_to_s
  end

  # Gathers information about the indexes.
  #
  def analyze object
    object.each_category do |category|
      @indexes << <<-ANALYSIS
#{"#{category.index_name}".indented_to_s}\n
#{"#{category.name}".indented_to_s(4)}\n
#{"exact\n#{Analyzer.new.analyze(category.indexed_exact).indented_to_s}".indented_to_s(6)}\n
#{"partial\n#{Analyzer.new.analyze(category.indexed_partial).indented_to_s}".indented_to_s(6)}
ANALYSIS
    end
  end

  # Outputs all gathered statistics.
  #
  def to_s
    <<-STATS

Picky Configuration:

#{[@preamble, @application, @indexes.join("\n")].compact.join("\n")}
STATS
  end

  # Internal methods.
  #

  def lines_of_code text
    text.scan(/^\s*[^#\s].*$/).size
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
picky-2.7.0 lib/picky/statistics.rb