Module: ChurnVsComplexity::Timetravel::Serializer::CSV

Defined in:
lib/churn_vs_complexity/timetravel/serializer.rb

Class Method Summary collapse

Class Method Details

.serialize(result) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/churn_vs_complexity/timetravel/serializer.rb', line 23

def self.serialize(result)
  summaries = Serializer.summaries(result)

  # 2. Add title row to front of summaries
  summaries.unshift(
    {
      'end_date' => 'Date',
      'mean_churn' => 'Mean Churn',
      'median_churn' => 'Median Churn',
      'mean_complexity' => 'Mean Complexity',
      'median_complexity' => 'Median Complexity',
      'mean_alpha_score' => 'Mean Alpha Score',
      'median_alpha_score' => 'Median Alpha Score',
      'mean_beta_score' => 'Mean Beta Score',
      'median_beta_score' => 'Median Beta Score',
    },
  )

  # 3. convert to csv
  summaries.map do |summary|
    "#{summary['end_date']},#{summary['mean_churn']},#{summary['median_churn']},#{summary['mean_complexity']},#{summary['median_complexity']},#{summary['mean_alpha_score']},#{summary['median_alpha_score']},#{summary['mean_beta_score']},#{summary['median_beta_score']}"
  end.join("\n")
end