-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
401 lines (297 loc) · 16.6 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
== Version 0.3.23 (tzdata v2010l) - 19-Aug-2010
* Updated to tzdata version 2010l
(http://article.gmane.org/gmane.comp.time.tz/3354).
== Version 0.3.22 (tzdata v2010j) - 29-May-2010
* Corrected file permissions issue with 0.3.21 release.
== Version 0.3.21 (tzdata v2010j) - 28-May-2010
* Updated to tzdata version 2010j
(http://article.gmane.org/gmane.comp.time.tz/3225).
* Change invalid timezone check to exclude characters not used in timezone
identifiers and avoid 'character class has duplicated range' warnings with
Ruby 1.9.2.
* Ruby 1.9.2 has deprecated "require 'rational'", but older versions of
Ruby need rational to be required. Require rational only when the Rational
module has not already been loaded.
* Remove circular requires (now a warning in Ruby 1.9.2). Instead of using
requires in each file for dependencies, tzinfo.rb now requires all tzinfo
files. If you were previously requiring files within the tzinfo directory
(e.g. require 'tzinfo/timezone'), then you will now have to
require 'tzinfo' instead.
== Version 0.3.20 (tzdata v2010i) - 19-Apr-2010
* Updated to tzdata version 2010i
(http://article.gmane.org/gmane.comp.time.tz/3202).
== Version 0.3.19 (tzdata v2010h) - 5-Apr-2010
* Updated to tzdata version 2010h
(http://article.gmane.org/gmane.comp.time.tz/3188).
== Version 0.3.18 (tzdata v2010g) - 29-Mar-2010
* Updated to tzdata version 2010g
(http://article.gmane.org/gmane.comp.time.tz/3172).
== Version 0.3.17 (tzdata v2010e) - 8-Mar-2010
* Updated to tzdata version 2010e
(http://article.gmane.org/gmane.comp.time.tz/3128).
== Version 0.3.16 (tzdata v2009u) - 5-Jan-2010
* Support the use of '-' to denote '0' as an offset in the tz data files.
Used for the first time in the SAVE field in tzdata v2009u.
* Updated to tzdata version 2009u
(http://article.gmane.org/gmane.comp.time.tz/3053).
== Version 0.3.15 (tzdata v2009p) - 26-Oct-2009
* Updated to tzdata version 2009p
(http://article.gmane.org/gmane.comp.time.tz/2953).
* Added a description to the gem spec.
* List test files in test_files instead of files in the gem spec.
== Version 0.3.14 (tzdata v2009l) - 19-Aug-2009
* Updated to tzdata version 2009l
(http://article.gmane.org/gmane.comp.time.tz/2818).
* Include current directory in load path to allow running tests on
Ruby 1.9.2, which doesn't include it by default any more.
== Version 0.3.13 (tzdata v2009f) - 15-Apr-2009
* Updated to tzdata version 2009f
(http://article.gmane.org/gmane.comp.time.tz/2668).
* Untaint the timezone module filename after validation to allow use
with $SAFE == 1 (e.g. under mod_ruby). Thanks to Dmitry Borodaenko for
the suggestion. Closes #25349.
== Version 0.3.12 (tzdata v2008i) - 12-Nov-2008
* Updated to tzdata version 2008i
(http://article.gmane.org/gmane.comp.time.tz/2440).
== Version 0.3.11 (tzdata v2008g) - 7-Oct-2008
* Updated to tzdata version 2008g
(http://article.gmane.org/gmane.comp.time.tz/2335).
* Support Ruby 1.9.0-5. Rational.new! has now been removed in Ruby 1.9.
Only use Rational.new! if it is available (it is preferable in Ruby 1.8
for performance reasons). Thanks to Jeremy Kemper and Pratik Naik for
reporting this. Closes #22312.
* Apply a patch from Pratik Naik to replace assert calls that have been
deprecated in the Ruby svn trunk. Closes #22308.
== Version 0.3.10 (tzdata v2008f) - 16-Sep-2008
* Updated to tzdata version 2008f
(http://article.gmane.org/gmane.comp.time.tz/2293).
== Version 0.3.9 (tzdata v2008c) - 27-May-2008
* Updated to tzdata version 2008c
(http://article.gmane.org/gmane.comp.time.tz/2183).
* Support loading timezone data in the latest trunk versions of Ruby 1.9.
Rational.new! is now private, so call it using Rational.send :new! instead.
Thanks to Jeremy Kemper and Pratik Naik for spotting this. Closes #19184.
* Prevent warnings from being output when running Ruby with the -v or -w
command line options. Thanks to Paul McMahon for the patch. Closes #19719.
== Version 0.3.8 (tzdata v2008b) - 24-Mar-2008
* Updated to tzdata version 2008b
(http://article.gmane.org/gmane.comp.time.tz/2149).
* Support loading timezone data in Ruby 1.9.0. Use DateTime.new! if it is
available instead of DateTime.new0 when constructing transition times.
DateTime.new! was added in Ruby 1.8.6. DateTime.new0 was removed in
Ruby 1.9.0. Thanks to Joshua Peek for reporting this. Closes #17606.
* Modify some of the equality test cases to cope with the differences
between Ruby 1.8.6 and Ruby 1.9.0.
== Version 0.3.7 (tzdata v2008a) - 10-Mar-2008
* Updated to tzdata version 2008a
(http://article.gmane.org/gmane.comp.time.tz/2071).
== Version 0.3.6 (tzdata v2007k) - 1-Jan-2008
* Updated to tzdata version 2007k
(http://article.gmane.org/gmane.comp.time.tz/2029).
* Removed deprecated RubyGems autorequire option.
== Version 0.3.5 (tzdata v2007h) - 1-Oct-2007
* Updated to tzdata version 2007h
(http://article.gmane.org/gmane.comp.time.tz/1878).
== Version 0.3.4 (tzdata v2007g) - 21-Aug-2007
* Updated to tzdata version 2007g
(http://article.gmane.org/gmane.comp.time.tz/1810).
== Version 0.3.3 (tzdata v2006p) - 27-Nov-2006
* Updated to tzdata version 2006p
(http://article.gmane.org/gmane.comp.time.tz/1358).
== Version 0.3.2 (tzdata v2006n) - 11-Oct-2006
* Updated to tzdata version 2006n
(http://article.gmane.org/gmane.comp.time.tz/1288). Note that this release of
tzdata removes the country Serbia and Montenegro (CS) and replaces it with
separate Serbia (RS) and Montenegro (ME) entries.
== Version 0.3.1 (tzdata v2006j) - 21-Aug-2006
* Remove colon from case statements to avoid warning in Ruby 1.8.5. #5198.
* Use temporary variable to avoid dynamic string warning from rdoc.
* Updated to tzdata version 2006j
(http://article.gmane.org/gmane.comp.time.tz/1175).
== Version 0.3.0 (tzdata v2006g) - 17-Jul-2006
* New timezone data format. Timezone data now occupies less space on disk and
takes less memory once loaded. #4142, #4144.
* Timezone data is defined in modules rather than classes. Timezone instances
returned by Timezone.get are no longer instances of data classes, but are
instead instances of new DataTimezone and LinkedTimezone classes.
* Timezone instances can now be used with Marshal.dump and Marshal.load. #4240.
* Added a Timezone.get_proxy method that returns a TimezoneProxy object for a
given identifier.
* Country index data is now defined in a single module that is independent
of the Country class implementation.
* Country instances can now be used with Marshal.dump and Marshal.load. #4240.
* Country has a new zone_info method that returns CountryTimezone objects
containing additional information (latitude, longitude and a description)
relating to each Timezone. #4140.
* Timezones within a Country are now returned in an order that makes
geographic sense.
* The zdumptest utility now checks local to utc conversions in addition to
utc to local conversions.
* eql? method defined on Country and Timezone that is equivalent to ==.
* == method of Timezone no longer raises an exception when passed an object
with no identifier method.
* == method of Country no longer raises an exception when passed an object
with no code method.
* hash method defined on Country that returns the hash of the code.
* hash method defined on Timezone that returns the hash of the identifier.
* Miscellaneous API documentation corrections and improvements.
* Timezone definition and indexes are now excluded from rdoc (the contents were
previously ignored with #:nodoc: anyway).
* Removed no longer needed #:nodoc: directives from timezone data files (which
are now excluded from the rdoc build).
* Installation of the gem now causes rdoc API documentation to be generated.
#4905.
* When optimizing transitions to generate zone definitions, check the
UTC and standard offsets separately rather than just the total offset to UTC.
Fixes an incorrect abbreviation issue with Europe/London, Europe/Dublin and
Pacific/Auckland.
* Eliminated unnecessary .nil? calls to give a minor performance gain.
* Timezone.all and Timezone.all_identifiers now return all the
Timezones/identifiers rather than just those associated with countries. #4146.
* Added all_data_zones, all_data_zone_identifiers, all_linked_zones and
all_linked_zone_identifiers class methods to Timezone.
* Added a strftime method to Timezone that converts a time in UTC to local
time and then returns it formatted. %Z is replaced with the Timezone
abbreviation for the given time (for example, EST or EDT). #4143.
* Fix escaping of quotes in TZDataParser. This affected country names and
descriptions of timezones within countries.
== Version 0.2.2 (tzdata v2006g) - 17-May-2006
* Use class-scoped instance variables to store the Timezone identifier and
singleton instance. Loading a linked zone no longer causes the parent
zone's identifier to be changed. The instance method of a linked zone class
also now returns an instance of the linked zone class rather than the parent
class. #4502.
* The zdumptest utility now compares the TZInfo zone identifier with the zdump
zone identifier.
* The zdumptestall utility now exits if not supplied with enough parameters.
* Updated to tzdata version 2006g
(http://article.gmane.org/gmane.comp.time.tz/1008).
== Version 0.2.1 (tzdata v2006d) - 17-Apr-2006
* Fix a performance issue caused in 0.2.0 with Timezone.local_to_utc.
Conversions performed on TimeOrDateTime instances passed to <=> are now
cached as originally intended. Thanks to Michael Smedberg for spotting this.
* Fix a performance issue with the local_to_utc period search algorithm
originally implemented in 0.1.0. The condition that was supposed to cause
the search to terminate when enough periods had been found was only being
evaluated in a small subset of cases. Thanks to Michael Smedberg and
Jamis Buck for reporting this.
* Added abbreviation as an alias for TimezonePeriod.zone_identifier.
* Updated to tzdata version 2006d
(http://article.gmane.org/gmane.comp.time.tz/936).
* Ignore any offset in DateTimes passed in (as is already done for Times).
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.
tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0))
tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0).new_offset(Rational(5, 24)))
tz.utc_to_local(Time.utc(2006, 4, 17, 15, 40, 0))
tz.utc_to_local(Time.local(2006, 4, 17, 15, 40, 0))
== Version 0.2.0 (tzdata v2006c) - 3-Apr-2006
* Use timestamps rather than DateTime objects in zone files for times between
1970 and 2037 (the range of Time).
* Don't convert passed in Time objects to DateTime in most cases (provides
a substantial performance improvement).
* Allow integer timestamps (time in seconds since 1970-1-1) to be used as well
as Time and DateTime objects in all public methods that take times as
parameters.
* Tool to compare TZInfo conversions with output from zdump.
* TZDataParser zone generation algorithm rewritten. Now based on the zic code.
TZInfo is now 100% compatible with zic/zdump output.
* Riyadh Solar Time zones now included again (generation time has been reduced
with TZDataParser changes).
* Use binary mode when writing zone and country files to get Unix (\n) new
lines.
* Omit unnecessary quotes in zone identifier symbols.
* Omit the final transition to DST if there is a prior transition in the last
year processed to standard time.
* Updated to tzdata version 2006c
(http://article.gmane.org/gmane.comp.time.tz/920).
== Version 0.1.2 (tzdata v2006a) - 5-Feb-2006
* Add lib directory to the load path when tzinfo is required. Makes it easier
to use tzinfo gem when unpacked to vendor directory in rails.
* Updated to tzdata version 2006a
(http://article.gmane.org/gmane.comp.time.tz/738).
* build_tz_classes rake task now handles running svn add and svn delete as new
timezones and countries are added and old ones are removed.
* Return a better error when attempting to use a Timezone instance that was
constructed with Timezone.new(nil). This will occur when using Rails'
composed_of. When the timezone identifier in the database is null, attempting
to use the Timezone will now result in an UnknownTimezone exception rather
than a NameError.
== Version 0.1.1 (tzdata v2005q) - 18-Dec-2005
* Timezones that are defined by a single unbounded period (e.g. UTC) now
work again.
* Updated to tzdata version 2005q.
== Version 0.1.0 (tzdata v2005n) - 27-Nov-2005
* period_for_local and local_to_utc now allow resolution of ambiguous
times (e.g. when switching from daylight savings to standard time).
The behaviour of these methods when faced with an ambiguous local time
has now changed. If you are using these methods you should check
the documentation. Thanks to Cliff Matthews for suggesting this change.
* Added require 'date' to timezone.rb (date isn't loaded by default in all
environments).
* Use rake to build packages and documentation.
* License file is now included in gem distribution.
* Dates in definitions stored as Astronomical Julian Day numbers rather than
as civil dates (improves performance creating DateTime instances).
* Added options to TZDataParser to allow generation of specific zones and
countries.
* Moved TimezonePeriod class to timezone_period.rb.
* New TimezonePeriodList class to store TimezonePeriods for a timezone and
perform searches for periods.
* Timezones now defined using blocks. TimezonePeriods are only instantiated
when they are needed. Thanks to Jamis Buck for the suggestion.
* Add options to TZDataParser to allow exclusion of specific zones and
countries.
* Exclude the Riyadh Solar Time zones. The rules are only for 1987 to 1989 and
take a long time to generate and process. Riyadh Solar Time is no longer
observed.
* The last TimezonePeriod for each Timezone is now written out with an
unbounded rather than arbitrary end time.
* Construct the Rational offset in TimezonePeriod once when the TimezonePeriod
is constructed rather than each time it is needed.
* Timezone and Country now keep a cache of loaded instances to avoid running
require which can be slow on some platforms.
* Updated to tzdata version 2005n.
== Version 0.0.4 (tzdata v2005m) - 18-Sep-2005
* Removed debug output accidentally included in the previous release.
* Fixed a bug in the generation of friendly zone identifiers (was inserting
apostrophes into UTC, GMT, etc).
* Fixed Country <=> operator (was comparing non-existent attribute)
* Fixed Timezone.period_for_local error when period not found.
* Added testcases for Timezone, TimezoneProxy, TimezonePeriod, Country and
some selected timezones.
== Version 0.0.3 (tzdata v2005m) - 17-Sep-2005
* Reduced visibility of some methods added in Timezone#setup and Country#setup.
* Added name method to Timezone (returns the identifier).
* Added friendly_identifier method to Timezone. Returns a more friendly version
of the identifier.
* Added to_s method to Timezone. Returns the friendly identifier.
* Added == and <=> operators to Timezone (compares identifiers).
* Timezone now includes Comparable.
* Added to_s method to Country.
* Added == and <=> operators to Country (compares ISO 3166 country codes).
* Country now includes Comparable.
* New TimezoneProxy class that behaves the same as a Timezone but doesn't
actually load in its definition until it is actually required.
* Modified Timezone and Country methods that return Timezones to return
TimezoneProxy instances instead. This makes these methods much quicker.
In Ruby on Rails, you can now show a drop-down list of all timezones using the
Rails time_zone_select helper method:
<%= time_zone_select 'user', 'time_zone', TZInfo::Timezone.all.sort, :model => TZInfo::Timezone %>
== Version 0.0.2 (tzdata v2005m) - 13-Sep-2005
* Country and Timezone data is now loaded into class rather than instance
variables. This makes Timezone links more efficient and saves memory if
creating specific Timezone and Country classes directly.
* TimezonePeriod zone_identifier is now defined as a symbol to save memory
(was previously a string).
* TimezonePeriod zone_identifiers that were previously '' are now :Unknown.
* Timezones and Countries can now be returned using Timezone.new(identifier)
and Country.new(identifier). When passed an identifier, the new method
calls get to return an instance of the specified timezone or country.
* Added new class methods to Timezone to return sets of zones and identifiers.
Thanks to Scott Barron of Lunchbox Software for the suggestions in his
article about using TZInfo with Rails
(http://lunchroom.lunchboxsoftware.com/pages/tzinfo_rails)
== Version 0.0.1 (tzdata v2005m) - 29-Aug-2005
* First release.