Sha256: a961ea6e317bd2843e4231df3ea68e41a9165dfd0d1215f3faa470cfa77f635e

Contents?: true

Size: 1.2 KB

Versions: 6

Compression:

Stored size: 1.2 KB

Contents

MetricFu.reporting_require { 'graphs/grapher' }
module MetricFu
  class ReekGrapher < Grapher
    attr_accessor :reek_count, :labels

    def self.metric
      :reek
    end

    def initialize
      super
      @reek_count = {}
      @labels = {}
    end

    def get_metrics(metrics, date)
      if metrics && metrics[:reek]
        counter = @labels.size
        @labels.update( { @labels.size => date })

        metrics[:reek][:matches].each do |reek_chunk|
          reek_chunk[:code_smells].each do |code_smell|
            # speaking of code smell...
            @reek_count[code_smell[:type]] = [] if @reek_count[code_smell[:type]].nil?
            if @reek_count[code_smell[:type]][counter].nil?
              @reek_count[code_smell[:type]][counter] = 1
            else
              @reek_count[code_smell[:type]][counter] += 1
            end
          end
        end
      end
    end

    def title
      'Reek: code smells'
    end

    def data
      @reek_count.map do |name, count|
        [name, nil_counts_to_zero(count).join(',')]
      end
    end

    def output_filename
      'reek.js'
    end

    private

    def nil_counts_to_zero(counts)
      counts.map { |count| count || 0 }
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
metric_fu-4.11.3 lib/metric_fu/metrics/reek/grapher.rb
metric_fu-4.11.2 lib/metric_fu/metrics/reek/grapher.rb
metric_fu-4.11.1 lib/metric_fu/metrics/reek/grapher.rb
metric_fu-4.11.0 lib/metric_fu/metrics/reek/grapher.rb
metric_fu-4.10.0 lib/metric_fu/metrics/reek/reek_grapher.rb
metric_fu-4.9.0 lib/metric_fu/metrics/reek/reek_grapher.rb