Module: Limber::TagLayoutTemplate::TagWalker
- Included in:
- WalkCombinatorialSequential, WalkQuadrants
- Defined in:
- app/models/limber/tag_layout_template/tag_walker.rb
Overview
Generic walker behaviour
Instance Method Summary collapse
-
#generate_tag_layout(plate) ⇒ Object
rubocop:todo Metrics/AbcSize.
Instance Method Details
#generate_tag_layout(plate) ⇒ Object
rubocop:todo Metrics/AbcSize
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/models/limber/tag_layout_template/tag_walker.rb', line 5 def generate_tag_layout(plate) # rubocop:todo Metrics/AbcSize = tag_ids groups = group_wells_of_plate(plate) pools = groups.filter_map { |w| w.try(:[], 1) }.uniq groups.each_with_object({}) do |(well, pool_id, _well_empty), tagged_wells| next if well.nil? column, row = WellHelpers.well_coordinate(well) index = primary_index(row, column, 2, plate.number_of_rows, plate.number_of_columns) throw :unacceptable_tag_layout if .size <= index tagged_wells[well] = [pools.index(pool_id) + 1, [index]] unless well.nil? end end |