== Version 0.2.2 (tzdata v2006g) - 17-May-2006 * Use class-scoped instance variables to store the Timezone identifier and singleton instance. Loading a linked zone no longer causes the parent zone's identifier to be changed. The instance method of a linked zone class also now returns an instance of the linked zone class rather than the parent class. Closes #4502. * The zdumptest utility now compares the TZInfo zone identifier with the zdump zone identifier. * The zdumptestall utility now exits if not supplied with enough parameters. * Updated to tzdata version 2006g (http://article.gmane.org/gmane.comp.time.tz/1008). == Version 0.2.1 (tzdata v2006d) - 17-Apr-2006 * Fix a performance issue caused in 0.2.0 with Timezone.local_to_utc. Conversions performed on TimeOrDateTime instances passed to <=> are now cached as originally intended. Thanks to Michael Smedberg for spotting this. * Fix a performance issue with the local_to_utc period search algorithm originally implemented in 0.1.0. The condition that was supposed to cause the search to terminate when enough periods had been found was only being evaluated in a small subset of cases. Thanks to Michael Smedberg and Jamis Buck for reporting this. * Added abbreviation as an alias for TimezonePeriod.zone_identifier. * Updated to tzdata version 2006d (http://article.gmane.org/gmane.comp.time.tz/936). * Ignore any offset in DateTimes passed in (as is already done for Times). All of the following now refer to the same UTC time (15:40 on 17 April 2006). Previously, the DateTime in the second line would have been interpreted as 20:40. tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0)) tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0).new_offset(Rational(5, 24))) tz.utc_to_local(Time.utc(2006, 4, 17, 15, 40, 0)) tz.utc_to_local(Time.local(2006, 4, 17, 15, 40, 0)) == Version 0.2.0 (tzdata v2006c) - 3-Apr-2006 * Use timestamps rather than DateTime objects in zone files for times between 1970 and 2037 (the range of Time). * Don't convert passed in Time objects to DateTime in most cases (provides a substantial performance improvement). * Allow integer timestamps (time in seconds since 1970-1-1) to be used as well as Time and DateTime objects in all public methods that take times as parameters. * Tool to compare TZInfo conversions with output from zdump. * TZDataParser zone generation algorithm rewritten. Now based on the zic code. TZInfo is now 100% compatible with zic/zdump output. * Riyadh Solar Time zones now included again (generation time has been reduced with TZDataParser changes). * Use binary mode when writing zone and country files to get Unix (\n) new lines. * Omit unnecessary quotes in zone identifier symbols. * Omit the final transition to DST if there is a prior transition in the last year processed to standard time. * Updated to tzdata version 2006c (http://article.gmane.org/gmane.comp.time.tz/920). == Version 0.1.2 (tzdata v2006a) - 5-Feb-2006 * Add lib directory to the load path when tzinfo is required. Makes it easier to use tzinfo gem when unpacked to vendor directory in rails. * Updated to tzdata version 2006a (http://article.gmane.org/gmane.comp.time.tz/738). * build_tz_classes rake task now handles running svn add and svn delete as new timezones and countries are added and old ones are removed. * Return a better error when attempting to use a Timezone instance that was constructed with Timezone.new(nil). This will occur when using Rails' composed_of. When the timezone identifier in the database is null, attempting to use the Timezone will now result in an UnknownTimezone exception rather than a NameError. == Version 0.1.1 (tzdata v2005q) - 18-Dec-2005 * Timezones that are defined by a single unbounded period (e.g. UTC) now work again. * Updated to tzdata version 2005q. == Version 0.1.0 (tzdata v2005n) - 27-Nov-2005 * period_for_local and local_to_utc now allow resolution of ambiguous times (e.g. when switching from daylight savings to standard time). The behaviour of these methods when faced with an ambiguous local time has now changed. If you are using these methods you should check the documentation. Thanks to Cliff Matthews for suggesting this change. * Added require 'date' to timezone.rb (date isn't loaded by default in all environments). * Use rake to build packages and documentation. * License file is now included in gem distribution. * Dates in definitions stored as Astronomical Julian Day numbers rather than as civil dates (improves performance creating DateTime instances). * Added options to TZDataParser to allow generation of specific zones and countries. * Moved TimezonePeriod class to timezone_period.rb. * New TimezonePeriodList class to store TimezonePeriods for a timezone and perform searches for periods. * Timezones now defined using blocks. TimezonePeriods are only instantiated when they are needed. Thanks to Jamis Buck for the suggestion. * Add options to TZDataParser to allow exclusion of specific zones and countries. * Exclude the Riyadh Solar Time zones. The rules are only for 1987 to 1989 and take a long time to generate and process. Riyadh Solar Time is no longer observed. * The last TimezonePeriod for each Timezone is now written out with an unbounded rather than arbitrary end time. * Construct the Rational offset in TimezonePeriod once when the TimezonePeriod is constructed rather than each time it is needed. * Timezone and Country now keep a cache of loaded instances to avoid running require which can be slow on some platforms. * Updated to tzdata version 2005n. == Version 0.0.4 (tzdata v2005m) - 18-Sep-2005 * Removed debug output accidentally included in the previous release. * Fixed a bug in the generation of friendly zone identifiers (was inserting apostrophes into UTC, GMT, etc). * Fixed Country <=> operator (was comparing non-existent attribute) * Fixed Timezone.period_for_local error when period not found. * Added testcases for Timezone, TimezoneProxy, TimezonePeriod, Country and some selected timezones. == Version 0.0.3 (tzdata v2005m) - 17-Sep-2005 * Reduced visibility of some methods added in Timezone#setup and Country#setup. * Added name method to Timezone (returns the identifier). * Added friendly_identifier method to Timezone. Returns a more friendly version of the identifier. * Added to_s method to Timezone. Returns the friendly identifier. * Added == and <=> operators to Timezone (compares identifiers). * Timezone now includes Comparable. * Added to_s method to Country. * Added == and <=> operators to Country (compares ISO 3166 country codes). * Country now includes Comparable. * New TimezoneProxy class that behaves the same as a Timezone but doesn't actually load in its definition until it is actually required. * Modified Timezone and Country methods that return Timezones to return TimezoneProxy instances instead. This makes these methods much quicker. In Ruby on Rails, you can now show a drop-down list of all timezones using the Rails time_zone_select helper method: <%= time_zone_select 'user', 'time_zone', TZInfo::Timezone.all.sort, :model => TZInfo::Timezone %> == Version 0.0.2 (tzdata v2005m) - 13-Sep-2005 * Country and Timezone data is now loaded into class rather than instance variables. This makes Timezone links more efficient and saves memory if creating specific Timezone and Country classes directly. * TimezonePeriod zone_identifier is now defined as a symbol to save memory (was previously a string). * TimezonePeriod zone_identifiers that were previously '' are now :Unknown. * Timezones and Countries can now be returned using Timezone.new(identifier) and Country.new(identifier). When passed an identifier, the new method calls get to return an instance of the specified timezone or country. * Added new class methods to Timezone to return sets of zones and identifiers. Thanks to Scott Barron of Lunchbox Software for the suggestions in his article about using TZInfo with Rails (http://lunchroom.lunchboxsoftware.com/pages/tzinfo_rails) == Version 0.0.1 (tzdata v2005m) - 29-Aug-2005 * First release.