Ruby Quiz wrote:
> The three rules of Ruby Quiz:
> 
> 1.  Please do not post any solutions or spoiler discussion for this quiz until
> 48 hours have passed from the time on this message.
> 
> 2.  Support Ruby Quiz by submitting ideas as often as you can:
> 
> http://www.rubyquiz.com/
> 
> 3.  Enjoy!
> 
> Suggestion:  A [QUIZ] in the subject of emails about the problem helps everyone
> on Ruby Talk follow the discussion.  Please reply to the original quiz message,
> if you can.
> 
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> 
> by Bryan Donovan
> 
> If you've ever created a web application that deals with scheduling recurring
> events, you may have found yourself creating a method to convert a list of days
> into a more human-readable string.
> 
> For example, suppose a musician plays at a certain venue on Monday, Tuesday,
> Wednesday, and Saturday. You could pass a list of associated day numbers to your
> object or method, which might return "Mon-Wed, Sat".
> 
> The purpose of this quiz is to find the best "Ruby way" to generate this
> sentence-like string.
> 
> Basically, the rules are:
> 
> 	* The class's constructor should accept a list of arguments that can be day
> 	  numbers (see day number hash below), day abbreviations ('Mon', 'Tue', etc.),
> 	  or the full names of the days ('Monday', 'Tuesday', etc.).
> 	* If an invalid day id is included in the argument list, the constructor
> 	  should raise an ArgumentError.
> 	* The days should be sorted starting with Monday.
> 	* Three or more consecutive days should be represented by listing the first
> 	  day followed by a hyphen (-), followed by the last day of the range.
> 	* Individual days and the above day ranges should be separated by commas.
> 	* The class should number days (accepting Integers or Strings) as follows:
> 	    1:  Mon
> 	    2:  Tue
> 	    3:  Wed
> 	    4:  Thu
> 	    5:  Fri
> 	    6:  Sat
> 	    7:  Sun
> 	* The class needs a method named #to_s that returns the day range string.
> 	  Here are some example lists of days and their expected returned strings:
> 	    1,2,3,4,5,6,7:  Mon-Sun
> 	    1,2,3,6,7:      Mon-Wed, Sat, Sun
> 	    1,3,4,5,6:      Mon, Wed-Sat
> 	    2,3,4,6,7:      Tue-Thu, Sat, Sun
> 	    1,3,4,6,7:      Mon, Wed, Thu, Sat, Sun
> 	    7:              Sun
> 	    1,7:            Mon, Sun
> 	    1,8:            ArgumentError
> 
> This is not intended to be a difficult quiz, but I think the solutions would be
> useful in many situations, especially in web applications. The solution I have
> come up with works and is relatively fast (fast enough for my purposes anyway),
> but isn't very elegant. I'm very interested in seeing how others approach the
> problem.
> 

What about the handling of day ranges that wrap, such as 1, 5, 6, and 7? 
  Do you want Monday, Friday-Sunday, or the more logical Friday-Monday?