Sha256: ed2e0d2fcf37ca4b6a4205c3cad44a548a6b22401aea93c607be6f9789769ed2

Contents?: true

Size: 940 Bytes

Versions: 2

Compression:

Stored size: 940 Bytes

Contents

# Copyright (c) 2020 Jerome Arbez-Gindre
# frozen_string_literal: true

require('csv')

module DefMastership
  # format lines per definition
  class CSVFormatterBody
    def initialize(doc)
      @doc = doc
    end

    def fixed(definition)
      [definition.type, definition.reference, definition.value, definition.sha256]
    end

    def wrong_explicit_checksum(definition)
      wrong_explicit_checksum = definition.wrong_explicit_checksum
      wrong_explicit_checksum ? [wrong_explicit_checksum] : ['']
    end

    def labels(definition)
      @doc.labels.empty? ? [] : [definition.labels.to_a.join("\n")]
    end

    def eref(definition)
      @doc.eref.map { |key, _| definition.eref[key].join("\n") }
    end

    def iref(definition)
      @doc.iref ? [definition.iref.join("\n")] : []
    end

    def attributes(definition)
      @doc.attributes.map do |key, _|
        definition.attributes[key]
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
defmastership-1.0.7 lib/defmastership/csv_formatter_body.rb
defmastership-1.0.6 lib/defmastership/csv_formatter_body.rb