tzinfo 1.2.5 → 2.0.0

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