Class: ChurnVsComplexity::Timetravel::Serializer::Graph

Inherits:
Object
  • Object
show all
Defined in:
lib/churn_vs_complexity/timetravel/serializer.rb

Overview

TODO: unit test

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(git_period:, relative_period:, jump_days:, template: Graph.load_template_file) ⇒ Graph

Returns a new instance of Graph.



50
51
52
53
54
55
# File 'lib/churn_vs_complexity/timetravel/serializer.rb', line 50

def initialize(git_period:, relative_period:, jump_days:, template: Graph.load_template_file)
  @template = template
  @git_period = git_period
  @relative_period = relative_period
  @jump_days = jump_days
end

Class Method Details

.load_template_fileObject



57
58
59
60
# File 'lib/churn_vs_complexity/timetravel/serializer.rb', line 57

def self.load_template_file
  file_path = File.expand_path('../../../tmp/template/timetravel_graph.html', __dir__)
  File.read(file_path)
end

Instance Method Details

#serialize(result) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/churn_vs_complexity/timetravel/serializer.rb', line 62

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

  data = summaries.map do |summary|
    JSON.dump(summary)
  end.join(",\n") + "\n"

  @template.gsub("// INSERT DATA\n", data)
           .gsub('INSERT TITLE', title)
           .gsub('INSERT CHURN MODIFIER', churn_modifier)
end