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 endSee github page for more info.
gem written by François Lamontagne | blog | My Freelancer Website