tzinfo 1.2.5 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.yardopts +3 -0
  5. data/CHANGES.md +490 -377
  6. data/LICENSE +13 -13
  7. data/README.md +368 -113
  8. data/lib/tzinfo.rb +64 -29
  9. data/lib/tzinfo/country.rb +141 -129
  10. data/lib/tzinfo/country_timezone.rb +70 -112
  11. data/lib/tzinfo/data_source.rb +389 -144
  12. data/lib/tzinfo/data_sources.rb +8 -0
  13. data/lib/tzinfo/data_sources/constant_offset_data_timezone_info.rb +56 -0
  14. data/lib/tzinfo/data_sources/country_info.rb +42 -0
  15. data/lib/tzinfo/data_sources/data_timezone_info.rb +91 -0
  16. data/lib/tzinfo/data_sources/linked_timezone_info.rb +33 -0
  17. data/lib/tzinfo/data_sources/ruby_data_source.rb +143 -0
  18. data/lib/tzinfo/data_sources/timezone_info.rb +47 -0
  19. data/lib/tzinfo/data_sources/transitions_data_timezone_info.rb +214 -0
  20. data/lib/tzinfo/data_sources/zoneinfo_data_source.rb +575 -0
  21. data/lib/tzinfo/data_sources/zoneinfo_reader.rb +286 -0
  22. data/lib/tzinfo/data_timezone.rb +33 -47
  23. data/lib/tzinfo/datetime_with_offset.rb +153 -0
  24. data/lib/tzinfo/format1.rb +10 -0
  25. data/lib/tzinfo/format1/country_definer.rb +17 -0
  26. data/lib/tzinfo/format1/country_index_definition.rb +64 -0
  27. data/lib/tzinfo/format1/timezone_definer.rb +64 -0
  28. data/lib/tzinfo/format1/timezone_definition.rb +39 -0
  29. data/lib/tzinfo/format1/timezone_index_definition.rb +77 -0
  30. data/lib/tzinfo/format2.rb +10 -0
  31. data/lib/tzinfo/format2/country_definer.rb +68 -0
  32. data/lib/tzinfo/format2/country_index_definer.rb +68 -0
  33. data/lib/tzinfo/format2/country_index_definition.rb +46 -0
  34. data/lib/tzinfo/format2/timezone_definer.rb +94 -0
  35. data/lib/tzinfo/format2/timezone_definition.rb +73 -0
  36. data/lib/tzinfo/format2/timezone_index_definer.rb +45 -0
  37. data/lib/tzinfo/format2/timezone_index_definition.rb +55 -0
  38. data/lib/tzinfo/info_timezone.rb +26 -21
  39. data/lib/tzinfo/linked_timezone.rb +33 -52
  40. data/lib/tzinfo/offset_timezone_period.rb +42 -0
  41. data/lib/tzinfo/string_deduper.rb +118 -0
  42. data/lib/tzinfo/time_with_offset.rb +128 -0
  43. data/lib/tzinfo/timestamp.rb +548 -0
  44. data/lib/tzinfo/timestamp_with_offset.rb +85 -0
  45. data/lib/tzinfo/timezone.rb +989 -498
  46. data/lib/tzinfo/timezone_offset.rb +84 -74
  47. data/lib/tzinfo/timezone_period.rb +151 -217
  48. data/lib/tzinfo/timezone_proxy.rb +70 -79
  49. data/lib/tzinfo/timezone_transition.rb +77 -109
  50. data/lib/tzinfo/transitions_timezone_period.rb +63 -0
  51. data/lib/tzinfo/untaint_ext.rb +18 -0
  52. data/lib/tzinfo/version.rb +7 -0
  53. data/lib/tzinfo/with_offset.rb +61 -0
  54. metadata +63 -121
  55. metadata.gz.sig +0 -0
  56. data/Rakefile +0 -107
  57. data/lib/tzinfo/country_index_definition.rb +0 -31
  58. data/lib/tzinfo/country_info.rb +0 -42
  59. data/lib/tzinfo/data_timezone_info.rb +0 -55
  60. data/lib/tzinfo/linked_timezone_info.rb +0 -26
  61. data/lib/tzinfo/offset_rationals.rb +0 -77
  62. data/lib/tzinfo/ruby_core_support.rb +0 -146
  63. data/lib/tzinfo/ruby_country_info.rb +0 -74
  64. data/lib/tzinfo/ruby_data_source.rb +0 -136
  65. data/lib/tzinfo/time_or_datetime.rb +0 -340
  66. data/lib/tzinfo/timezone_definition.rb +0 -36
  67. data/lib/tzinfo/timezone_index_definition.rb +0 -54
  68. data/lib/tzinfo/timezone_info.rb +0 -30
  69. data/lib/tzinfo/timezone_transition_definition.rb +0 -104
  70. data/lib/tzinfo/transition_data_timezone_info.rb +0 -274
  71. data/lib/tzinfo/zoneinfo_country_info.rb +0 -37
  72. data/lib/tzinfo/zoneinfo_data_source.rb +0 -488
  73. data/lib/tzinfo/zoneinfo_timezone_info.rb +0 -296
  74. data/test/tc_country.rb +0 -234
  75. data/test/tc_country_index_definition.rb +0 -69
  76. data/test/tc_country_info.rb +0 -16
  77. data/test/tc_country_timezone.rb +0 -173
  78. data/test/tc_data_source.rb +0 -218
  79. data/test/tc_data_timezone.rb +0 -99
  80. data/test/tc_data_timezone_info.rb +0 -18
  81. data/test/tc_info_timezone.rb +0 -34
  82. data/test/tc_linked_timezone.rb +0 -155
  83. data/test/tc_linked_timezone_info.rb +0 -23
  84. data/test/tc_offset_rationals.rb +0 -23
  85. data/test/tc_ruby_core_support.rb +0 -168
  86. data/test/tc_ruby_country_info.rb +0 -110
  87. data/test/tc_ruby_data_source.rb +0 -143
  88. data/test/tc_time_or_datetime.rb +0 -654
  89. data/test/tc_timezone.rb +0 -1350
  90. data/test/tc_timezone_definition.rb +0 -113
  91. data/test/tc_timezone_index_definition.rb +0 -73
  92. data/test/tc_timezone_info.rb +0 -11
  93. data/test/tc_timezone_london.rb +0 -143
  94. data/test/tc_timezone_melbourne.rb +0 -142
  95. data/test/tc_timezone_new_york.rb +0 -142
  96. data/test/tc_timezone_offset.rb +0 -126
  97. data/test/tc_timezone_period.rb +0 -555
  98. data/test/tc_timezone_proxy.rb +0 -136
  99. data/test/tc_timezone_transition.rb +0 -366
  100. data/test/tc_timezone_transition_definition.rb +0 -295
  101. data/test/tc_timezone_utc.rb +0 -27
  102. data/test/tc_transition_data_timezone_info.rb +0 -423
  103. data/test/tc_zoneinfo_country_info.rb +0 -78
  104. data/test/tc_zoneinfo_data_source.rb +0 -1195
  105. data/test/tc_zoneinfo_timezone_info.rb +0 -1232
  106. data/test/test_utils.rb +0 -163
  107. data/test/ts_all.rb +0 -7
  108. data/test/ts_all_ruby.rb +0 -5
  109. data/test/ts_all_zoneinfo.rb +0 -7
  110. data/test/tzinfo-data/tzinfo/data.rb +0 -8
  111. data/test/tzinfo-data/tzinfo/data/definitions/America/Argentina/Buenos_Aires.rb +0 -89
  112. data/test/tzinfo-data/tzinfo/data/definitions/America/New_York.rb +0 -315
  113. data/test/tzinfo-data/tzinfo/data/definitions/Australia/Melbourne.rb +0 -218
  114. data/test/tzinfo-data/tzinfo/data/definitions/EST.rb +0 -19
  115. data/test/tzinfo-data/tzinfo/data/definitions/Etc/GMT__m__1.rb +0 -21
  116. data/test/tzinfo-data/tzinfo/data/definitions/Etc/GMT__p__1.rb +0 -21
  117. data/test/tzinfo-data/tzinfo/data/definitions/Etc/UTC.rb +0 -21
  118. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Amsterdam.rb +0 -261
  119. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Andorra.rb +0 -186
  120. data/test/tzinfo-data/tzinfo/data/definitions/Europe/London.rb +0 -321
  121. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Paris.rb +0 -265
  122. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Prague.rb +0 -220
  123. data/test/tzinfo-data/tzinfo/data/definitions/UTC.rb +0 -16
  124. data/test/tzinfo-data/tzinfo/data/indexes/countries.rb +0 -927
  125. data/test/tzinfo-data/tzinfo/data/indexes/timezones.rb +0 -596
  126. data/test/tzinfo-data/tzinfo/data/version.rb +0 -14
  127. data/test/zoneinfo/America/Argentina/Buenos_Aires +0 -0
  128. data/test/zoneinfo/America/New_York +0 -0
  129. data/test/zoneinfo/Australia/Melbourne +0 -0
  130. data/test/zoneinfo/EST +0 -0
  131. data/test/zoneinfo/Etc/UTC +0 -0
  132. data/test/zoneinfo/Europe/Amsterdam +0 -0
  133. data/test/zoneinfo/Europe/Andorra +0 -0
  134. data/test/zoneinfo/Europe/London +0 -0
  135. data/test/zoneinfo/Europe/Paris +0 -0
  136. data/test/zoneinfo/Europe/Prague +0 -0
  137. data/test/zoneinfo/Factory +0 -0
  138. data/test/zoneinfo/iso3166.tab +0 -275
  139. data/test/zoneinfo/leapseconds +0 -61
  140. data/test/zoneinfo/posix/Europe/London +0 -0
  141. data/test/zoneinfo/posixrules +0 -0
  142. data/test/zoneinfo/right/Europe/London +0 -0
  143. data/test/zoneinfo/zone.tab +0 -439
  144. data/test/zoneinfo/zone1970.tab +0 -369
  145. data/tzinfo.gemspec +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ff316f9ef3e063d02096d2d1841b832491e315d78610d8751b09115632794e9f
4
- data.tar.gz: b695fca6cdc7af5cd356dbb592aacc81c861d64e05375a5c6238c9ae924fe8be
3
+ metadata.gz: ec86298303c2574741a727440578c6e0b7f89be23f2c6d6e3ee01fccfeb1206e
4
+ data.tar.gz: c0fddb69282a1d64a69c5c73419ec5971a0baf7cc0d6af904879e39393953aa0
5
5
  SHA512:
6
- metadata.gz: 6ab8e7340dd1eafa73c385e388d49c2bf07203e855b3410c6302abc9b5e5b9992f1cfdb9aa5dc5dc59664f713618e25eac7489b7be5209a5987162e90cfe48d9
7
- data.tar.gz: 5db4b130ed3db4b07d350b6acb020781d6538c9f9295d478b297fe994c2ac4220dbd76097ed2c5a26219cdf6ec10bb18df6816f904cdd0c5ac1193782730785c
6
+ metadata.gz: 24abd1a7d10d00dacf003d6d80211fa2f6bd46f90bf1068ed473d74a4cab3f2a44a46c3224a942f41850cbdaf303bbf59e02dba37b5bf0af600d60435f5d5242
7
+ data.tar.gz: a4665320a7cf87ac113e50e6af2f93f5d4df9c6f40af1b3d35bbf8a2ee88aeb95fb98d7e04b6cb3c2fedc1e0bb94c13d185fd712cd2105ae527129ae2abbecac
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.yardopts CHANGED
@@ -1,4 +1,7 @@
1
+ --markup markdown
1
2
  --no-private
3
+ --protected
4
+ --readme README.md
2
5
  lib/**/*.rb
3
6
  -
4
7
  CHANGES.md
data/CHANGES.md CHANGED
@@ -1,53 +1,217 @@
1
- Version 1.2.5 - 4-Feb-2018
2
- --------------------------
3
-
4
- * Support recursively (deep) freezing Country and Timezone instances. #80.
1
+ # Changes
2
+
3
+ ## Version 2.0.1 - 24-Dec-2019
4
+
5
+ * Fixed "SecurityError: Insecure operation - require" exceptions when loading
6
+ data with recent Ruby releases in safe mode. #100.
7
+ * Fixed warnings when running on Ruby 2.7. #109.
8
+ * Add a `TZInfo::Timezone#=~` method that performs a regex match on the time
9
+ zone identifier. #99.
10
+ * Add a `TZInfo::Country#=~` method that performs a regex match on the country
11
+ code.
12
+
13
+
14
+ ## Version 2.0.0 - 26-Dec-2018
15
+
16
+ ### Added
17
+
18
+ * `to_local` and `period_for` instance methods have been added to
19
+ `TZInfo::Timezone`. These are similar to `utc_to_local` and `period_for_utc`,
20
+ but take the UTC offset of the given time into account.
21
+ * `abbreviation`, `dst?`, `base_utc_offset` and `observed_utc_offset` instance
22
+ methods have been added to `TZInfo::Timezone`, returning the abbreviation,
23
+ whether daylight savings time is in effect and the UTC offset of the time zone
24
+ at a specified time.
25
+ * A `TZInfo::Timestamp` class has been added. It can be used with
26
+ `TZInfo::Timezone` in place of a `Time` or `DateTime`.
27
+ * `local_time`, `local_datetime` and `local_timestamp` instance methods have
28
+ been added to `TZInfo::Timezone`. These methods construct local `Time`,
29
+ `DateTime` and `TZInfo::Timestamp` instances with the correct UTC offset and
30
+ abbreviation for the time zone.
31
+ * Support for a (yet to be released) version 2 of tzinfo-data has been added, in
32
+ addition to support for version 1. The new version will remove the (no longer
33
+ needed) `DateTime` parameters from transition times, reduce memory consumption
34
+ and improve the efficiency of loading timezone and country indexes.
35
+ * A `TZInfo::VERSION` constant has been added, indicating the TZInfo version
36
+ number.
37
+
38
+ ### Changed
39
+
40
+ * The minimum supported Ruby versions are now Ruby MRI 1.9.3, JRuby 1.7 (in 1.9
41
+ or later mode) and Rubinius 3.
42
+ * Local times are now returned using the correct UTC offset (instead of using
43
+ UTC). #49 and #52.
44
+ * Local times are returned as instances of `TimeWithOffset`,
45
+ `DateTimeWithOffset` or `TZInfo::TimestampWithOffset`. These classes subclass
46
+ `Time`, `DateTime` and `TZInfo::Timestamp` respectively. They override the
47
+ default behaviour of the base classes to return information about the observed
48
+ offset at the indicated time. For example, the zone abbreviation is returned
49
+ when using the `%Z` directive with `strftime`.
50
+ * The `transitions_up_to`, `offsets_up_to` and `strftime` instance methods of
51
+ `TZInfo::Timezone` now take the UTC offsets of given times into account
52
+ (instead of ignoring them as was previously the case).
53
+ * The `TZInfo::TimezonePeriod` class has been split into two subclasses:
54
+ `TZInfo::OffsetTimezonePeriod` and `TZInfo::TransitionsTimezonePeriod`.
55
+ `TZInfo::OffsetTimezonePeriod` is returned for time zones that only have a
56
+ single offset. `TZInfo::TransitionsTimezonePeriod` is returned for periods
57
+ that start or end with a transition.
58
+ * `TZInfo::TimezoneOffset#abbreviation`, `TZInfo::TimezonePeriod#abbreviation`
59
+ and `TZInfo::TimezonePeriod#zone_identifier` now return frozen `String`
60
+ instances instead of instances of `Symbol`.
61
+ * The `utc_offset` and `utc_total_offset` attributes of `TZInfo::TimezonePeriod`
62
+ and `TZInfo::TimezoneOffset` have been renamed `base_utc_offset` and
63
+ `observed_utc_offset` respectively. The former names have been retained as
64
+ aliases.
65
+ * `TZInfo::Timezone.get`, `TZInfo::Timezone.get_proxy` and `TZInfo::Country.get`
66
+ can now be used with strings having any encoding. Previously, only encodings
67
+ that are directly comparable with UTF-8 were supported.
68
+ * The requested identifier is included in `TZInfo::InvalidTimezoneIdentifier`
69
+ exception messages.
70
+ * The requested country code is included in `TZInfo::InvalidCountryCode`
71
+ exception messages.
72
+ * The full range of transitions is now loaded from zoneinfo files. Zoneinfo
73
+ files produced with version 2014c of the `zic` tool contain an initial
74
+ transition `2**63` seconds before the epoch. Zoneinfo files produced with
75
+ version 2014d or later of `zic` contain an initial transition `2**59` seconds
76
+ before the epoch. These transitions would previously have been ignored, but
77
+ are now returned in methods such as `TZInfo::Timezone#transitions_up_to`.
78
+ * The `TZInfo::RubyDataSource` and `TZInfo::ZoneinfoDataSource` classes have
79
+ been moved into a new `TZInfo::DataSources` module. Code that is setting
80
+ `TZInfo::ZoneinfoDataSource.search_path` or
81
+ `TZInfo::ZoneinfoDataSource.alternate_iso3166_tab_search_path` will need to be
82
+ updated accordingly.
83
+ * The `TZInfo::InvalidZoneinfoDirectory` and `TZInfo::ZoneinfoDirectoryNotFound`
84
+ exception classes raised by `TZInfo::DataSources::ZoneinfoDataSource` have
85
+ been moved into the `TZInfo::DataSources` module.
86
+ * Setting the data source to `:ruby` or instantiating
87
+ `TZInfo::DataSources::RubyDataSource` will now immediately raise a
88
+ `TZInfo::DataSources::TZInfoDataNotFound` exception if `require 'tzinfo/data'`
89
+ fails. Previously, a failure would only occur later when accessing an index or
90
+ loading a timezone or country.
91
+ * The `DEFAULT_SEARCH_PATH` and `DEFAULT_ALTERNATE_ISO3166_TAB_SEARCH_PATH`
92
+ constants of `TZInfo::DataSources::ZoneinfoDataSource` have been made private.
93
+ * The `TZInfo::Country.data_source`,
94
+ `TZInfo::DataSource.create_default_data_source`,
95
+ `TZInfo::DataSources::ZoneinfoDataSource.process_search_path`,
96
+ `TZInfo::Timezone.get_proxies` and `TZInfo::Timezone.data_source` methods have
97
+ been made private.
98
+ * The performance of loading zoneinfo files and the associated indexes has been
99
+ improved.
100
+ * Memory use has been decreased by deduplicating `String` instances when loading
101
+ country and time zone data.
102
+ * The dependency on the deprecated thread_safe gem as been removed and replaced
103
+ by concurrent-ruby.
104
+ * The Info classes used to return time zone and country information from
105
+ `TZInfo::DataSource` implementations have been moved into the
106
+ `TZInfo::DataSources` module.
107
+ * The `TZInfo::TransitionDataTimezoneInfo` class has been removed and replaced
108
+ with `TZInfo::DataSources::TransitionsDataTimezoneInfo` and
109
+ `TZInfo::DataSources::ConstantOffsetDataTimezoneInfo`.
110
+ `TZInfo::DataSources::TransitionsDataTimezoneInfo` is constructed with an
111
+ `Array` of `TZInfo::TimezoneTransition` instances representing times when the
112
+ offset changes. `TZInfo::DataSources::ConstantOffsetDataTimezoneInfo` is
113
+ constructed with a `TZInfo::TimezoneOffset` instance representing the offset
114
+ constantly observed in a time zone.
115
+ * The `TZInfo::DataSource#timezone_identifiers` method should no longer be
116
+ overridden in custom data source implementations. The implementation in the
117
+ base class now calculates a result from
118
+ `TZInfo::DataSource#data_timezone_identifiers` and
119
+ `TZInfo::DataSource#linked_timezone_identifiers`.
120
+ * The results of the `TZInfo::DataSources::RubyDataSource` `to_s` and `inspect`
121
+ methods now include the time zone database and tzinfo-data versions.
122
+
123
+
124
+ ### Removed
125
+
126
+ * Methods of `TZInfo::Timezone` that accept time arguments no longer allow
127
+ `Integer` timestamp values. `Time`, `DateTime` or `TZInfo::Timestamp` values
128
+ or objects that respond to `to_i`, `subsec` and optionally `utc_offset` must
129
+ be used instead.
130
+ * The `%:::z` format directive can now only be used with
131
+ `TZInfo::Timezone#strftime` if it is supported by `Time#strftime` on the
132
+ runtime platform.
133
+ * Using `TZInfo::Timezone.new(identifier)` and `TZInfo::Country.new(code)` to
134
+ obtain a specific `TZInfo::Timezone` or `TZInfo::Country` will no longer work.
135
+ `TZInfo::Timezone.get(identifier)` and `TZInfo::Country.get(code)` should be
136
+ used instead.
137
+ * The `TZInfo::TimeOrDateTime` class has been removed.
138
+ * The `valid_for_utc?`, `utc_after_start?`, `utc_before_end?`,
139
+ `valid_for_local?`, `local_after_start?` and `local_before_end?` instance
140
+ methods of `TZInfo::TimezonePeriod` have been removed. Comparisons can be
141
+ performed with the results of the `starts_at`, `ends_at`, `local_starts_at`
142
+ and `local_ends_at` methods instead.
143
+ * The `to_local` and `to_utc` instance methods of `TZInfo::TimezonePeriod` and
144
+ `TZInfo::TimezoneOffset` have been removed. Conversions should be performed
145
+ using the `TZInfo::Timezone` class instead.
146
+ * The `TZInfo::TimezonePeriod#utc_total_offset_rational` method has been
147
+ removed. Equivalent information can be obtained using the
148
+ `TZInfo::TimezonePeriod#observed_utc_offset` method.
149
+ * The `datetime`, `time`, `local_end`, `local_end_time`, `local_start` and
150
+ `local_start_time` instance methods of `TZInfo::TimezoneTransition` have been
151
+ removed. The `at`, `local_end_at` and `local_start_at` methods should be used
152
+ instead and the result (a `TZInfo::TimestampWithOffset`) converted to either a
153
+ `DateTime` or `Time` by calling `to_datetime` or `to_time` on the result.
154
+ * The `us_zones` and `us_zone_identifiers` class methods of `TZInfo::Timezone`
155
+ have been removed. `TZInfo::Country.get('US').zones` and
156
+ `TZInfo::Country.get('US').zone_identifiers` should be used instead.
157
+
158
+
159
+ ## Version 1.2.6 - 24-Dec-2019
160
+
161
+ * `Timezone#strftime('%s', time)` will now return the correct number of seconds
162
+ since the epoch. #91.
163
+ * Removed the unused `TZInfo::RubyDataSource::REQUIRE_PATH` constant.
164
+ * Fixed "SecurityError: Insecure operation - require" exceptions when loading
165
+ data with recent Ruby releases in safe mode.
166
+ * Fixed warnings when running on Ruby 2.7. #106 and #111.
167
+
168
+
169
+ ## Version 1.2.5 - 4-Feb-2018
170
+
171
+ * Support recursively (deep) freezing `Country` and `Timezone` instances. #80.
5
172
  * Allow negative daylight savings time offsets to be derived when reading from
6
173
  zoneinfo files. The utc_offset and std_offset are now derived correctly for
7
174
  Europe/Dublin in the 2018a and 2018b releases of the Time Zone Database.
8
175
 
9
176
 
10
- Version 1.2.4 - 26-Oct-2017
11
- ---------------------------
177
+ ## Version 1.2.4 - 26-Oct-2017
12
178
 
13
179
  * Ignore the leapseconds file that is included in zoneinfo directories installed
14
180
  with version 2017c and later of the Time Zone Database.
15
181
 
16
182
 
17
- Version 1.2.3 - 25-Mar-2017
18
- ---------------------------
183
+ ## Version 1.2.3 - 25-Mar-2017
19
184
 
20
- * Reduce the number of String objects allocated when loading zoneinfo files.
185
+ * Reduce the number of `String` objects allocated when loading zoneinfo files.
21
186
  #54.
22
- * Make Timezone#friendly_identifier compatible with frozen string literals.
23
- * Improve the algorithm for deriving the utc_offset from zoneinfo files. This
187
+ * Make `Timezone#friendly_identifier` compatible with frozen string literals.
188
+ * Improve the algorithm for deriving the `utc_offset` from zoneinfo files. This
24
189
  now correctly handles Pacific/Apia switching from one side of the
25
190
  International Date Line to the other whilst observing daylight savings time.
26
191
  #66.
27
- * Fix an UnknownTimezone exception when calling transitions_up_to or
28
- offsets_up_to on a TimezoneProxy instance obtained from Timezone.get_proxy.
192
+ * Fix an `UnknownTimezone` exception when calling transitions_up_to or
193
+ offsets_up_to on a `TimezoneProxy` instance obtained from
194
+ `Timezone.get_proxy`.
29
195
  * Allow the Factory zone to be obtained from the Zoneinfo data source.
30
196
  * Ignore the /usr/share/zoneinfo/timeconfig symlink included in Slackware
31
197
  distributions. #64.
32
- * Fix Timezone#strftime handling of %Z expansion when %Z is prefixed with more
33
- than one percent. #31.
34
- * Support expansion of %z, %:z, %::z and %:::z to the UTC offset of the time
35
- zone in Timezone#strftime. #31 and #67.
198
+ * Fix `Timezone#strftime` handling of `%Z` expansion when `%Z` is prefixed with
199
+ more than one percent. #31.
200
+ * Support expansion of `%z`, `%:z`, `%::z` and `%:::z` to the UTC offset of the
201
+ time zone in `Timezone#strftime`. #31 and #67.
36
202
 
37
203
 
38
- Version 1.2.2 - 8-Aug-2014
39
- --------------------------
204
+ ## Version 1.2.2 - 8-Aug-2014
40
205
 
41
- * Fix an error with duplicates being returned by Timezone#all_country_zones
42
- and Timezone#all_country_zone_identifiers when used with tzinfo-data
206
+ * Fix an error with duplicates being returned by `Timezone#all_country_zones`
207
+ and `Timezone#all_country_zone_identifiers` when used with tzinfo-data
43
208
  v1.2014.6 or later.
44
209
  * Use the zone1970.tab file for country timezone data if it is found in the
45
210
  zoneinfo directory (and fallback to zone.tab if not). zone1970.tab was added
46
211
  in tzdata 2014f. zone.tab is now deprecated.
47
212
 
48
213
 
49
- Version 1.2.1 - 1-Jun-2014
50
- --------------------------
214
+ ## Version 1.2.1 - 1-Jun-2014
51
215
 
52
216
  * Support zoneinfo files generated with zic version 2014c and later.
53
217
  * On platforms that only support positive 32-bit timestamps, ensure that
@@ -56,55 +220,52 @@ Version 1.2.1 - 1-Jun-2014
56
220
  * Minor documentation improvements.
57
221
 
58
222
 
59
- Version 1.2.0 - 26-May-2014
60
- ---------------------------
223
+ ## Version 1.2.0 - 26-May-2014
61
224
 
62
225
  * Raise the minimum supported Ruby version to 1.8.7.
63
226
  * Support loading system zoneinfo data on FreeBSD, OpenBSD and Solaris.
64
227
  Resolves #15.
65
- * Add canonical_identifier and canonical_zone methods to Timezone. Resolves #16.
66
- * Add a link to a DataSourceNotFound help page in the TZInfo::DataSourceNotFound
67
- exception message.
228
+ * Add `canonical_identifier` and `canonical_zone` methods to `Timezone`.
229
+ Resolves #16.
230
+ * Add a link to a `DataSourceNotFound` help page in the
231
+ `TZInfo::DataSourceNotFound` exception message.
68
232
  * Load iso3166.tab and zone.tab files as UTF-8.
69
- * Fix Timezone#local_to_utc returning local Time instances on systems using UTC
70
- as the local time zone. Resolves #13.
71
- * Fix == methods raising an exception when passed an instance of a different
72
- class by making <=> return nil if passed a non-comparable argument.
73
- * Eliminate "require 'rational'" warnings. Resolves #10.
233
+ * Fix `Timezone#local_to_utc` returning local `Time` instances on systems using
234
+ UTC as the local time zone. Resolves #13.
235
+ * Fix `==` methods raising an exception when passed an instance of a different
236
+ class by making `<=>` return `nil` if passed a non-comparable argument.
237
+ * Eliminate `require 'rational'` warnings. Resolves #10.
74
238
  * Eliminate "assigned but unused variable - info" warnings. Resolves #11.
75
239
  * Switch to minitest v5 for unit tests. Resolves #18.
76
240
 
77
241
 
78
- Version 1.1.0 - 25-Sep-2013
79
- ---------------------------
242
+ ## Version 1.1.0 - 25-Sep-2013
80
243
 
81
- * TZInfo is now thread safe. ThreadSafe::Cache is now used instead of Hash
82
- to cache Timezone and Country instances returned by Timezone.get and
83
- Country.get. The tzinfo gem now depends on thread_safe ~> 0.1.
84
- * Added a transitions_up_to method to Timezone that returns a list of the times
85
- where the UTC offset of the timezone changes.
86
- * Added an offsets_up_to method to Timezone that returns the set of offsets
244
+ * TZInfo is now thread safe. `ThreadSafe::Cache` is now used instead of `Hash`
245
+ to cache `Timezone` and `Country` instances returned by `Timezone.get` and
246
+ `Country.get`. The tzinfo gem now depends on thread_safe ~> 0.1.
247
+ * Added a `transitions_up_to` method to `Timezone` that returns a list of the
248
+ times where the UTC offset of the timezone changes.
249
+ * Added an `offsets_up_to` method to `Timezone` that returns the set of offsets
87
250
  that have been observed in a defined timezone.
88
- * Fixed a "can't modify frozen String" error when loading a Timezone from a
89
- zoneinfo file using an identifier String that is both tainted and frozen.
251
+ * Fixed a "can't modify frozen String" error when loading a `Timezone` from a
252
+ zoneinfo file using an identifier `String` that is both tainted and frozen.
90
253
  Resolves #3.
91
254
  * Support TZif3 format zoneinfo files (now produced by zic from tzcode version
92
255
  2013e onwards).
93
256
  * Support using YARD to generate documentation (added a .yardopts file).
94
257
  * Ignore the +VERSION file included in the zoneinfo directory on Mac OS X.
95
- * Added a note to the documentation concerning 32-bit zoneinfo files (as
258
+ * Added a note to the documentation concerning 32-bit zoneinfo files (as
96
259
  included with Mac OS X).
97
260
 
98
261
 
99
- Version 1.0.1 - 22-Jun-2013
100
- ---------------------------
262
+ ## Version 1.0.1 - 22-Jun-2013
101
263
 
102
264
  * Fix a test case failure when tests are run from a directory that contains a
103
265
  dot in the path (issue #29751).
104
266
 
105
267
 
106
- Version 1.0.0 - 2-Jun-2013
107
- --------------------------
268
+ ## Version 1.0.0 - 2-Jun-2013
108
269
 
109
270
  * Allow TZInfo to be used with different data sources instead of just the
110
271
  built-in Ruby module data files.
@@ -113,73 +274,71 @@ Version 1.0.0 - 2-Jun-2013
113
274
  distributions.
114
275
  * Remove the definition and index Ruby modules from TZInfo and move them into
115
276
  a separate TZInfo::Data library (available as the tzinfo-data gem).
116
- * Default to using the TZInfo::Data library as the data source if it is
277
+ * Default to using the TZInfo::Data library as the data source if it is
117
278
  installed, otherwise use zoneinfo files instead.
118
- * Preserve the nanoseconds of local timezone Time objects when performing
279
+ * Preserve the nanoseconds of local timezone Time objects when performing
119
280
  conversions (issue #29705).
120
281
  * Don't add the tzinfo lib directory to the search path when requiring 'tzinfo'.
121
282
  The tzinfo lib directory must now be in the search path before 'tzinfo' is
122
283
  required.
123
- * Add utc_start_time, utc_end_time, local_start_time and local_end_time instance
124
- methods to TimezonePeriod. These return an identical value as the existing
125
- utc_start, utc_end, local_start and local_end methods, but return Time
126
- instances instead of DateTime.
127
- * Make the start_transition, end_transition and offset properties of
128
- TimezonePeriod protected. To access properties of the period, callers should
129
- use other TimezonePeriod instance methods instead (issue #7655).
284
+ * Add `utc_start_time`, `utc_end_time`, `local_start_time` and `local_end_time`
285
+ instance methods to `TimezonePeriod`. These return an identical value as the
286
+ existing `utc_start`, `utc_end`, `local_start` and `local_end` methods, but
287
+ return `Time` instances instead of `DateTime`.
288
+ * Make the `start_transition`, `end_transition` and `offset` properties of
289
+ `TimezonePeriod` protected. To access properties of the period, callers should
290
+ use other `TimezonePeriod` instance methods instead (issue #7655).
291
+
292
+
293
+ ## Version 0.3.54 (tzdata v2018d) - 25-Mar-2018
294
+
295
+ * Updated to tzdata version 2018d
296
+ (<https://mm.icann.org/pipermail/tz-announce/2018-March/000049.html>).
130
297
 
131
298
 
132
- Version 0.3.53 (tzdata v2017b) - 23-Mar-2017
133
- --------------------------------------------
299
+ ## Version 0.3.53 (tzdata v2017b) - 23-Mar-2017
134
300
 
135
301
  * Updated to tzdata version 2017b
136
- (https://mm.icann.org/pipermail/tz-announce/2017-March/000046.html).
302
+ (<https://mm.icann.org/pipermail/tz-announce/2017-March/000046.html>).
137
303
 
138
304
 
139
- Version 0.3.52 (tzdata v2016h) - 28-Oct-2016
140
- --------------------------------------------
305
+ ## Version 0.3.52 (tzdata v2016h) - 28-Oct-2016
141
306
 
142
307
  * Updated to tzdata version 2016h
143
- (https://mm.icann.org/pipermail/tz-announce/2016-October/000042.html).
308
+ (<https://mm.icann.org/pipermail/tz-announce/2016-October/000042.html>).
144
309
 
145
310
 
146
- Version 0.3.51 (tzdata v2016f) - 5-Jul-2016
147
- -------------------------------------------
311
+ ## Version 0.3.51 (tzdata v2016f) - 5-Jul-2016
148
312
 
149
313
  * Updated to tzdata version 2016f
150
- (https://mm.icann.org/pipermail/tz-announce/2016-July/000040.html).
314
+ (<https://mm.icann.org/pipermail/tz-announce/2016-July/000040.html>).
151
315
 
152
316
 
153
- Version 0.3.50 (tzdata v2016e) - 14-Jun-2016
154
- --------------------------------------------
317
+ ## Version 0.3.50 (tzdata v2016e) - 14-Jun-2016
155
318
 
156
319
  * Updated to tzdata version 2016e
157
- (https://mm.icann.org/pipermail/tz-announce/2016-June/000039.html).
320
+ (<https://mm.icann.org/pipermail/tz-announce/2016-June/000039.html>).
158
321
 
159
322
 
160
- Version 0.3.49 (tzdata v2016d) - 18-Apr-2016
161
- --------------------------------------------
323
+ ## Version 0.3.49 (tzdata v2016d) - 18-Apr-2016
162
324
 
163
325
  * Updated to tzdata version 2016d
164
- (https://mm.icann.org/pipermail/tz-announce/2016-April/000038.html).
326
+ (<https://mm.icann.org/pipermail/tz-announce/2016-April/000038.html>).
165
327
 
166
328
 
167
- Version 0.3.48 (tzdata v2016c) - 23-Mar-2016
168
- --------------------------------------------
329
+ ## Version 0.3.48 (tzdata v2016c) - 23-Mar-2016
169
330
 
170
331
  * Updated to tzdata version 2016c
171
- (https://mm.icann.org/pipermail/tz-announce/2016-March/000037.html).
332
+ (<https://mm.icann.org/pipermail/tz-announce/2016-March/000037.html>).
172
333
 
173
334
 
174
- Version 0.3.47 (tzdata v2016b) - 15-Mar-2016
175
- --------------------------------------------
335
+ ## Version 0.3.47 (tzdata v2016b) - 15-Mar-2016
176
336
 
177
337
  * Updated to tzdata version 2016b
178
- (https://mm.icann.org/pipermail/tz-announce/2016-March/000036.html).
338
+ (<https://mm.icann.org/pipermail/tz-announce/2016-March/000036.html>).
179
339
 
180
340
 
181
- Version 0.3.46 (tzdata v2015g) - 2-Dec-2015
182
- -------------------------------------------
341
+ ## Version 0.3.46 (tzdata v2015g) - 2-Dec-2015
183
342
 
184
343
  * From version 2015e, the IANA time zone database uses non-ASCII characters in
185
344
  country names. Backport the encoding handling from TZInfo::Data to allow
@@ -187,425 +346,382 @@ Version 0.3.46 (tzdata v2015g) - 2-Dec-2015
187
346
  byte sequence error when loading the countries index). Resolves #41.
188
347
 
189
348
 
190
- Version 0.3.45 (tzdata v2015g) - 3-Oct-2015
191
- -------------------------------------------
349
+ ## Version 0.3.45 (tzdata v2015g) - 3-Oct-2015
192
350
 
193
351
  * Updated to tzdata version 2015g
194
- (http://mm.icann.org/pipermail/tz-announce/2015-October/000034.html).
352
+ (<https://mm.icann.org/pipermail/tz-announce/2015-October/000034.html>).
195
353
 
196
354
 
197
- Version 0.3.44 (tzdata v2015d) - 24-Apr-2015
198
- --------------------------------------------
355
+ ## Version 0.3.44 (tzdata v2015d) - 24-Apr-2015
199
356
 
200
357
  * Updated to tzdata version 2015d
201
- (http://mm.icann.org/pipermail/tz-announce/2015-April/000031.html).
358
+ (<https://mm.icann.org/pipermail/tz-announce/2015-April/000031.html>).
202
359
 
203
360
 
204
- Version 0.3.43 (tzdata v2015a) - 31-Jan-2015
205
- --------------------------------------------
361
+ ## Version 0.3.43 (tzdata v2015a) - 31-Jan-2015
206
362
 
207
363
  * Updated to tzdata version 2015a
208
- (http://mm.icann.org/pipermail/tz-announce/2015-January/000028.html).
364
+ (<https://mm.icann.org/pipermail/tz-announce/2015-January/000028.html>).
209
365
 
210
366
 
211
- Version 0.3.42 (tzdata v2014i) - 23-Oct-2014
212
- --------------------------------------------
367
+ ## Version 0.3.42 (tzdata v2014i) - 23-Oct-2014
213
368
 
214
369
  * Updated to tzdata version 2014i
215
- (http://mm.icann.org/pipermail/tz-announce/2014-October/000026.html).
370
+ (<https://mm.icann.org/pipermail/tz-announce/2014-October/000026.html>).
216
371
 
217
372
 
218
- Version 0.3.41 (tzdata v2014f) - 8-Aug-2014
219
- -------------------------------------------
373
+ ## Version 0.3.41 (tzdata v2014f) - 8-Aug-2014
220
374
 
221
375
  * Updated to tzdata version 2014f
222
- (http://mm.icann.org/pipermail/tz-announce/2014-August/000023.html).
376
+ (<https://mm.icann.org/pipermail/tz-announce/2014-August/000023.html>).
223
377
 
224
378
 
225
- Version 0.3.40 (tzdata v2014e) - 10-Jul-2014
226
- --------------------------------------------
379
+ ## Version 0.3.40 (tzdata v2014e) - 10-Jul-2014
227
380
 
228
381
  * Updated to tzdata version 2014e
229
- (http://mm.icann.org/pipermail/tz-announce/2014-June/000022.html).
382
+ (<https://mm.icann.org/pipermail/tz-announce/2014-June/000022.html>).
230
383
 
231
384
 
232
- Version 0.3.39 (tzdata v2014a) - 9-Mar-2014
233
- -------------------------------------------
385
+ ## Version 0.3.39 (tzdata v2014a) - 9-Mar-2014
234
386
 
235
387
  * Updated to tzdata version 2014a
236
- (http://mm.icann.org/pipermail/tz-announce/2014-March/000018.html).
388
+ (<https://mm.icann.org/pipermail/tz-announce/2014-March/000018.html>).
237
389
 
238
390
 
239
- Version 0.3.38 (tzdata v2013g) - 8-Oct-2013
240
- -------------------------------------------
391
+ ## Version 0.3.38 (tzdata v2013g) - 8-Oct-2013
241
392
 
242
393
  * Updated to tzdata version 2013g
243
- (http://mm.icann.org/pipermail/tz-announce/2013-October/000015.html).
394
+ (<https://mm.icann.org/pipermail/tz-announce/2013-October/000015.html>).
244
395
 
245
396
 
246
- Version 0.3.37 (tzdata v2013b) - 11-Mar-2013
247
- --------------------------------------------
397
+ ## Version 0.3.37 (tzdata v2013b) - 11-Mar-2013
248
398
 
249
399
  * Updated to tzdata version 2013b
250
- (http://mm.icann.org/pipermail/tz-announce/2013-March/000010.html).
400
+ (<https://mm.icann.org/pipermail/tz-announce/2013-March/000010.html>).
251
401
 
252
402
 
253
- Version 0.3.36 (tzdata v2013a) - 3-Mar-2013
254
- -------------------------------------------
403
+ ## Version 0.3.36 (tzdata v2013a) - 3-Mar-2013
255
404
 
256
405
  * Updated to tzdata version 2013a
257
- (http://mm.icann.org/pipermail/tz-announce/2013-March/000009.html).
258
- * Fix TimezoneTransitionInfo#eql? incorrectly returning false when running on
406
+ (<https://mm.icann.org/pipermail/tz-announce/2013-March/000009.html>).
407
+ * Fix `TimezoneTransitionInfo#eql?` incorrectly returning false when running on
259
408
  Ruby 2.0.
260
- * Change eql? and == implementations to test the class of the passed in object
261
- instead of checking individual properties with 'respond_to?'.
409
+ * Change `eql?` and `==` implementations to test the class of the passed in
410
+ object instead of checking individual properties with `respond_to?`.
262
411
 
263
412
 
264
- Version 0.3.35 (tzdata v2012i) - 4-Nov-2012
265
- -------------------------------------------
413
+ ## Version 0.3.35 (tzdata v2012i) - 4-Nov-2012
266
414
 
267
415
  * Updated to tzdata version 2012i
268
- (http://mm.icann.org/pipermail/tz-announce/2012-November/000007.html).
416
+ (<https://mm.icann.org/pipermail/tz-announce/2012-November/000007.html>).
269
417
 
270
418
 
271
- Version 0.3.34 (tzdata v2012h) - 27-Oct-2012
272
- --------------------------------------------
419
+ ## Version 0.3.34 (tzdata v2012h) - 27-Oct-2012
273
420
 
274
421
  * Updated to tzdata version 2012h
275
- (http://mm.icann.org/pipermail/tz-announce/2012-October/000006.html).
422
+ (<https://mm.icann.org/pipermail/tz-announce/2012-October/000006.html>).
276
423
 
277
424
 
278
- Version 0.3.33 (tzdata v2012c) - 8-Apr-2012
279
- -------------------------------------------
425
+ ## Version 0.3.33 (tzdata v2012c) - 8-Apr-2012
280
426
 
281
427
  * Updated to tzdata version 2012c
282
- (http://article.gmane.org/gmane.comp.time.tz/4859).
428
+ (<https://mm.icann.org/pipermail/tz/2012-April/017627.html>).
283
429
 
284
430
 
285
- Version 0.3.32 (tzdata v2012b) - 4-Mar-2012
286
- -------------------------------------------
431
+ ## Version 0.3.32 (tzdata v2012b) - 4-Mar-2012
287
432
 
288
433
  * Updated to tzdata version 2012b
289
- (http://article.gmane.org/gmane.comp.time.tz/4756).
434
+ (<https://mm.icann.org/pipermail/tz/2012-March/017524.html>).
290
435
 
291
436
 
292
- Version 0.3.31 (tzdata v2011n) - 6-Nov-2011
293
- -------------------------------------------
437
+ ## Version 0.3.31 (tzdata v2011n) - 6-Nov-2011
294
438
 
295
439
  * Updated to tzdata version 2011n
296
- (http://article.gmane.org/gmane.comp.time.tz/4434).
440
+ (<https://mm.icann.org/pipermail/tz/2011-October/017201.html>).
297
441
 
298
442
 
299
- Version 0.3.30 (tzdata v2011k) - 29-Sep-2011
300
- --------------------------------------------
443
+ ## Version 0.3.30 (tzdata v2011k) - 29-Sep-2011
301
444
 
302
445
  * Updated to tzdata version 2011k
303
- (http://article.gmane.org/gmane.comp.time.tz/4084).
446
+ (<https://mm.icann.org/pipermail/tz/2011-September/008889.html>).
304
447
 
305
448
 
306
- Version 0.3.29 (tzdata v2011h) - 27-Jun-2011
307
- --------------------------------------------
449
+ ## Version 0.3.29 (tzdata v2011h) - 27-Jun-2011
308
450
 
309
451
  * Updated to tzdata version 2011h
310
- (http://article.gmane.org/gmane.comp.time.tz/3814).
311
- * Allow the default value of the local_to_utc and period_for_local dst
312
- parameter to be specified globally with a Timezone.default_dst attribute.
452
+ (<https://mm.icann.org/pipermail/tz/2011-June/008576.html>).
453
+ * Allow the default value of the `local_to_utc` and `period_for_local` `dst`
454
+ parameter to be specified globally with a `Timezone.default_dst` attribute.
313
455
  Thanks to Kurt Werle for the suggestion and patch.
314
456
 
315
457
 
316
- Version 0.3.28 (tzdata v2011g) - 13-Jun-2011
317
- ---------------------------------------------
458
+ ## Version 0.3.28 (tzdata v2011g) - 13-Jun-2011
318
459
 
319
- * Add support for Ruby 1.9.3 (trunk revision 31668 and later). Thanks to
460
+ * Add support for Ruby 1.9.3 (trunk revision 31668 and later). Thanks to
320
461
  Aaron Patterson for reporting the problems running on the new version.
321
462
  Closes #29233.
322
463
 
323
464
 
324
- Version 0.3.27 (tzdata v2011g) - 26-Apr-2011
325
- --------------------------------------------
465
+ ## Version 0.3.27 (tzdata v2011g) - 26-Apr-2011
326
466
 
327
467
  * Updated to tzdata version 2011g
328
- (http://article.gmane.org/gmane.comp.time.tz/3758).
468
+ (<https://mm.icann.org/pipermail/tz/2011-April/016875.html>).
329
469
 
330
470
 
331
- Version 0.3.26 (tzdata v2011e) - 2-Apr-2011
332
- -------------------------------------------
471
+ ## Version 0.3.26 (tzdata v2011e) - 2-Apr-2011
333
472
 
334
473
  * Updated to tzdata version 2011e
335
- (http://article.gmane.org/gmane.comp.time.tz/3707).
474
+ (<https://mm.icann.org/pipermail/tz/2011-April/016809.html>).
336
475
 
337
476
 
338
- Version 0.3.25 (tzdata v2011d) - 14-Mar-2011
339
- --------------------------------------------
477
+ ## Version 0.3.25 (tzdata v2011d) - 14-Mar-2011
340
478
 
341
479
  * Updated to tzdata version 2011d
342
- (http://article.gmane.org/gmane.comp.time.tz/3662).
480
+ (<https://mm.icann.org/pipermail/tz/2011-March/016746.html>).
343
481
 
344
482
 
345
- Version 0.3.24 (tzdata v2010o) - 15-Jan-2011
346
- --------------------------------------------
483
+ ## Version 0.3.24 (tzdata v2010o) - 15-Jan-2011
347
484
 
348
485
  * Updated to tzdata version 2010o
349
- (http://article.gmane.org/gmane.comp.time.tz/3473).
486
+ (<https://mm.icann.org/pipermail/tz/2010-November/016517.html>).
350
487
 
351
488
 
352
- Version 0.3.23 (tzdata v2010l) - 19-Aug-2010
353
- --------------------------------------------
489
+ ## Version 0.3.23 (tzdata v2010l) - 19-Aug-2010
354
490
 
355
491
  * Updated to tzdata version 2010l
356
- (http://article.gmane.org/gmane.comp.time.tz/3354).
492
+ (<https://mm.icann.org/pipermail/tz/2010-August/016360.html>).
357
493
 
358
494
 
359
- Version 0.3.22 (tzdata v2010j) - 29-May-2010
360
- --------------------------------------------
495
+ ## Version 0.3.22 (tzdata v2010j) - 29-May-2010
361
496
 
362
497
  * Corrected file permissions issue with 0.3.21 release.
363
498
 
364
499
 
365
- Version 0.3.21 (tzdata v2010j) - 28-May-2010
366
- --------------------------------------------
500
+ ## Version 0.3.21 (tzdata v2010j) - 28-May-2010
367
501
 
368
502
  * Updated to tzdata version 2010j
369
- (http://article.gmane.org/gmane.comp.time.tz/3225).
503
+ (<https://mm.icann.org/pipermail/tz/2010-May/016211.html>).
370
504
  * Change invalid timezone check to exclude characters not used in timezone
371
505
  identifiers and avoid 'character class has duplicated range' warnings with
372
506
  Ruby 1.9.2.
373
- * Ruby 1.9.2 has deprecated "require 'rational'", but older versions of
507
+ * Ruby 1.9.2 has deprecated `require 'rational'`, but older versions of
374
508
  Ruby need rational to be required. Require rational only when the Rational
375
509
  module has not already been loaded.
376
510
  * Remove circular requires (now a warning in Ruby 1.9.2). Instead of using
377
- requires in each file for dependencies, tzinfo.rb now requires all tzinfo
511
+ requires in each file for dependencies, `tzinfo.rb` now requires all tzinfo
378
512
  files. If you were previously requiring files within the tzinfo directory
379
- (e.g. require 'tzinfo/timezone'), then you will now have to
380
- require 'tzinfo' instead.
513
+ (e.g. `require 'tzinfo/timezone'`), then you will now have to
514
+ `require 'tzinfo'` instead.
381
515
 
382
516
 
383
- Version 0.3.20 (tzdata v2010i) - 19-Apr-2010
384
- --------------------------------------------
517
+ ## Version 0.3.20 (tzdata v2010i) - 19-Apr-2010
385
518
 
386
519
  * Updated to tzdata version 2010i
387
- (http://article.gmane.org/gmane.comp.time.tz/3202).
520
+ (<https://mm.icann.org/pipermail/tz/2010-April/016184.html>).
388
521
 
389
522
 
390
- Version 0.3.19 (tzdata v2010h) - 5-Apr-2010
391
- -------------------------------------------
523
+ ## Version 0.3.19 (tzdata v2010h) - 5-Apr-2010
392
524
 
393
525
  * Updated to tzdata version 2010h
394
- (http://article.gmane.org/gmane.comp.time.tz/3188).
526
+ (<https://mm.icann.org/pipermail/tz/2010-April/016161.html>).
395
527
 
396
528
 
397
- Version 0.3.18 (tzdata v2010g) - 29-Mar-2010
398
- --------------------------------------------
529
+ ## Version 0.3.18 (tzdata v2010g) - 29-Mar-2010
399
530
 
400
531
  * Updated to tzdata version 2010g
401
- (http://article.gmane.org/gmane.comp.time.tz/3172).
532
+ (<https://mm.icann.org/pipermail/tz/2010-March/016140.html>).
402
533
 
403
534
 
404
- Version 0.3.17 (tzdata v2010e) - 8-Mar-2010
405
- -------------------------------------------
535
+ ## Version 0.3.17 (tzdata v2010e) - 8-Mar-2010
406
536
 
407
537
  * Updated to tzdata version 2010e
408
- (http://article.gmane.org/gmane.comp.time.tz/3128).
538
+ (<https://mm.icann.org/pipermail/tz/2010-March/016088.html>).
409
539
 
410
540
 
411
- Version 0.3.16 (tzdata v2009u) - 5-Jan-2010
412
- -------------------------------------------
541
+ ## Version 0.3.16 (tzdata v2009u) - 5-Jan-2010
413
542
 
414
543
  * Support the use of '-' to denote '0' as an offset in the tz data files.
415
544
  Used for the first time in the SAVE field in tzdata v2009u.
416
545
  * Updated to tzdata version 2009u
417
- (http://article.gmane.org/gmane.comp.time.tz/3053).
546
+ (<https://mm.icann.org/pipermail/tz/2009-December/016001.html>).
418
547
 
419
548
 
420
- Version 0.3.15 (tzdata v2009p) - 26-Oct-2009
421
- --------------------------------------------
549
+ ## Version 0.3.15 (tzdata v2009p) - 26-Oct-2009
422
550
 
423
551
  * Updated to tzdata version 2009p
424
- (http://article.gmane.org/gmane.comp.time.tz/2953).
552
+ (<https://mm.icann.org/pipermail/tz/2009-October/015889.html>).
425
553
  * Added a description to the gem spec.
426
554
  * List test files in test_files instead of files in the gem spec.
427
555
 
428
556
 
429
- Version 0.3.14 (tzdata v2009l) - 19-Aug-2009
430
- --------------------------------------------
557
+ ## Version 0.3.14 (tzdata v2009l) - 19-Aug-2009
431
558
 
432
559
  * Updated to tzdata version 2009l
433
- (http://article.gmane.org/gmane.comp.time.tz/2818).
560
+ (<https://mm.icann.org/pipermail/tz/2009-August/015729.html>).
434
561
  * Include current directory in load path to allow running tests on
435
562
  Ruby 1.9.2, which doesn't include it by default any more.
436
563
 
437
564
 
438
- Version 0.3.13 (tzdata v2009f) - 15-Apr-2009
439
- --------------------------------------------
565
+ ## Version 0.3.13 (tzdata v2009f) - 15-Apr-2009
440
566
 
441
567
  * Updated to tzdata version 2009f
442
- (http://article.gmane.org/gmane.comp.time.tz/2668).
568
+ (<https://mm.icann.org/pipermail/tz/2009-April/015544.html>).
443
569
  * Untaint the timezone module filename after validation to allow use
444
- with $SAFE == 1 (e.g. under mod_ruby). Thanks to Dmitry Borodaenko for
570
+ with `$SAFE == 1` (e.g. under mod_ruby). Thanks to Dmitry Borodaenko for
445
571
  the suggestion. Closes #25349.
446
572
 
447
573
 
448
- Version 0.3.12 (tzdata v2008i) - 12-Nov-2008
449
- --------------------------------------------
574
+ ## Version 0.3.12 (tzdata v2008i) - 12-Nov-2008
450
575
 
451
576
  * Updated to tzdata version 2008i
452
- (http://article.gmane.org/gmane.comp.time.tz/2440).
577
+ (<https://mm.icann.org/pipermail/tz/2008-October/015260.html>).
453
578
 
454
579
 
455
- Version 0.3.11 (tzdata v2008g) - 7-Oct-2008
456
- -------------------------------------------
580
+ ## Version 0.3.11 (tzdata v2008g) - 7-Oct-2008
457
581
 
458
582
  * Updated to tzdata version 2008g
459
- (http://article.gmane.org/gmane.comp.time.tz/2335).
460
- * Support Ruby 1.9.0-5. Rational.new! has now been removed in Ruby 1.9.
461
- Only use Rational.new! if it is available (it is preferable in Ruby 1.8
583
+ (<https://mm.icann.org/pipermail/tz/2008-October/015139.html>).
584
+ * Support Ruby 1.9.0-5. `Rational.new!` has now been removed in Ruby 1.9.
585
+ Only use `Rational.new!` if it is available (it is preferable in Ruby 1.8
462
586
  for performance reasons). Thanks to Jeremy Kemper and Pratik Naik for
463
587
  reporting this. Closes #22312.
464
588
  * Apply a patch from Pratik Naik to replace assert calls that have been
465
589
  deprecated in the Ruby svn trunk. Closes #22308.
466
590
 
467
591
 
468
- Version 0.3.10 (tzdata v2008f) - 16-Sep-2008
469
- --------------------------------------------
592
+ ## Version 0.3.10 (tzdata v2008f) - 16-Sep-2008
470
593
 
471
594
  * Updated to tzdata version 2008f
472
- (http://article.gmane.org/gmane.comp.time.tz/2293).
595
+ (<https://mm.icann.org/pipermail/tz/2008-September/015090.html>).
473
596
 
474
597
 
475
- Version 0.3.9 (tzdata v2008c) - 27-May-2008
476
- -------------------------------------------
598
+ ## Version 0.3.9 (tzdata v2008c) - 27-May-2008
477
599
 
478
600
  * Updated to tzdata version 2008c
479
- (http://article.gmane.org/gmane.comp.time.tz/2183).
601
+ (<https://mm.icann.org/pipermail/tz/2008-May/014956.html>).
480
602
  * Support loading timezone data in the latest trunk versions of Ruby 1.9.
481
- Rational.new! is now private, so call it using Rational.send :new! instead.
482
- Thanks to Jeremy Kemper and Pratik Naik for spotting this. Closes #19184.
603
+ `Rational.new!` is now private, so call it using `Rational.send :new!`
604
+ instead. Thanks to Jeremy Kemper and Pratik Naik for spotting this. Closes
605
+ #19184.
483
606
  * Prevent warnings from being output when running Ruby with the -v or -w
484
607
  command line options. Thanks to Paul McMahon for the patch. Closes #19719.
485
608
 
486
609
 
487
- Version 0.3.8 (tzdata v2008b) - 24-Mar-2008
488
- -------------------------------------------
610
+ ## Version 0.3.8 (tzdata v2008b) - 24-Mar-2008
489
611
 
490
612
  * Updated to tzdata version 2008b
491
- (http://article.gmane.org/gmane.comp.time.tz/2149).
492
- * Support loading timezone data in Ruby 1.9.0. Use DateTime.new! if it is
493
- available instead of DateTime.new0 when constructing transition times.
494
- DateTime.new! was added in Ruby 1.8.6. DateTime.new0 was removed in
613
+ (<https://mm.icann.org/pipermail/tz/2008-March/014910.html>).
614
+ * Support loading timezone data in Ruby 1.9.0. Use `DateTime.new!` if it is
615
+ available instead of `DateTime.new0` when constructing transition times.
616
+ `DateTime.new!` was added in Ruby 1.8.6. `DateTime.new0` was removed in
495
617
  Ruby 1.9.0. Thanks to Joshua Peek for reporting this. Closes #17606.
496
618
  * Modify some of the equality test cases to cope with the differences
497
619
  between Ruby 1.8.6 and Ruby 1.9.0.
498
620
 
499
621
 
500
- Version 0.3.7 (tzdata v2008a) - 10-Mar-2008
501
- -------------------------------------------
622
+ ## Version 0.3.7 (tzdata v2008a) - 10-Mar-2008
502
623
 
503
624
  * Updated to tzdata version 2008a
504
- (http://article.gmane.org/gmane.comp.time.tz/2071).
625
+ (<https://mm.icann.org/pipermail/tz/2008-March/014851.html>).
505
626
 
506
627
 
507
- Version 0.3.6 (tzdata v2007k) - 1-Jan-2008
508
- ------------------------------------------
628
+ ## Version 0.3.6 (tzdata v2007k) - 1-Jan-2008
509
629
 
510
630
  * Updated to tzdata version 2007k
511
- (http://article.gmane.org/gmane.comp.time.tz/2029).
631
+ (<https://mm.icann.org/pipermail/tz/2007-December/014765.html>).
512
632
  * Removed deprecated RubyGems autorequire option.
513
633
 
514
634
 
515
- Version 0.3.5 (tzdata v2007h) - 1-Oct-2007
516
- ------------------------------------------
635
+ ## Version 0.3.5 (tzdata v2007h) - 1-Oct-2007
517
636
 
518
637
  * Updated to tzdata version 2007h
519
- (http://article.gmane.org/gmane.comp.time.tz/1878).
638
+ (<https://mm.icann.org/pipermail/tz/2007-October/014585.html>).
520
639
 
521
640
 
522
- Version 0.3.4 (tzdata v2007g) - 21-Aug-2007
523
- -------------------------------------------
641
+ ## Version 0.3.4 (tzdata v2007g) - 21-Aug-2007
524
642
 
525
643
  * Updated to tzdata version 2007g
526
- (http://article.gmane.org/gmane.comp.time.tz/1810).
644
+ (<https://mm.icann.org/pipermail/tz/2007-August/014499.html>).
527
645
 
528
646
 
529
- Version 0.3.3 (tzdata v2006p) - 27-Nov-2006
530
- -------------------------------------------
647
+ ## Version 0.3.3 (tzdata v2006p) - 27-Nov-2006
531
648
 
532
649
  * Updated to tzdata version 2006p
533
- (http://article.gmane.org/gmane.comp.time.tz/1358).
650
+ (<https://mm.icann.org/pipermail/tz/2006-November/013999.html>).
534
651
 
535
652
 
536
- Version 0.3.2 (tzdata v2006n) - 11-Oct-2006
537
- -------------------------------------------
653
+ ## Version 0.3.2 (tzdata v2006n) - 11-Oct-2006
538
654
 
539
655
  * Updated to tzdata version 2006n
540
- (http://article.gmane.org/gmane.comp.time.tz/1288). Note that this release of
541
- tzdata removes the country Serbia and Montenegro (CS) and replaces it with
542
- separate Serbia (RS) and Montenegro (ME) entries.
656
+ (<https://mm.icann.org/pipermail/tz/2006-October/013911.html>). Note that this
657
+ release of tzdata removes the country Serbia and Montenegro (CS) and replaces
658
+ it with separate Serbia (RS) and Montenegro (ME) entries.
543
659
 
544
660
 
545
- Version 0.3.1 (tzdata v2006j) - 21-Aug-2006
546
- -------------------------------------------
661
+ ## Version 0.3.1 (tzdata v2006j) - 21-Aug-2006
547
662
 
548
663
  * Remove colon from case statements to avoid warning in Ruby 1.8.5. #5198.
549
664
  * Use temporary variable to avoid dynamic string warning from rdoc.
550
665
  * Updated to tzdata version 2006j
551
- (http://article.gmane.org/gmane.comp.time.tz/1175).
666
+ (<https://mm.icann.org/pipermail/tz/2006-August/013767.html>).
552
667
 
553
668
 
554
- Version 0.3.0 (tzdata v2006g) - 17-Jul-2006
555
- -------------------------------------------
669
+ ## Version 0.3.0 (tzdata v2006g) - 17-Jul-2006
556
670
 
557
671
  * New timezone data format. Timezone data now occupies less space on disk and
558
672
  takes less memory once loaded. #4142, #4144.
559
- * Timezone data is defined in modules rather than classes. Timezone instances
560
- returned by Timezone.get are no longer instances of data classes, but are
561
- instead instances of new DataTimezone and LinkedTimezone classes.
562
- * Timezone instances can now be used with Marshal.dump and Marshal.load. #4240.
563
- * Added a Timezone.get_proxy method that returns a TimezoneProxy object for a
564
- given identifier.
673
+ * Timezone data is defined in modules rather than classes. `Timezone` instances
674
+ returned by `Timezone.get` are no longer instances of data classes, but are
675
+ instead instances of new `DataTimezone` and `LinkedTimezone` classes.
676
+ * `Timezone` instances can now be used with `Marshal.dump` and `Marshal.load`.
677
+ #4240.
678
+ * Added a `Timezone.get_proxy` method that returns a `TimezoneProxy` object for
679
+ a given identifier.
565
680
  * Country index data is now defined in a single module that is independent
566
- of the Country class implementation.
567
- * Country instances can now be used with Marshal.dump and Marshal.load. #4240.
568
- * Country has a new zone_info method that returns CountryTimezone objects
569
- containing additional information (latitude, longitude and a description)
570
- relating to each Timezone. #4140.
571
- * Timezones within a Country are now returned in an order that makes
681
+ of the `Country` class implementation.
682
+ * `Country` instances can now be used with `Marshal.dump` and `Marshal.load`.
683
+ #4240.
684
+ * `Country` has a new `zone_info` method that returns `CountryTimezone` objects
685
+ containing additional information (latitude, longitude and a description)
686
+ relating to each `Timezone`. #4140.
687
+ * Time zones within a `Country` are now returned in an order that makes
572
688
  geographic sense.
573
689
  * The zdumptest utility now checks local to utc conversions in addition to
574
690
  utc to local conversions.
575
- * eql? method defined on Country and Timezone that is equivalent to ==.
576
- * The == method of Timezone no longer raises an exception when passed an object
577
- with no identifier method.
578
- * The == method of Country no longer raises an exception when passed an object
579
- with no code method.
580
- * hash method defined on Country that returns the hash of the code.
581
- * hash method defined on Timezone that returns the hash of the identifier.
691
+ * `eql?` method defined on `Country` and `Timezone` that is equivalent to `==`.
692
+ * The `==` method of `Timezone` no longer raises an exception when passed an
693
+ object with no identifier method.
694
+ * The `==` method of `Country` no longer raises an exception when passed an
695
+ object with no code method.
696
+ * `hash` method defined on `Country` that returns the hash of the code.
697
+ * `hash` method defined on `Timezone` that returns the hash of the identifier.
582
698
  * Miscellaneous API documentation corrections and improvements.
583
699
  * Timezone definition and indexes are now excluded from rdoc (the contents were
584
- previously ignored with #:nodoc: anyway).
585
- * Removed no longer needed #:nodoc: directives from timezone data files (which
700
+ previously ignored with `#:nodoc:` anyway).
701
+ * Removed no longer needed `#:nodoc:` directives from timezone data files (which
586
702
  are now excluded from the rdoc build).
587
- * Installation of the gem now causes rdoc API documentation to be generated.
703
+ * Installation of the gem now causes rdoc API documentation to be generated.
588
704
  #4905.
589
705
  * When optimizing transitions to generate zone definitions, check the
590
706
  UTC and standard offsets separately rather than just the total offset to UTC.
591
- Fixes an incorrect abbreviation issue with Europe/London, Europe/Dublin and
707
+ Fixes an incorrect abbreviation issue with Europe/London, Europe/Dublin and
592
708
  Pacific/Auckland.
593
- * Eliminated unnecessary .nil? calls to give a minor performance gain.
594
- * Timezone.all and Timezone.all_identifiers now return all the
595
- Timezones/identifiers rather than just those associated with countries. #4146.
596
- * Added all_data_zones, all_data_zone_identifiers, all_linked_zones and
597
- all_linked_zone_identifiers class methods to Timezone.
598
- * Added a strftime method to Timezone that converts a time in UTC to local
599
- time and then returns it formatted. %Z is replaced with the Timezone
709
+ * Eliminated unnecessary `.nil?` calls to give a minor performance gain.
710
+ * `Timezone.all` and `Timezone.all_identifiers` now return all the
711
+ `Timezone` instances/identifiers rather than just those associated with
712
+ countries. #4146.
713
+ * Added `all_data_zones`, `all_data_zone_identifiers`, `all_linked_zones` and
714
+ `all_linked_zone_identifiers` class methods to `Timezone`.
715
+ * Added a `strftime` method to `Timezone` that converts a time in UTC to local
716
+ time and then returns it formatted. `%Z` is replaced with the timezone
600
717
  abbreviation for the given time (for example, EST or EDT). #4143.
601
- * Fix escaping of quotes in TZDataParser. This affected country names and
602
- descriptions of timezones within countries.
718
+ * Fix escaping of quotes in `TZDataParser`. This affected country names and
719
+ descriptions of time zones within countries.
603
720
 
604
721
 
605
- Version 0.2.2 (tzdata v2006g) - 17-May-2006
606
- -------------------------------------------
722
+ ## Version 0.2.2 (tzdata v2006g) - 17-May-2006
607
723
 
608
- * Use class-scoped instance variables to store the Timezone identifier and
724
+ * Use class-scoped instance variables to store the Timezone identifier and
609
725
  singleton instance. Loading a linked zone no longer causes the parent
610
726
  zone's identifier to be changed. The instance method of a linked zone class
611
727
  also now returns an instance of the linked zone class rather than the parent
@@ -614,173 +730,170 @@ Version 0.2.2 (tzdata v2006g) - 17-May-2006
614
730
  zone identifier.
615
731
  * The zdumptestall utility now exits if not supplied with enough parameters.
616
732
  * Updated to tzdata version 2006g
617
- (http://article.gmane.org/gmane.comp.time.tz/1008).
733
+ (<https://mm.icann.org/pipermail/tz/2006-May/013590.html>).
618
734
 
619
735
 
620
- Version 0.2.1 (tzdata v2006d) - 17-Apr-2006
621
- -------------------------------------------
736
+ ## Version 0.2.1 (tzdata v2006d) - 17-Apr-2006
622
737
 
623
- * Fix a performance issue caused in 0.2.0 with Timezone.local_to_utc.
624
- Conversions performed on TimeOrDateTime instances passed to <=> are now
738
+ * Fix a performance issue caused in 0.2.0 with `Timezone.local_to_utc`.
739
+ Conversions performed on `TimeOrDateTime` instances passed to `<=>` are now
625
740
  cached as originally intended. Thanks to Michael Smedberg for spotting this.
626
- * Fix a performance issue with the local_to_utc period search algorithm
741
+ * Fix a performance issue with the `local_to_utc` period search algorithm
627
742
  originally implemented in 0.1.0. The condition that was supposed to cause
628
743
  the search to terminate when enough periods had been found was only being
629
- evaluated in a small subset of cases. Thanks to Michael Smedberg and
744
+ evaluated in a small subset of cases. Thanks to Michael Smedberg and
630
745
  Jamis Buck for reporting this.
631
- * Added abbreviation as an alias for TimezonePeriod.zone_identifier.
746
+ * Added abbreviation as an alias for `TimezonePeriod.zone_identifier`.
632
747
  * Updated to tzdata version 2006d
633
- (http://article.gmane.org/gmane.comp.time.tz/936).
634
- * Ignore any offset in DateTimes passed in (as is already done for Times).
635
- All of the following now refer to the same UTC time (15:40 on 17 April 2006).
636
- Previously, the DateTime in the second line would have been interpreted
637
- as 20:40.
638
-
748
+ (<https://mm.icann.org/pipermail/tz/2006-April/013517.html>).
749
+ * Ignore any offset in `DateTime` instances passed in (as is already done for
750
+ `Time` instances). 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.
751
+
752
+ ```ruby
639
753
  tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0))
640
754
  tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0).new_offset(Rational(5, 24)))
641
755
  tz.utc_to_local(Time.utc(2006, 4, 17, 15, 40, 0))
642
756
  tz.utc_to_local(Time.local(2006, 4, 17, 15, 40, 0))
757
+ ```
643
758
 
644
759
 
645
- Version 0.2.0 (tzdata v2006c) - 3-Apr-2006
646
- ------------------------------------------
760
+ ## Version 0.2.0 (tzdata v2006c) - 3-Apr-2006
647
761
 
648
- * Use timestamps rather than DateTime objects in zone files for times between
649
- 1970 and 2037 (the range of Time).
650
- * Don't convert passed in Time objects to DateTime in most cases (provides
762
+ * Use timestamps rather than `DateTime` objects in zone files for times between
763
+ 1970 and 2037 (the range of `Time`).
764
+ * Don't convert passed in `Time` objects to `DateTime` in most cases (provides
651
765
  a substantial performance improvement).
652
- * Allow integer timestamps (time in seconds since 1970-1-1) to be used as well
653
- as Time and DateTime objects in all public methods that take times as
766
+ * Allow integer timestamps (time in seconds since 1970-1-1) to be used as well
767
+ as `Time` and `DateTime` objects in all public methods that take times as
654
768
  parameters.
655
769
  * Tool to compare TZInfo conversions with output from zdump.
656
- * TZDataParser zone generation algorithm rewritten. Now based on the zic code.
770
+ * `TZDataParser` zone generation algorithm rewritten. Now based on the zic code.
657
771
  TZInfo is now 100% compatible with zic/zdump output.
658
772
  * Riyadh Solar Time zones now included again (generation time has been reduced
659
- with TZDataParser changes).
773
+ with `TZDataParser` changes).
660
774
  * Use binary mode when writing zone and country files to get Unix (\n) new
661
775
  lines.
662
776
  * Omit unnecessary quotes in zone identifier symbols.
663
777
  * Omit the final transition to DST if there is a prior transition in the last
664
778
  year processed to standard time.
665
779
  * Updated to tzdata version 2006c
666
- (http://article.gmane.org/gmane.comp.time.tz/920).
780
+ (<https://mm.icann.org/pipermail/tz/2006-April/013500.html>).
667
781
 
668
782
 
669
- Version 0.1.2 (tzdata v2006a) - 5-Feb-2006
670
- ------------------------------------------
783
+ ## Version 0.1.2 (tzdata v2006a) - 5-Feb-2006
671
784
 
672
785
  * Add lib directory to the load path when tzinfo is required. Makes it easier
673
- to use tzinfo gem when unpacked to vendor directory in rails.
674
- * Updated to tzdata version 2006a
675
- (http://article.gmane.org/gmane.comp.time.tz/738).
676
- * build_tz_classes rake task now handles running svn add and svn delete as new
677
- timezones and countries are added and old ones are removed.
678
- * Return a better error when attempting to use a Timezone instance that was
679
- constructed with Timezone.new(nil). This will occur when using Rails'
680
- composed_of. When the timezone identifier in the database is null, attempting
681
- to use the Timezone will now result in an UnknownTimezone exception rather
682
- than a NameError.
683
-
684
-
685
- Version 0.1.1 (tzdata v2005q) - 18-Dec-2005
686
- -------------------------------------------
687
-
688
- * Timezones that are defined by a single unbounded period (e.g. UTC) now
786
+ to use tzinfo gem when unpacked to vendor directory in rails.
787
+ * Updated to tzdata version 2006a
788
+ (<https://mm.icann.org/pipermail/tz/2006-January/013311.html>).
789
+ * `build_tz_classes` rake task now handles running svn add and svn delete as new
790
+ time zones and countries are added and old ones are removed.
791
+ * Return a better error when attempting to use a `Timezone` instance that was
792
+ constructed with `Timezone.new(nil)`. This will occur when using Rails'
793
+ `composed_of`. When the timezone identifier in the database is null,
794
+ attempting to use the `Timezone` will now result in an `UnknownTimezone`
795
+ exception rather than a `NameError`.
796
+
797
+
798
+ ## Version 0.1.1 (tzdata v2005q) - 18-Dec-2005
799
+
800
+ * Time zones that are defined by a single unbounded period (e.g. UTC) now
689
801
  work again.
690
802
  * Updated to tzdata version 2005q.
691
803
 
692
804
 
693
- Version 0.1.0 (tzdata v2005n) - 27-Nov-2005
694
- -------------------------------------------
805
+ ## Version 0.1.0 (tzdata v2005n) - 27-Nov-2005
695
806
 
696
- * period_for_local and local_to_utc now allow resolution of ambiguous
697
- times (e.g. when switching from daylight savings to standard time).
807
+ * `period_for_local` and `local_to_utc` now allow resolution of ambiguous
808
+ times (e.g. when switching from daylight savings to standard time).
698
809
  The behaviour of these methods when faced with an ambiguous local time
699
810
  has now changed. If you are using these methods you should check
700
811
  the documentation. Thanks to Cliff Matthews for suggesting this change.
701
- * Added require 'date' to timezone.rb (date isn't loaded by default in all
812
+ * Added `require 'date'` to `timezone.rb` (date isn't loaded by default in all
702
813
  environments).
703
814
  * Use rake to build packages and documentation.
704
815
  * License file is now included in gem distribution.
705
816
  * Dates in definitions stored as Astronomical Julian Day numbers rather than
706
- as civil dates (improves performance creating DateTime instances).
707
- * Added options to TZDataParser to allow generation of specific zones and
817
+ as civil dates (improves performance creating `DateTime` instances).
818
+ * Added options to `TZDataParser` to allow generation of specific zones and
708
819
  countries.
709
- * Moved TimezonePeriod class to timezone_period.rb.
710
- * New TimezonePeriodList class to store TimezonePeriods for a timezone and
711
- perform searches for periods.
712
- * Timezones now defined using blocks. TimezonePeriods are only instantiated
713
- when they are needed. Thanks to Jamis Buck for the suggestion.
714
- * Add options to TZDataParser to allow exclusion of specific zones and
820
+ * Moved `TimezonePeriod` class to `timezone_period.rb`.
821
+ * New `TimezonePeriodList` class to store `TimezonePeriod` instances for a
822
+ timezone and perform searches for periods.
823
+ * Time zones are now defined using blocks. `TimezonePeriod` instances are only
824
+ created when they are needed. Thanks to Jamis Buck for the suggestion.
825
+ * Add options to `TZDataParser` to allow exclusion of specific zones and
715
826
  countries.
716
827
  * Exclude the Riyadh Solar Time zones. The rules are only for 1987 to 1989 and
717
828
  take a long time to generate and process. Riyadh Solar Time is no longer
718
829
  observed.
719
- * The last TimezonePeriod for each Timezone is now written out with an
830
+ * The last `TimezonePeriod` for each `Timezone` is now written out with an
720
831
  unbounded rather than arbitrary end time.
721
- * Construct the Rational offset in TimezonePeriod once when the TimezonePeriod
722
- is constructed rather than each time it is needed.
723
- * Timezone and Country now keep a cache of loaded instances to avoid running
724
- require which can be slow on some platforms.
832
+ * Construct the `Rational` offset in `TimezonePeriod` once when the
833
+ `TimezonePeriod` is constructed rather than each time it is needed.
834
+ * `Timezone` and `Country` now keep a cache of loaded instances to avoid running
835
+ `require` which can be slow on some platforms.
725
836
  * Updated to tzdata version 2005n.
726
837
 
727
838
 
728
- Version 0.0.4 (tzdata v2005m) - 18-Sep-2005
729
- -------------------------------------------
839
+ ## Version 0.0.4 (tzdata v2005m) - 18-Sep-2005
730
840
 
731
841
  * Removed debug output accidentally included in the previous release.
732
842
  * Fixed a bug in the generation of friendly zone identifiers (was inserting
733
843
  apostrophes into UTC, GMT, etc).
734
- * Fixed Country <=> operator (was comparing non-existent attribute)
735
- * Fixed Timezone.period_for_local error when period not found.
736
- * Added testcases for Timezone, TimezoneProxy, TimezonePeriod, Country and
737
- some selected timezones.
738
-
739
-
740
- Version 0.0.3 (tzdata v2005m) - 17-Sep-2005
741
- -------------------------------------------
742
-
743
- * Reduced visibility of some methods added in Timezone#setup and Country#setup.
744
- * Added name method to Timezone (returns the identifier).
745
- * Added friendly_identifier method to Timezone. Returns a more friendly version
746
- of the identifier.
747
- * Added to_s method to Timezone. Returns the friendly identifier.
748
- * Added == and <=> operators to Timezone (compares identifiers).
749
- * Timezone now includes Comparable.
750
- * Added to_s method to Country.
751
- * Added == and <=> operators to Country (compares ISO 3166 country codes).
752
- * Country now includes Comparable.
753
- * New TimezoneProxy class that behaves the same as a Timezone but doesn't
844
+ * Fixed `Country` `<=>` operator (was comparing non-existent attribute)
845
+ * Fixed `Timezone.period_for_local` error when period not found.
846
+ * Added test cases for `Timezone`, `TimezoneProxy`, `TimezonePeriod`, `Country`
847
+ and some selected time zones.
848
+
849
+
850
+ ## Version 0.0.3 (tzdata v2005m) - 17-Sep-2005
851
+
852
+ * Reduced visibility of some methods added in `Timezone#setup` and
853
+ `Country#setup`.
854
+ * Added `name` method to `Timezone` (returns the identifier).
855
+ * Added `friendly_identifier` method to `Timezone`. Returns a more friendly
856
+ version of the identifier.
857
+ * Added `to_s` method to `Timezone`. Returns the friendly identifier.
858
+ * Added `==` and `<=>` operators to `Timezone` (compares identifiers).
859
+ * `Timezone` now includes `Comparable`.
860
+ * Added `to_s` method to `Country`.
861
+ * Added `==` and `<=>` operators to `Country` (compares ISO 3166 country codes).
862
+ * `Country` now includes `Comparable`.
863
+ * New `TimezoneProxy` class that behaves the same as a `Timezone` but doesn't
754
864
  actually load in its definition until it is actually required.
755
- * Modified Timezone and Country methods that return Timezones to return
756
- TimezoneProxy instances instead. This makes these methods much quicker.
757
-
758
- In Ruby on Rails, you can now show a drop-down list of all timezones using the
759
- Rails time_zone_select helper method:
760
-
761
- <%= time_zone_select 'user', 'time_zone', TZInfo::Timezone.all.sort, :model => TZInfo::Timezone %>
762
-
763
-
764
- Version 0.0.2 (tzdata v2005m) - 13-Sep-2005
765
- -------------------------------------------
766
-
767
- * Country and Timezone data is now loaded into class rather than instance
768
- variables. This makes Timezone links more efficient and saves memory if
769
- creating specific Timezone and Country classes directly.
770
- * TimezonePeriod zone_identifier is now defined as a symbol to save memory
865
+ * Modified `Timezone` and `Country` methods that return `Timezone` instances to
866
+ return `TimezoneProxy` instances instead. This makes these methods much
867
+ quicker.
868
+
869
+ In Ruby on Rails, you can now show a drop-down list of all time zones using the
870
+ Rails `time_zone_select` helper method:
871
+
872
+ ```ruby
873
+ <%= time_zone_select 'user', 'time_zone', TZInfo::Timezone.all.sort, :model => TZInfo::Timezone %>
874
+ ```
875
+
876
+
877
+ ## Version 0.0.2 (tzdata v2005m) - 13-Sep-2005
878
+
879
+ * `Country` and `Timezone` data is now loaded into class rather than instance
880
+ variables. This makes `Timezone` links more efficient and saves memory if
881
+ creating specific `Timezone` and `Country` classes directly.
882
+ * `TimezonePeriod` `zone_identifier` is now defined as a symbol to save memory
771
883
  (was previously a string).
772
- * TimezonePeriod zone_identifiers that were previously '' are now :Unknown.
773
- * Timezones and Countries can now be returned using Timezone.new(identifier)
774
- and Country.new(identifier). When passed an identifier, the new method
775
- calls get to return an instance of the specified timezone or country.
776
- * Added new class methods to Timezone to return sets of zones and identifiers.
884
+ * `TimezonePeriod` `zone_identifier`s that were previously `''` are now
885
+ `:Unknown`.
886
+ * `Timezone` and `Country` instances can now be returned using
887
+ `Timezone.new(identifier)` and `Country.new(identifier)`. When passed an
888
+ identifier, the `new` method calls `get` to return an instance of the
889
+ specified timezone or country.
890
+ * Added new class methods to `Timezone` to return sets of zones and identifiers.
777
891
 
778
892
  Thanks to Scott Barron of Lunchbox Software for the suggestions in his
779
- article about using TZInfo with Rails
780
- (http://lunchroom.lunchboxsoftware.com/pages/tzinfo_rails)
893
+ article about using TZInfo with Rails
894
+ (<https://web.archive.org/web/20060425190845/http://lunchroom.lunchboxsoftware.com/pages/tzinfo_rails>)
781
895
 
782
896
 
783
- Version 0.0.1 (tzdata v2005m) - 29-Aug-2005
784
- -------------------------------------------
897
+ ## Version 0.0.1 (tzdata v2005m) - 29-Aug-2005
785
898
 
786
899
  * First release.