From: Peter Vandenabeele Date: 2012-03-01T19:26:45+09:00 Subject: [ANN] Relativity 0.0.9 released Hi, Just released version 0.0.9 of 'relativity' * What is it? Time, Date and DateTime classes don’t have a mode for working with relative time inside 1 day (or 1 week, 1 month, 1 quarter, etc.). A relative time object, relative to a day or a week, is useful to describe e.g. opening hours of a business. Ranges are built on top, so the ranges of opening hours can be represented. * Short example (more examples in the README): require 'relativity' opens_at = DayTime.new("8:35") #=> 08:35:00 dtr = DayTimeRange.new("8 to 12:30") # => 08:00:00 to 12:30:00 dtr.start # => 08:00:00 dtr.to_s # => "08:00:00 to 12:30:00" night_shift = DayTimeRange.new("21:45..06:05") # => 21:45:00..06:05:00 # normalize is used for persisting a DayTime and DayTimeRange in normalized format DayTime.normalize("8") # => "08:00:00" DayTime.normalize(nil) # => nil DayTimeRange.normalize("8..12") # => "08:00:00..12:00:00" DayTimeRange.normalize("8 to 12", :separator => "..") => Relativity::InvalidRangeFormatError: Maybe the range separator was not set correctly? Separator used was ".." * Changes ** solved a bug with ruby 1.9.2 (thanks Bryan Dunsmore for the bug report) ** added DayTimeRange ** added methods for normalization (used for persisting in AR) ** see Changelog for details * TODO ** new/normalize checks hours, minutes, seconds, nanoseconds in range (0...24, 0...60, 0...60, 0...1000_000_000) ** Add a '...' range (up to, but not including) ** comparisons (`==`, `include?`, ...) ** WeekTime ** WeekDay ** WeekTimeRange ** WeekDayRange ** ... HTH, Peter