tzinfo 1.2.9 → 2.0.4

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