RRSchedule
A ruby gem that makes it easier to generate Round-Robin schedules
gem install rrschedule
require 'rrschedule'
schedule=RRSchedule::Schedule.new(
:teams => %w(T1 T2 T3 T4 T5 T6 T7 T8),
:rules => [
RRSchedule::Rule.new(
:wday => 3,
:gt => ["7:00PM","9:00PM"],
:ps => ["field #1", "field #2"]
)
],
:start_date => Date.parse("2010/10/13")
).generate
#human-readable schedule
puts schedule.to_s
#just the round-robin
puts schedule.rounds.collect{|r| r.to_s}
#Or, if you want to loop through the schedule...
schedule.gamedays.each do |gd|
puts gd.date
gd.games.each do |game|
puts "#{game.team_a} Vs #{game.team_b}"
#...
end
end
See github page for more info.
gem written by François Lamontagne | blog | My Freelancer Website