class FlexStationData::ParseSampleMap
Attributes
plate_data[R]
Public Class Methods
new(plate_data)
click to toggle source
# File lib/flex_station_data/services/parse_sample_map.rb, line 14 def initialize(plate_data) @plate_data = plate_data end
Public Instance Methods
call()
click to toggle source
# File lib/flex_station_data/services/parse_sample_map.rb, line 26 def call sample_map_rows.each_with_object([]) do |(label, well), memo| memo << [ label, [] ] if label.present? memo.last.last << well end.to_h end
sample_map_rows()
click to toggle source
# File lib/flex_station_data/services/parse_sample_map.rb, line 18 def sample_map_rows plate_data .drop_while { |row| !sample_map_header?(row) } .drop(1) .take_while { |row| !empty_row?(row) } .map(&method(:parse_row)) end
Private Instance Methods
empty_row?(row)
click to toggle source
# File lib/flex_station_data/services/parse_sample_map.rb, line 39 def empty_row?(row) row.all?(&:blank?) end
parse_row(row)
click to toggle source
# File lib/flex_station_data/services/parse_sample_map.rb, line 35 def parse_row(row) row.take(2).map(&:presence) end
sample_map_header?(row)
click to toggle source
# File lib/flex_station_data/services/parse_sample_map.rb, line 43 def sample_map_header?(row) row[0].to_s =~ /\A\s*Sample\s*\z/i && row[1].to_s =~ /\A\s*Wells\s*\z/i end