CHANGES in tzinfo-0.2.2 vs CHANGES in tzinfo-0.3.0
- old
+ new
@@ -1,172 +1,222 @@
-== 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.
+== Version 0.3.0 (tzdata v2006g) - 17-Jul-2006
+
+* New timezone data format. Timezone data now occupies less space on disk and
+ takes less memory once loaded. #4142, #4144.
+* Timezone data is defined in modules rather than classes. Timezone instances
+ returned by Timezone.get are no longer instances of data classes, but are
+ instead instances of new DataTimezone and LinkedTimezone classes.
+* Timezone instances can now be used with Marshal.dump and Marshal.load. #4240.
+* Added a Timezone.get_proxy method that returns a TimezoneProxy object for a
+ given identifier.
+* Country index data is now defined in a single module that is independent
+ of the Country class implementation.
+* Country instances can now be used with Marshal.dump and Marshal.load. #4240.
+* Country has a new zone_info method that returns CountryTimezone objects
+ containing additional information (latitude, longitude and a description)
+ relating to each Timezone. #4140.
+* Timezones within a Country are now returned in an order that makes
+ geographic sense.
+* The zdumptest utility now checks local to utc conversions in addition to
+ utc to local conversions.
+* eql? method defined on Country and Timezone that is equivalent to ==.
+* == method of Timezone no longer raises an exception when passed an object
+ with no identifier method.
+* == method of Country no longer raises an exception when passed an object
+ with no code method.
+* hash method defined on Country that returns the hash of the code.
+* hash method defined on Timezone that returns the hash of the identifier.
+* Miscellaneous API documentation corrections and improvements.
+* Timezone definition and indexes are now excluded from rdoc (the contents were
+ previously ignored with #:nodoc: anyway).
+* Removed no longer needed #:nodoc: directives from timezone data files (which
+ are now excluded from the rdoc build).
+* Installation of the gem now causes rdoc API documentation to be generated.
+ #4905.
+* When optimizing transitions to generate zone definitions, check the
+ UTC and standard offsets separately rather than just the total offset to UTC.
+ Fixes an incorrect abbreviation issue with Europe/London, Europe/Dublin and
+ Pacific/Auckland.
+* Eliminated unnecessary .nil? calls to give a minor performance gain.
+* Timezone.all and Timezone.all_identifiers now return all the
+ Timezones/identifiers rather than just those associated with countries. #4146.
+* Added all_data_zones, all_data_zone_identifiers, all_linked_zones and
+ all_linked_zone_identifiers class methods to Timezone.
+* Added a strftime method to Timezone that converts a time in UTC to local
+ time and then returns it formatted. %Z is replaced with the Timezone
+ abbreviation for the given time (for example, EST or EDT). #4143.
+* Fix escaping of quotes in TZDataParser. This affected country names and
+ descriptions of timezones within countries.
+
+
+== 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. #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.