Sha256: b33890e480ff8084aa61c81f632d065ca38228165330a15b3a70659f96c0352a

Contents?: true

Size: 953 Bytes

Versions: 8

Compression:

Stored size: 953 Bytes

Contents

class ChurnHotspot < MetricFu::Hotspot
  include MetricFu::HotspotScoringStrategies

  COLUMNS = %w{times_changed}

  def columns
    COLUMNS
  end

  def name
    :churn
  end

  def map(row)
    MetricFu::HotspotScoringStrategies.present(row)
  end

  def reduce(scores)
    MetricFu::HotspotScoringStrategies.sum(scores)
  end

  def score(metric_ranking, item)
    flat_churn_score = 0.50
    metric_ranking.scored?(item) ? flat_churn_score : 0
  end

  def generate_records(data, table)
   return if data==nil
    Array(data[:changes]).each do |change|
      table << {
        "metric" => :churn,
        "times_changed" => change[:times_changed],
        "file_path" => change[:file_path]
      }
    end
  end

  def present_group(group)
    "detected high level of churn (changed #{group[0].times_changed} times)"
  end

  def present_group_details(group)
    "detected high level of churn (changed #{group[0].times_changed} times)"
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
metric_fu-4.4.0 lib/metric_fu/metrics/churn/churn_hotspot.rb
metric_fu-4.3.1 lib/metric_fu/metrics/churn/churn_hotspot.rb
metric_fu-4.3.0 lib/metric_fu/metrics/churn/churn_hotspot.rb
metric_fu-4.2.1 lib/metric_fu/metrics/churn/churn_hotspot.rb
metric_fu-4.2.0 lib/metric_fu/metrics/churn/churn_hotspot.rb
metric_fu-4.1.3 lib/metric_fu/metrics/churn/churn_hotspot.rb
metric_fu-4.1.2 lib/metric_fu/metrics/churn/churn_hotspot.rb
metric_fu-4.1.1 lib/metric_fu/metrics/churn/churn_hotspot.rb