- Added final commas to MONTH_NAMES and ABBR_MONTH_NAMES
- Added aditional guards against empty strings for year, month, day.
- Bugfix: Merged pull request and bugfix for zero day mask. Thank you Alexander Gräfe. https://github.com/rickenharp
- Documentation and comment clean-up
- Implemented guard on to_s for unknown % tokens.
- Implemented faster Date#.to_s method.
- BugFix: to_s will preserve minus sign for negative year when formatter starts with %Y
- BugFix: <=> correct for negative dates.
- Implemented to_s formatters.
- BugFix: Another logical error in to_s - fixed (formatters next).
- Bugfix: Checked that sign is switched off when a postive year is set after a negative year.
- Bugfix: Fixed to_s again (before formatters are implemented).
- Allow negative years and year range from -1048576 to 1048576 (20 bits).
- Implemented negative year with signing mask.
- Year is no longer mandatory
- Created more specific error classes
- Implemented readonly attribute Date#bits to allow public access to the bit store for comparison in <=>.
- Moved bits.rb back into date.rb
- Changed error messages for month and day to 0 - 12 and 0 - 31 respectively (since zero values are allowed).
- Changed day validation logic to only check for the presence of month (not year and month - since a year has to be set before a month and is checked there).
- Bugfix: Fixed ZERO_DAY_MASK - which contained an extra bit, and was zeroing month when a day was set.
- Check that day is set to zero if month is.
- Added padding to string format for date.
- Fixed syntax error in example code from README.
- Updated tests and documentation.
- Implemented a 23 bit store as backing store for date, reducing the storage requirements and increasing performance of date objects.
- Refactored to use array backing store for element and computed date values for better performance.
- Implemented Comparable
- Initial release: