Sha256: e6fec52de5e8a0632242f532e1cdecf65a419cdf54e13124ff563a22fbad582c

Contents?: true

Size: 1.19 KB

Versions: 56

Compression:

Stored size: 1.19 KB

Contents

module MetricFu

  class Stats < Generator

    def emit
      `rake stats > #{metric_directory + '/stats.txt'}`
    end

    def analyze
      output = File.open(metric_directory + '/stats.txt').read
      output = output.split("\n")
      output = output.find_all {|line| line[0].chr != "+" }
      output = output.find_all {|line| line[0].chr != "(" }
      output.shift
      totals = output.pop
      totals = totals.split("  ").find_all {|el| ! el.empty? }
      @stats = {}
      @stats[:codeLOC] = totals[0].match(/\d.*/)[0].to_i
      @stats[:testLOC] = totals[1].match(/\d.*/)[0].to_i
      @stats[:code_to_test_ratio] = totals[2].match(/1\:(\d.*)/)[1].to_f
      
      @stats[:lines] = output.map do |line|
        elements = line.split("|")
        elements.map! {|el| el.strip }
        elements = elements.find_all {|el| ! el.empty? }
        info_line = {}
        info_line[:name] = elements.shift
        elements.map! {|el| el.to_i }
        [:lines, :loc, :classes, :methods, 
         :methods_per_class, :loc_per_method].each do |sym|
          info_line[sym] = elements.shift
        end
        info_line
      end
      @stats
    end

    def to_h
      {:stats => @stats}
    end

  end
end

Version data entries

56 entries across 56 versions & 17 rubygems

Version Path
IPGlider-metric_fu-1.1.5.1.1 lib/generators/stats.rb
IPGlider-metric_fu-1.1.5.1 lib/generators/stats.rb
alexrothenberg-metric_fu-1.0.2 lib/generators/stats.rb
cayblood-metric_fu-1.1.6 lib/generators/stats.rb
edouard-metric_fu-1.0.2 lib/generators/stats.rb
edouard-metric_fu-1.0.3.3 lib/generators/stats.rb
edouard-metric_fu-1.0.3.4 lib/generators/stats.rb
edouard-metric_fu-1.0.3.5 lib/generators/stats.rb
edouard-metric_fu-1.0.3.6 lib/generators/stats.rb
edouard-metric_fu-1.0.3.7 lib/generators/stats.rb
edouard-metric_fu-1.0.3.8 lib/generators/stats.rb
edouard-metric_fu-1.0.4.1 lib/generators/stats.rb
edouard-metric_fu-1.0.4.2 lib/generators/stats.rb
edouard-metric_fu-1.0.4.3 lib/generators/stats.rb
edouard-metric_fu-1.0.4.4 lib/generators/stats.rb
edouard-metric_fu-1.0.4.5 lib/generators/stats.rb
edouard-metric_fu-1.0.4 lib/generators/stats.rb
edouard-metric_fu-1.1.1 lib/generators/stats.rb
gforces-metric_fu-1.1.4 lib/generators/stats.rb
iain-metric_fu-0.1.0 lib/generators/stats.rb