Sha256: 27ed76258a8bf3cbf8d63ab49efc3313a872cc93387bf7a8488051a8e4839719

Contents?: true

Size: 520 Bytes

Versions: 1

Compression:

Stored size: 520 Bytes

Contents

require "flex_station_data/presenters/sample_csv"

module FlexStationData
  module Presenters
    class PlateCsv
      include Concerns::Presenter

      attr_reader :plate

      delegate :times, :samples, to: :plate

      def initialize(plate)
        @plate = plate
      end

      def present(&sample_presenter)
        sample_presenter ||= SampleCsv
        sample_presenter = sample_presenter.curry(2)[times]
        [ ["Plate #{plate.label}"], *samples.flat_map(&sample_presenter) ]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
flex-station-data-0.2.0 lib/flex_station_data/presenters/plate_csv.rb