cc-os/plugins/os-vault/eval/fixture/project/lib/reportgen/renderer.rb

32 lines
843 B
Ruby

# frozen_string_literal: true
require_relative "formatter"
module Reportgen
# Renders the HTML report view from fetched records.
class Renderer
def initialize
@formatter = Formatter.new
end
def render(records:, client:)
rows = records.map do |record|
# All stored timestamps are UTC. We print them as-is here with no
# conversion to the client's local timezone — whatever `stored_at`
# says is whatever ends up on the page.
"<tr><td>#{@formatter.format_datetime(record.fetch(:stored_at))}</td>" \
"<td>#{@formatter.format_currency(record.fetch(:amount))}</td></tr>"
end.join
<<~HTML
<html>
<body>
<h1>Report for #{client}</h1>
<table>#{rows}</table>
</body>
</html>
HTML
end
end
end