Sha256: bf0a40cd7a410e3e401150f72c8531246a5b31c58299a09390fb8cc358e1d82c

Contents?: true

Size: 653 Bytes

Versions: 11

Compression:

Stored size: 653 Bytes

Contents

class ChurnAnalyzer
  include ScoringStrategies

  COLUMNS = %w{times_changed}

  def columns
    COLUMNS
  end

  def name
    :churn
  end

  def map(row)
    ScoringStrategies.present(row)
  end

  def reduce(scores)
    ScoringStrategies.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

end

Version data entries

11 entries across 11 versions & 4 rubygems

Version Path
metric_fu-2.1.3.4 lib/metrics/churn/churn_analyzer.rb
bf4-metric_fu-2.1.3.4 lib/base/churn_analyzer.rb
bf4-metric_fu-2.1.3.3 lib/base/churn_analyzer.rb
bf4-metric_fu-2.1.3.2 lib/base/churn_analyzer.rb
bf4-metric_fu-2.1.3.1 lib/base/churn_analyzer.rb
danmayer-metric_fu-2.1.3 lib/base/churn_analyzer.rb
danmayer-metric_fu-2.1.2 lib/base/churn_analyzer.rb
rferraz-metric_fu-2.1.2 lib/base/churn_analyzer.rb
rferraz-metric_fu-2.1.1 lib/base/churn_analyzer.rb
metric_fu-2.1.1 lib/base/churn_analyzer.rb
metric_fu-2.1.0 lib/base/churn_analyzer.rb