class FlexStationData::LoadPlates

Attributes

file[R]

Public Class Methods

new(file) click to toggle source
# File lib/flex_station_data/services/load_plates.rb, line 14
def initialize(file)
  @file = file
end

Public Instance Methods

call() click to toggle source
# File lib/flex_station_data/services/load_plates.rb, line 29
def call
  data_blocks.each_with_index.map do |data_block, index|
    FlexStationData::ParsePlate.call(index + 1, data_block)
  end
end
data() click to toggle source
# File lib/flex_station_data/services/load_plates.rb, line 18
def data
  CSV.read(file, headers: false).to_a
end
data_blocks() click to toggle source
# File lib/flex_station_data/services/load_plates.rb, line 22
def data_blocks
  @data_blocks ||= data.each_with_object([]) do |row, blocks|
    blocks << [] if plate_row?(row)
    blocks.last&.push(row)
  end
end

Private Instance Methods

plate_row?(row) click to toggle source
# File lib/flex_station_data/services/load_plates.rb, line 37
def plate_row?(row)
  row[0].to_s =~ /\A\s*Plate:\s*/i
end