Sha256: a1a6a954ca969089d8446f8f21df127c2fdd92089e93f2b9ad4a4bcc25ad4c8d

Contents?: true

Size: 651 Bytes

Versions: 2

Compression:

Stored size: 651 Bytes

Contents

require "active_support/core_ext"

require "flex_station_data/services/parse_plate_readings"
require "flex_station_data/services/parse_plate_samples"
require "flex_station_data/plate"

module FlexStationData
  class ParsePlate
    include Concerns::Service

    attr_reader :plate_data

    def initialize(plate_data)
      @plate_data = plate_data
    end

    def data_blocks
      plate_data.split { |row| row[0] == "~End" }
    end

    def call
      times, temperatures, wells = ParsePlateReadings.call(data_blocks[0])
      samples = ParsePlateSamples.call(data_blocks[1], wells)
      Plate.new(times, temperatures, samples)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
flex-station-data-0.1.1 lib/flex_station_data/services/parse_plate.rb
flex-station-data-0.1.0 lib/flex_station_data/services/parse_plate.rb