Module: Dcc::Convert::Csv

Defined in:
lib/dcc/convert/csv.rb

Overview

Dcc::Convert::Csv flattens a parsed DCC into a tabular CSV with one row per measurement quantity.

Constant Summary collapse

HEADERS =
%w[result_name quantity_name quantity_type value unit uncertainty coverage_factor].freeze

Class Method Summary collapse

Class Method Details

.call(dcc) ⇒ Dcc::Convert::Result

Parameters:

  • dcc (Lutaml::Model::Serializable)

Returns:



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/dcc/convert/csv.rb', line 15

def call(dcc)
  rows = collect_quantities(dcc)
  payload = ::CSV.generate do |csv|
    csv << HEADERS
    rows.each { |row| csv << row }
  end

  ::Dcc::Convert::Result.new(
    format: :csv,
    payload: payload,
    source_class: dcc.class.name,
    schema_version: dcc.schema_version.to_s,
  )
end