Class: TypeBalancer::PositionCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/type_balancer/calculator.rb,
lib/type_balancer/position_calculator.rb

Overview

Handles calculation of positions for balanced item distribution

Defined Under Namespace

Classes: PositionBatch

Class Method Summary collapse

Class Method Details

.calculate_positions(total_count:, ratio:, available_items: nil) ⇒ Object

Calculate positions for a single input (legacy support)



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/type_balancer/calculator.rb', line 51

def calculate_positions(total_count:, ratio:, available_items: nil)
  return [] if total_count.zero? || ratio.zero?
  return nil unless valid_inputs?(total_count, ratio)

  target_count = (total_count * ratio).round
  return [] if target_count.zero?

  if available_items
    calculate_positions_with_available_items(total_count, target_count, available_items)
  else
    calculate_evenly_spaced_positions(total_count, target_count, ratio)
  end
end