Method: TypeBalancer::PositionCalculator.calculate_positions

Defined in:
lib/type_balancer/calculator.rb,
lib/type_balancer/position_calculator.rb

.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