Subject: CVS commit: pkgsrc/time/ruby-tzinfo
From: Takahiro Kambe
Date: 2019-02-03 16:27:53
Message id:

Log Message:
time/ruby-tzinfo: update to 2.0.0

2.0.0 (2018-12-26)


* to_local and period_for instance methods have been added to TZInfo::Timezone. \ 
These are similar to utc_to_local and period_for_utc, but take the UTC offset of \ 
the given time into account.
* abbreviation, dst?, base_utc_offset and observed_utc_offset instance methods \ 
have been added to TZInfo::Timezone, returning the abbreviation, whether \ 
daylight savings time is in effect and the UTC offset of the time zone at a \ 
specified time.
* A TZInfo::Timestamp class has been added. It can be used with TZInfo::Timezone \ 
in place of a Time or DateTime.
* local_time, local_datetime and local_timestamp instance methods have been \ 
added to TZInfo::Timezone. These methods construct local Time, DateTime and \ 
TZInfo::Timestamp instances with the correct UTC offset and abbreviation for the \ 
time zone.
* Support for a (yet to be released) version 2 of tzinfo-data has been added, in \ 
addition to support for version 1. The new version will remove the (no longer \ 
needed) DateTime parameters from transition times, reduce memory consumption and \ 
improve the efficiency of loading timezone and country indexes.
* A TZInfo::VERSION constant has been added, indicating the TZInfo version number.


* The minimum supported Ruby versions are now Ruby MRI 1.9.3, JRuby 1.7 (in 1.9 \ 
or later mode) and Rubinius 3.
* Local times are now returned using the correct UTC offset (instead of using \ 
UTC). #49 and #52.
* Local times are returned as instances of TimeWithOffset, DateTimeWithOffset or \ 
TZInfo::TimestampWithOffset. These classes subclass Time, DateTime and \ 
TZInfo::Timestamp respectively. They override the default behaviour of the base \ 
classes to return information about the observed offset at the indicated time. \ 
For example, the zone abbreviation is returned when using the %Z directive with \ 
* The transitions_up_to, offsets_up_to and strftime instance methods of \ 
TZInfo::Timezone now take the UTC offsets of given times into account (instead \ 
of ignoring them as was previously the case).
* The TZInfo::TimezonePeriod class has been split into two subclasses: \ 
TZInfo::OffsetTimezonePeriod and TZInfo::TransitionsTimezonePeriod. \ 
TZInfo::OffsetTimezonePeriod is returned for time zones that only have a single \ 
offset. TZInfo::TransitionsTimezonePeriod is returned for periods that start or \ 
end with a transition.
* TZInfo::TimezoneOffset#abbreviation, TZInfo::TimezonePeriod#abbreviation and \ 
TZInfo::TimezonePeriod#zone_identifier now return frozen String instances \ 
instead of instances of Symbol.
* The utc_offset and utc_total_offset attributes of TZInfo::TimezonePeriod and \ 
TZInfo::TimezoneOffset have been renamed base_utc_offset and observed_utc_offset \ 
respectively. The former names have been retained as aliases.
* TZInfo::Timezone.get, TZInfo::Timezone.get_proxy and TZInfo::Country.get can \ 
now be used with strings having any encoding. Previously, only encodings that \ 
are directly comparable with UTF-8 were supported.
* The requested identifier is included in TZInfo::InvalidTimezoneIdentifier \ 
exception messages.
* The requested country code is included in TZInfo::InvalidCountryCode exception \ 
* The full range of transitions is now loaded from zoneinfo files. Zoneinfo \ 
files produced with version 2014c of the zic tool contain an initial transition \ 
2**63 seconds before the epoch. Zoneinfo files produced with version 2014d or \ 
later of zic contain an initial transition 2**59 seconds before the epoch. These \ 
transitions would previously have been ignored, but are now returned in methods \ 
such as TZInfo::Timezone#transitions_up_to.
* The TZInfo::RubyDataSource and TZInfo::ZoneinfoDataSource classes have been \ 
moved into a new TZInfo::DataSources module. Code that is setting \ 
TZInfo::ZoneinfoDataSource.search_path or \ 
TZInfo::ZoneinfoDataSource.alternate_iso3166_tab_search_path will need to be \ 
updated accordingly.
* The TZInfo::InvalidZoneinfoDirectory and TZInfo::ZoneinfoDirectoryNotFound \ 
exception classes raised by TZInfo::DataSources::ZoneinfoDataSource have been \ 
moved into the TZInfo::DataSources module.
* Setting the data source to :ruby or instantiating \ 
TZInfo::DataSources::RubyDataSource will now immediately raise a \ 
TZInfo::DataSources::TZInfoDataNotFound exception if require 'tzinfo/data' \ 
fails. Previously, a failure would only occur later when accessing an index or \ 
loading a timezone or country.
constants of TZInfo::DataSources::ZoneinfoDataSource have been made private.
* The TZInfo::Country.data_source, \ 
TZInfo::DataSource.create_default_data_source, \ 
TZInfo::DataSources::ZoneinfoDataSource.process_search_path, \ 
TZInfo::Timezone.get_proxies and TZInfo::Timezone.data_source methods have been \ 
made private.
* The performance of loading zoneinfo files and the associated indexes has been \ 
* Memory use has been decreased by deduplicating String instances when loading \ 
country and time zone data.
* The dependency on the deprecated thread_safe gem as been removed and replaced \ 
by concurrent-ruby.
* The Info classes used to return time zone and country information from \ 
TZInfo::DataSource implementations have been moved into the TZInfo::DataSources \ 
* The TZInfo::TransitionDataTimezoneInfo class has been removed and replaced \ 
with TZInfo::DataSources::TransitionsDataTimezoneInfo and \ 
TZInfo::DataSources::ConstantOffsetDataTimezoneInfo. \ 
TZInfo::DataSources::TransitionsDataTimezoneInfo is constructed with an Array of \ 
TZInfo::TimezoneTransition instances representing times when the offset changes. \ 
TZInfo::DataSources::ConstantOffsetDataTimezoneInfo is constructed with a \ 
TZInfo::TimezoneOffset instance representing the offset constantly observed in a \ 
time zone.
* The TZInfo::DataSource#timezone_identifiers method should no longer be \ 
overridden in custom data source implementations. The implementation in the base \ 
class now calculates a result from TZInfo::DataSource#data_timezone_identifiers \ 
and TZInfo::DataSource#linked_timezone_identifiers.
* The results of the TZInfo::DataSources::RubyDataSource to_s and inspect \ 
methods now include the time zone database and tzinfo-data versions.


* Methods of TZInfo::Timezone that accept time arguments no longer allow Integer \ 
timestamp values. Time, DateTime or TZInfo::Timestamp values or objects that \ 
respond to to_i, subsec and optionally utc_offset must be used instead.
* The %:::z format directive can now only be used with TZInfo::Timezone#strftime \ 
if it is supported by Time#strftime on the runtime platform.
* Using and to obtain \ 
a specific TZInfo::Timezone or TZInfo::Country will no longer work. \ 
TZInfo::Timezone.get(identifier) and TZInfo::Country.get(code) should be used \ 
* The TZInfo::TimeOrDateTime class has been removed.
* The valid_for_utc?, utc_after_start?, utc_before_end?, valid_for_local?, \ 
local_after_start? and local_before_end? instance methods of \ 
TZInfo::TimezonePeriod have been removed. Comparisons can be performed with the \ 
results of the starts_at, ends_at, local_starts_at and local_ends_at methods \ 
* The to_local and to_utc instance methods of TZInfo::TimezonePeriod and \ 
TZInfo::TimezoneOffset have been removed. Conversions should be performed using \ 
the TZInfo::Timezone class instead.
* The TZInfo::TimezonePeriod#utc_total_offset_rational method has been removed. \ 
Equivalent information can be obtained using the \ 
TZInfo::TimezonePeriod#observed_utc_offset method.
* The datetime, time, local_end, local_end_time, local_start and \ 
local_start_time instance methods of TZInfo::TimezoneTransition have been \ 
removed. The at, local_end_at and local_start_at methods should be used instead \ 
and the result (a TZInfo::TimestampWithOffset) converted to either a DateTime or \ 
Time by calling to_datetime or to_time on the result.
* The us_zones and us_zone_identifiers class methods of TZInfo::Timezone have \ 
been removed. TZInfo::Country.get('US').zones and \ 
TZInfo::Country.get('US').zone_identifiers should be used instead.