pinrails/app/controllers/pages_controller.rb

36 lines
734 B
Ruby

# frozen_string_literal: true
class PagesController < ApplicationController
def index; end
def randomize
@groups = make_teams
@machines = Machine.limit(@groups.size).order(Arel.sql('RANDOM()'))
end
private
def make_teams
r = Player.order(Arel.sql('RANDOM()')).to_a
teams = []
until r.empty?
if (r.size % 4).zero?
teams << r.shift(4)
elsif r.size.even? && (r.size > 2)
teams << r.shift(3)
teams << r.shift(3)
elsif (r.size % 3).zero?
teams << r.shift(3)
elsif r.size == 5
teams << r.shift(3)
teams << r.shift(2)
else
teams << r.shift(4)
end
end
teams.sort { |a, b| b.length <=> a.length }
end
end