tzinfo 1.2.8 → 2.0.0

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