Class: FindSubscriptions::Output::CsvReporter

Inherits:
Object
  • Object
show all
Defined in:
lib/output/csv_reporter.rb

Overview

Outputs subscriptions as CSV with a header row.

Constant Summary collapse

HEADERS =
%w[name amount since until count].freeze

Instance Method Summary collapse

Constructor Details

#initialize(io: $stdout) ⇒ CsvReporter

Returns a new instance of CsvReporter.



11
12
13
# File 'lib/output/csv_reporter.rb', line 11

def initialize(io: $stdout)
  @io = io
end

Instance Method Details



15
16
17
18
19
20
21
22
23
# File 'lib/output/csv_reporter.rb', line 15

def print(subscriptions)
  output = CSV.generate do |csv|
    csv << HEADERS
    subscriptions.each do |sub|
      csv << [sub[:name], sub[:amount], sub[:since].iso8601, sub[:until].iso8601, sub[:count]]
    end
  end
  @io.print output
end