Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Nov 06, 2008
@philr philr Branch for experimenting with v0.3 using local zoneinfo files. bdc8104
@philr philr Use zoneinfo files for timezone definitions. 57d2d04
Commits on Apr 10, 2009
@philr philr Merge revision 220 from 0.3 branch.
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.
b1ca301
Commits on Apr 15, 2009
@philr philr Merge 0.3 revision 223.
Disable tainted test in Ruby 1.9. It doesn't appear to be possible to require a file from the load path in Ruby 1.9. See: http://groups.google.com/group/ruby-talk-google/browse_thread/thread/170a7205555cedfc
0b53dbb
@philr philr Merge 0.3 revision 225.
Add missing require.
605039c
Commits on May 26, 2010
@philr philr Merge 0.3 revision 235.
Include current directory in load path to allow running tests on Ruby 1.9.2, which doesn't include it by default any more.
c8d5fa2
@philr philr Merge 0.3 branch revision 243.
Add a description to the gem spec.
a58f7fe
@philr philr Merge 0.3 branch revision 244.
List test files in test_files instead of files in the gem spec.
63d812b
@philr philr Merge revision 247 from 0.3 branch.
Support the use of '-' to denote '0' as an offset. Used for the first time in the SAVE field in tzdata v2009u (http://article.gmane.org/gmane.comp.time.tz/3055).
8d93cdb
@philr philr Merge revision 249 from 0.3 branch.
Update release instructions to include gemcutter/gem push.
f601bac
@philr philr Merge revision 269 from 0.3 branch.
Change invalid timezone check to exclude characters not used in timezone identifiers and avoid 'character class has duplicated range' warnings.
2d90129
@philr philr Merge revision 270 from 0.3 branch.
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.
e027896
@philr philr Merge revision 271 from 0.3 branch.
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.
a1a3a53
Commits on Jun 01, 2010
@philr philr Merge revision 284 from 0.3 branch.
Ensure that files added to the tar package and gem are always given the correct permissions.
Ensure that files added to the tar package have no owner information included.
3ed6d1a
Commits on Jan 15, 2011
@philr philr Merge revision 295 from 0.3.x branch.
Update links.
Replace out of date Ruby on Rails information.
Change to HTML5 doctype.
c28e2e2
Commits on May 28, 2011
@philr philr Merge revision 308 from 0.3 branch.
Support Ruby trunk revision 31668 and later, which removed the DateTime.new! method. Make RubyCoreSupport.datetime_new! fallback to DateTime.jd instead. Thanks to Aaron Patterson for reporting the removal of the new! method (issue #29233).
4f77164
@philr philr Merge revision 310 from the 0.3 branch.
Fix spelling.
36781bd
@philr philr Merge revision 312 from 0.3 branch.
Only define HALF_DAYS_IN_DAY constant if it will be needed.
f7a0ca0
Commits on Jun 12, 2011
@philr philr Merge revision 314 from 0.3 branch.
Since Ruby revision 31862, DateTime.jd no longer accepts a fractional Julian Day number if any of the subsequent parameters are specified. Since setting the offset and calendar reform date is supported by RubyCoreSupport.datetime_new!, the hours, minutes and seconds must now be calculated from the fractional part of the Julian Day number.
4c27017
@philr philr Merge revision 316 from 0.3 branch.
Handle negative Julian Day numbers correctly.
2f8dc89
Commits on Jun 21, 2011
@philr philr Merge revision 320 from the 0.3 branch.
Allow the default value of the local_to_utc and period_for_local dst parameter to be specified globally with a Timezone.default_dst attribute. Based on a patch from Kurt Werle.
b3434c8
Commits on Oct 09, 2011
@philr philr Add a readme file. e9977cc
Commits on Nov 06, 2011
@philr philr Update Time Zone Database link to new IANA page.
Remove broken Rails Wiki link.
610b238
Commits on Aug 12, 2012
@philr philr Merge revision 340 from the 0.3 branch.
Use ruby from the path instead of hard-coding /usr/bin/ruby.
On 64-bit systems, the output of zdump can run beyond the data that TZInfo has. Restrict years tested to match what TZDataParser generates.
b77e2d4
Commits on Aug 20, 2012
@philr philr * Allow TZInfo to be used with different data sources instead of just…
… the built-in Ruby module data files.

* Include a data source that allows TZInfo to load data from the binary zoneinfo files produced by zic and included with many Linux/Unix distributions.
* Put the full path to the TZInfo lib directory on the search path when requiring 'tzinfo' instead of a relative path.
* Support running tests against either RubyDataSource or ZoneinfoDataSource (ts_all_ruby.rb and ts_all_zoneinfo.rb). When using ZoneinfoDataSource, a cut-down zoneinfo directory is used (tzinfo/test/zoneinfo). 'rake test' now tests against both RubyDataSource and ZoneinfoDataSource.
28dfb3c
Commits on Aug 24, 2012
@philr philr Fix typo. 755baf2
Commits on Sep 05, 2012
@philr philr Reinstate commented out message in assert_array_same_items. 80ae0bb
Commits on Sep 17, 2012
@philr philr Remove support for treating symlinks as linked timezones in ZoneinfoD…
…ataSource.

Using symlinks in the zoneinfo directory is a non-standard Debian modification (zic will produce hard links). The Debian packages don't create the symlinks based on the source data (i.e. Link vs Zone definitions). Instead, they just search for sets of hard-linked files, pick an arbitrary file from each set and then replace all the files in the set with symlinks to the chosen file. It therefore doesn't make any sense to derive meaning from these symlinks.
9b10627
Commits on Oct 14, 2012
@philr philr Remove timezone and index Ruby data modules.
Load Ruby data modules from the TZInfo Data library instead of from TZinfo (i.e. from tzinfo/data instead of tzinfo).
Add a cut down copy of TZInfo Data under tzinfo/test to allow tests to be run without requiring TZInfo Data.
Remove utils/zdumptest*. This functionality is now included in TZInfo Data's test cases.
a0fd4c3
Commits on Oct 20, 2012
@philr philr Default to tzinfo-data if it is available, otherwise search for a zon…
…einfo directory.

Rename MissingDataSourceError to InvalidDataSource to better reflect what it is being used for).
d5df522
Commits on Oct 21, 2012
@philr philr The website is now in a separate location in svn. b114835
@philr philr Move the contents of the tzinfo directory to the top level. 6a8e77c
@philr philr Remove the (now empty) tzinfo directory. 25d5937
Commits on Nov 07, 2012
@philr philr Simplify code to ensure file permissions are correct in packaged rele…
…ases (now matches tzinfo-data's Rakefile).

Move gemspec into separate file.
Update copyright years in LICENSE file.
Remove no longer needed Timezone module building code from Rakefile.
722c9a6
Commits on Dec 27, 2012
@philr philr Replace deprecated Rake::RDocTask with RDoc::Task. 94406ad
@philr philr Fix the sh override that adds support for the tar owner and group opt…
…ions so that it works with Ruby 1.9.
edf8fb0
Commits on Dec 28, 2012
@philr philr Don't add the tzinfo lib directory to the search path in tzinfo.rb. 0f5888b
@philr philr Fix formatting. cb7ddb8
@philr philr Re-enable taint tests that previously didn't work on Ruby 1.9 due to …
…load path issues (now resolved).
d4fda4e
@philr philr Fix load_in_safe_mode test on Ruby 1.9.2 (already working in other Ru…
…by versions).
0d078da
@philr philr Remove out of date #todo. 156035e
Commits on Dec 30, 2012
@philr philr Read abbreviations in zoneinfo files as UTF-8 encoded strings. The tz…
…file man page doesn't specify an encoding, but the tzdata sources are all ASCII-encoded (UTF-8 is a superset of ASCII).
38e3dbc
Commits on Dec 31, 2012
@philr philr Fix TimezoneTransitionInfo#eql? incorrectly returning false when runn…
…ing on Ruby 2.0 (due to respond_to changes for protected methods).

Change eql? and == implementations to test the class of the passed in object instead of checking individual properties with 'respond_to?'.
03bc159
@philr philr Correct the description of the TimezoneTransitionInfo class. ab4097e
@philr philr Rename test method with duplicated name. 3f1dc87
@philr philr Change line endings from CRLF to LF. 42c5833
@philr philr Rename DataSource.current as DataSource.get. 0349425
Commits on Jan 01, 2013
@philr philr Add a test to confirm that zoneinfo files are opened in binary mode a…
…nd CRLF is not being translated to LF.

Remove an unecessary binmode call (file is opened with mode 'rb').
a6e2d6b
Commits on Jan 19, 2013
@philr philr Check abbreviation offsets and raise appropriate exceptions if invalid. ec9a120
Commits on Jan 20, 2013
@philr philr Refer to TZInfo Data as TZInfo::Data.
Changes to documentation.
1050b2b
Commits on Jan 21, 2013
@philr philr Documentation changes.
Remove #:nodoc: from TimezoneInfo and CountryInfo as these classes and needed to build a DataSource subclass.
bccabbe
Commits on Feb 09, 2013
@philr philr Preserve the nanoseconds of local timezone Time objects in TimeOrDate…
…Time.new (issue #29705).

Preserve microseconds when TimeOrDateTime converts between Time and DateTime.
Prefer using Time for comparison over Integer timestamps because it has more precision.
Simplify TimeOrDateTime#<=>.
1a10ac0
Commits on Feb 17, 2013
@philr philr Make TimeOrDateTime#add_with_convert use the range of Time on the run…
…time platform.
560c75d
@philr philr Fix tests for platforms not supporting negative Times. Transitions be…
…fore the epoch would be specified as DateTimes.
ba37695
@philr philr Correct documentation. 0a4620c
@philr philr Raise a RangeError when constructing a TimeOrDateTime with a timestam…
…p out of the supported range of Time on the runtime platform. Such TimeOrDateTime instances would not be able to be converted to Time or DateTime later.
4882d7d
@philr philr Fix missing '-' in timestamp check. bf5ea41
Commits on Feb 23, 2013
@philr philr Support transitions defined by both a timestamp and a DateTime. The t…
…imestamp is preferred unless it is out of the range of Time on the runtime platform.
bed1671
@philr philr Fix test_add_with_convert test case on 32-bit platforms that support …
…negative timestamps.

Add assert_nothing_raised to test cases that check for no exception.
b06d069
Commits on Mar 02, 2013
@philr philr Add utc_start_time, utc_end_time, local_start_time and local_end_time…
… instance methods to TimezonePeriod. These return an identical value as the existing utc_start, utc_end, local_start and local_end methods, but return Time instances instead of DateTime.

Make the start_transition, end_transition and offset properties of TimezonePeriod protected. To access properties of the period, callers should use other TimezonePeriod instance methods instead (issue #7655).
25da138
Commits on Mar 06, 2013
@philr philr Remove svn:executable property on files that shouldn't be executable. 019ecc9
@philr philr Remove unneeded require 'pathname'. 2ffe839
@philr philr Rename DataTimezoneInfo to TransitionDataTimezoneInfo.
Introduce a new superclass of TransitionDataTimezoneInfo named DataTimezoneInfo. This is a more generally useful superclass for any future DataSource implementations to be able to derive from.
Move the period_for_utc and period_for_local 'abstract' methods down from TimezoneInfo into the new DataTimezoneInfo - these methods don't make any sense for LinkedTimezoneInfo, so shouldn't have been defined at the TimezoneInfo level.
Add a create_timezone method to TimezoneInfo, implemented by DataTimezoneInfo and LinkedTimezoneInfo. Make Timezone.get call create_timezone instead of testing the class of the TimezoneInfo implementation returned by the DataSource.
Change the documentation for DataSource to indicate that load_timezone_info should return either a DataTimezoneInfo or a LinkedTimezoneInfo derivative.
a83da4b
@philr philr Add files missed from previous commit (new DataTimezoneInfo class and…
… tests).
b23263a
@philr philr Documentation changes. b64c2a5
Commits on Mar 07, 2013
@philr philr Make CountryInfo an 'abstract' superclass. Create separate implementa…
…tions for the Ruby data source (with a block to define timezones) and the zoneinfo data source (which passes in the timezone definitions).
c5741e2
@philr philr Add files missed from previous commit (new CountryInfo class and tests). 46a7657
@philr philr Fix test failures on 32-bit platforms. 19a8169
@philr philr ZoneinfoDataSource doesn't return LinkedTimezoneInfo for any timezone…
… on any platform.
adc1195
@philr philr Correct typo. 5a86f5b
Commits on Mar 29, 2013
@philr philr Fix test failure on JRuby by disabling SAFE level tests (JRuby doesn'…
…t support SAFE levels).
d19204b
Commits on Apr 01, 2013
@philr philr Fix reference to 'TZInfo Data' instead of 'TZInfo::Data'. 5327fc4
@philr philr Improve the message in the exception raised when no DataSource can be…
… found.
63e6606
Commits on May 05, 2013
@philr philr Fix test failure when the temporary directory is contained within a s…
…ymlinked path (e.g. as per the default configuration of Mac OS X).
ef9e85d
@philr philr Rename ZoneinfoDataSource.search_paths as search_path.
Support setting the search_path using a File::PATH_SEPARATOR delimited string.
dea2e39
@philr philr Add a post_install_message to the gem to inform users that the Ruby d…
…ata modules have been moved.
50f0a4e
@philr philr Use RubyGems.org for documentation link. 1cd60ae
Commits on May 19, 2013
@philr philr Update test data files. 471c7f0
@philr philr Add copyright notices. 4b42098
@philr philr Add releases from the 0.3 branch into the CHANGES file. 08244bb
@philr philr Fix rdoc markup issue. 6512655
Commits on May 27, 2013
@philr philr Delete release.txt. 5b7a0e4
@philr philr Remove duplicated class definition. 992439c
@philr philr Documentation corrections and improvements. abc702a
@philr philr Change descriptions, titles, etc. 2eb5c86
@philr philr Country codes are ISO 3166-1 alpha-2 codes. 119ab74
@philr philr Documentation changes. 5e95746
@philr philr Changes to DataSourceNotFound exception message. 2a2a6a1
Commits on Jun 02, 2013
@philr philr Improvements to Country documentation.
Include a modified version of the disclaimer from the tz database iso3166.tab file.
f927afb
@philr philr Release 1.0.0. 87a2bdc
@philr philr Shorten title. 207cf23
@philr philr Remove duplcated entries in CHANGES. dd73a0e
Commits on Jun 03, 2013
@philr philr Fix a test case failure when running tests from a directory containin…
…g a dot '.' in the path (issue #29751).
3122e62
@philr philr Corrections to documentation. 83335d2
Commits on Jun 22, 2013
@philr philr Release 1.0.1. 7c90f0e
Commits on Jul 28, 2013
@philr philr Convert svn:ignore properties to .gitignore files. b383e57
Commits on Aug 15, 2013
@philr philr Require rubygems if necessary in test case sub process.
If RubyGems is loaded in the current process, then require it in the
sub-process, as it may be needed in order to require dependencies.
85a6581
@philr philr Thread safety.
- Use ThreadSafe::Cache for the Timezone and Country caches.
- Use a Mutex to ensure that the default DataSource is created at once.
- Load the timezone and country indexes when ZoneInfoDataSource is
  created instead of when the indexes are first needed.

Resolves #29787.
e6fbfb5
Commits on Aug 25, 2013
@philr philr Add transitions_up_to and offsets_up_to methods to Timezone. 3f1364e
@philr philr Rename TimezoneOffsetInfo and TimezoneTransitionInfo.
- Rename TimezoneOffsetInfo to TimezoneOffset and TimezoneTransitionInfo
  to TimezoneTransition.
- Remove #:nodoc: from TimezoneOffset, TimezoneTransition and
  TimeOrDateTime. These classes are now part of the public interface
  (used by Timezone#transitions_up_to and Timezone#offsets_up_to).
87554d6
@philr philr Rename tc_timezone_offset_info.rb and tc_timezone_transition_info.rb.
Rename tc_timezone_offset_info.rb to tc_timezone_offset.rb and
tc_timezone_transition_info.rb to tc_timezone_transition.rb to match the
class names.
21096c4
@philr philr Fix documentation for LinkedTimezone#transitions_up_to.
Make documentation for LinkedTimezone#transitions_up_to match
DataTimezone#transitions_up_to.
c47f5cd
Commits on Aug 26, 2013
@philr philr Create TimezoneTransitionDefinition.
Introduce a new subclass of TimezoneTransition
(TimezoneTransitionDefinition) for use by the Ruby and zoneinfo data
sources.

TimezoneTransition is now abstract. TimezoneTransitionDefinition
contains the code to handle the deferred creation of the #at
TimeOrDateTime instance.
4b564a6
@philr philr Add convenience DateTime and Time methods to TimezoneTransition.
- Add datetime and time methods returning the value of at.
- Rename local_start and local_end to local_start_at and local_end_at.
- Introduce new local_start and local_end methods returning DateTime and
  add local_start_time and local_end_time methods returning Time
  (naming consistent with TimezonePeriod).
7b3e4c1
Commits on Sep 03, 2013
@philr philr Fix ZoneinfoDataSource with Strings that are tainted and frozen.
Untaint the result of joining the identifier with the path instead of
the identifier itself. If identifier is tainted and frozen, then
untainting it directly will give a 'can't modify frozen String' error.
Fixes #3.
cf77be3
Commits on Sep 08, 2013
@philr philr Ignore errors loading rdoc and rdoc/task.
rdoc.rb is not included in Ruby 1.8, rdoc/task.rb is not included prior
to Ruby 1.9.2 and on Ruby 1.9.2, the built-in version of rdoc/task.rb is
not compatible with later versions of rake - causing a RuntimeError to
be raised when required.
796dd92
@philr philr Add task descriptions. 6b14015
@philr philr Add a default rake task. 822601e
@philr philr Add a Gemfile.
Use the full path to the lib directory when running tests from Rake to
avoid an 'insecure operation - require' error on Ruby 1.8.7 caused by
bundler adding a tainted lib directory to the load path.
160654e
@philr philr Remove unnecessary setting of the TZ environment variable.
The TZ environment variable is set at a later stage by tests/ts_all.rb.
71b7c05
Commits on Sep 09, 2013
@philr philr Add Travis CI configuration file. 4d23113
@philr philr Add ruby-head to allow_failures.
ruby-head is currently unable to install the bundler gem, so cannot
build.
34c5ece
Commits on Sep 10, 2013
@philr philr Run the body of $SAFE tests on JRuby.
Apart from cases when testing whether a SecurityException is raised, run
the body of $SAFE tests without setting $SAFE.
4ad11ec
@philr philr Fix failing test cases on Rubinus and enable Travis CI rbx builds.
- Skip $SAFE tests (Rubinus doesn't support SAFE levels).
- Append an '-' argument when executing rbx as a sub-process to disable
  irb mode.
- Add to the load path and require dependencies in code rather than on
  the command line. Rubinus appears to ignore the -I and -r arguments
  when invoked with an '-' argument.
- Test whether Times are in utc using the utc? method instead of
  checking that zone returns 'UTC'. The Rubinus implementation of
  Time#zone returns 'GMT' instead of 'UTC'.
f371e39
Commits on Sep 12, 2013
@philr philr Support TZif3 format zoneinfo files.
The only difference is in the POSIX-TZ string used to handle instants
after the last transition stored in the file. This isn't currently used
by TZInfo, so only minor changes were required.
37f18e0
Commits on Sep 15, 2013
@philr philr Make Timezone and Country responsible for resetting caches in tests.
This also has the side effect of stopping RDoc from determining that
ThreadSafe is a child module of TZInfo::Timezone and TZInfo::Country.
31adc36
@philr philr Move RDoc options into gemspec. cb92bed
@philr philr Don't require 'rdoc'.
Requiring 'rdoc' causes an error running the rdoc task on Ruby 1.9.3
when the rdoc 4.0.1 gem is installed.
e29254f
@philr philr Support generating documentation using YARD. 8543a15
@philr philr Include .yardopts in packaged releases. a8a1bb9
Commits on Sep 21, 2013
@philr philr Change gemspec homepage to http://tzinfo.github.io. 924e9d9
@philr philr Document thread-safety plus other minor documentation corrections. 532432e
@philr philr Remove unnecessary require. 0a534d5
@philr philr Add note regarding 32-bit zoneinfo file restrictions. 73b4534
@philr philr Ignore +VERSION file in the zoneinfo directory (included on Mac OS X). 6b9e9e2
Commits on Sep 22, 2013
@philr philr Make TimezonePeriod properties public.
- Make start_transition and end_transition on TimezonePeriod public (now
  that they return classes that are part of the public interface).
- Add tests for start_transition, end_transition and offset (which was
  made public in an earlier commit).
- Remove unnecessary uses of send to call start_transition and offset.
2b75400
@philr philr Convert the CHANGES and README files to Markdown. bc80c06
@philr philr Replace old RubyForge links in the readme file. 11f14d4
@philr philr Add documentation comments for TZInfo and TZInfo::Data modules.
Avoids blank pages being generated by RDoc and the licence being used as
documentation by YARD.
efa8e65
@philr philr Remove unnecessary lib and test directories from list of files. 76c0e17
@philr philr Remove duplicate chmod call. 4a19726
@philr philr Don't include test/zoneinfo symlinks in release packages.
The test/zoneinfo/localtime and test/zoneinfo/UTC symlinks are created
by test_utils.rb when the tests are run.
c9d28bf
Commits on Sep 23, 2013
@philr philr Include the gemspec file in release packages.
The gemspec file is required by Rakefile.
9793966
@philr philr Remove the 'TZInfo Timezone Data has Moved' post install message. caf47b8
Commits on Sep 24, 2013
@philr philr Fix test cases on platforms that only support 32-bit Times. 5118250
@philr philr Simplify TZif header checks. bb033e5
Commits on Sep 25, 2013
@philr philr Add code signing certificate. fcaa36b
@philr philr Preparing v1.1.0. 682a569
Commits on Oct 01, 2013
@philr philr Add an extra newline to make YARD ignore the licence text. 2c5d7f8
Commits on Oct 08, 2013
@philr philr Add v0.3.38 to CHANGES.md. b850a2c
@philr philr Allow failures with jruby-head.
Currently giving a "Cannot remove unknown package ''" error whilst
setting up the jruby environment.
0e2eb93
Commits on Nov 11, 2013
@amatsuda amatsuda "require 'rational'" has been deprecated. So require rational only wh…
…en the Rational module has not already been loaded

see: e027896
a9f16a4
Commits on Nov 13, 2013
@philr philr Only "require 'rational'" if Rational is not already defined.
Ruby 1.9.2 deprecated "require 'rational'".
66c21e9
@amatsuda amatsuda Eliminate "warning: assigned but unused variable - info" 80218d1
@philr philr Fix test issues identified by 'assigned but unused variable' warnings. 83ffd30
Commits on Dec 07, 2013
@philr philr Fix test case failures on JRuby >= 1.7.5.
- DateTime on JRuby 1.7.5 only allows offsets of less than 1 day. Change
  uses of 1 day offsets to 1 hour.
- JRuby 1.7.5 considers DateTime instances that differ by less than 1
  millisecond to be equivalent
  (jruby/jruby#1311). Make tests that rely on
  being able to distinguish differences of 1 microsecond adapt if the
  platform doesn't support such comparisons.
2fc441e
@philr philr Update test environments.
- Add ruby-2.1.0-preview2.
- Add rbx-2.
- Remove no longer supported rbx-18mode and rbx-19mode.
c9bc2ac
@philr philr Depend on rubysl for Rubinus.
The Ruby standard library isn't available in Rubinus 2.2.0 unless rubysl
is loaded.
b8e1a07
@philr philr Add a test dependency on rubysl-test-unit.
The latest version of rubysl no longer depends on rubysl-test-unit.
85db1b5
Commits on Dec 31, 2013
@philr philr Test on Ruby 2.1.0. 80bc5c6
@philr philr Workaround for failing 1.8.7 build caused by RubyGems 2.2.0.
Use RubyGems 2.1.11 until a fix for RubyGems issue 763 is released.
d59d598
Commits on Jan 11, 2014
@philr philr Use time.utc? instead of time.zone == 'UTC'.
Distinguishes between actual UTC instances and local instances created
on systems using UTC as the local time zone.

Prevents Timezone#local_to_utc from returning local Time instances on
systems using UTC as the local time zone.

Fixes #13.
ac59588
@philr philr Remove duplicate assignments. f86f91c
@philr philr Make <=> methods return nil if passed a non-comparable argument.
Resolves test case failures on ruby 2.2.0dev (2014-01-11 trunk 44561)
due to Comparable#== no longer catching exceptions
(https://bugs.ruby-lang.org/issues/7688).
ae0e708
Commits on Feb 09, 2014
@hsbt hsbt use File.exist? instead of File.exists? a044763
@philr philr Update comments regarding JRuby comparisons. 427d6e1
@philr philr Remove workaround for RubyGems issue 763 (fixed in v2.2.1). d4932bd
Commits on Feb 26, 2014
@philr philr Use the latest Ruby 2.1 release. 3676437
@philr philr 2.1 still selects 2.1.0p0 on travis-ci, use 2.1.1 instead. f8b95a6
Commits on Mar 09, 2014
@philr philr Add v0.3.39 to CHANGES.md. 5e36f2a
Commits on Apr 11, 2014
@philr philr Improve the DataSourceNotFound error message.
Refer to adding to the Gemfile instead of just installing the gem (since
many people encountering this error will be using Rails).
eb8b1d7
Commits on Apr 17, 2014
@strzibny strzibny Update to Minitest 5 25c0cf6
Commits on Apr 21, 2014
@philr philr Migrate to newer Minitest assertion methods.
- Use refute_same instead of assert_not_same.
- Use message instead of build_message.
- Use assert instead of assert_block.
- Make assert_nothing_raised call assert instead of raising
  Minitest::Assertion directly (allows the assertion to get counted).
de117de
@philr philr Use a pessimistic version constraint for minitest. cabdcfb
@philr philr Remove no longer needed rubysl-test-unit dependency. 0cc9704
@philr philr Use minitest (v5) instead of Test::Unit. 56bbc43
@philr philr Raise minimum Ruby version to 1.8.7.
minitest v5 is not compatible with Ruby 1.8.6.
61c2119
Commits on Apr 26, 2014
@philr philr Add gem signing options if a key file is found.
Don't rely on the key being present in ~/.gem to auto-sign the gem.
0f52b02
Commits on Apr 27, 2014
@philr philr Fix typo. cca9d7d
Commits on Apr 30, 2014
@philr philr Support loading system zoneinfo data on FreeBSD, OpenBSD and Solaris.
- Support locating the iso3166.tab file when it is not included in the
  zoneinfo directory.
- Handle the four column iso3166 tab file format used by FreeBSD.
- Support finding the iso3166.tab and zone.tab files using alternative
  names on Solaris (tab/country.tab and tab/zone_sun.tab).
- Support loading country zone data from the non-standard five column
  zone_sun.tab format.

Resolves #15.
cd3377f
Commits on May 05, 2014
@philr philr Add link to DataSourceNotFound help page in exception message. 93e95b7
@philr philr Remove licence text from individual files. 8225428
@philr philr Update copyright year. 406b11b
@philr philr Load iso3166.tab and zone.tab files as UTF-8. 61fdd43
Commits on May 06, 2014
@philr philr Fix typo. 6a9fa44
@philr philr Test the contents of the file independently of the open_file method. 14ed998
@philr philr Fix test case failures on Windows. 1a9e30a
Commits on May 07, 2014
@philr philr Add a constructor to CountryTimezone that accepts Rationals.
Rename the existing CountryTimezone.new method new!. new! is now used
internally by RubyDataSource, passing the longitude and latitude as a
numerator and denominator in their lowest forms (for best performance on
Ruby 1.8).

ZoneinfoDataSource already uses Rationals to calculate the latitude and
longitude. It now calls CountryTimezone.new, passing the Rationals.
2a083cc
Commits on May 11, 2014
@philr philr Add canonical_identifier and canonical_zone methods to Timezone.
Closes #16.
3d84ce4
@philr philr Use assert_nothing_raised. 0844ba6
@philr philr Test using the latest Ruby 2.1 release.
Ruby is now using semantic versioning:
https://www.ruby-lang.org/en/news/2013/12/21/semantic-versioning-after-2-1-0/

Travis CI supports referencing ruby-2.1 following this update:
http://blog.travis-ci.com/2014-04-28-upcoming-build-environment-updates/
849be7e
Commits on May 25, 2014
@philr philr Run tests with warnings enabled. fabd852
@philr philr Fix instance variable not initialized warnings. 02bbbf8
@philr philr Minor changes to the readme file.
- Add badges for RubyGems and Travis CI.
- Link to the DataSourceNotFound wiki page.
- Code formatting.
093bcd0
Commits on May 26, 2014
@philr philr Preparing v1.2.0. 679a21e
Commits on May 31, 2014
@philr philr Fix handling zoneinfo files generated by zic 2014c and later.
Fix an error in the conversion of -2**63 from an unsigned integer.

Ignore timestamps that are either far in the past or far in the future
and which currently cause problems for the transition index. This is
primarily intended to ignore the far in the past transition added in zic
2014c (at timestamp -2**63 in zic 2014c and at approximate time of the
big bang from zic 2014d).
f4f019a
@philr philr Documentation correction.
TZif3 files have been supported for some time.
909db7c
@philr philr Move the last -ve transition to the epoch on 32-bit +ve-only platforms.
On platforms that only support positive 32-bit timestamps, move the last
negative 32-bit timestamp to the epoch. This ensures that conversions
are accurate from the epoch onwards instead of just from the first
transition onwards.
e3fd9ae
@philr philr Update test data files to version 2014d.
Zoneinfo files were generated with zic version 2014d.
d43ab8f
@philr philr Re-enable the test_time_boundary test on all platforms.
This will now succeed on platforms with 32-bit positive only timestamps.
50e188d
@philr philr Prevent YARD from reporting exceptions on abstract methods.
Move the exception raising into a separate method. This prevents YARD
from detecting the exception and reporting it in the documentation.
Since the exceptions will never occur under normal usage, it is
unhelpful for them to appear in the documentation.
eefd0b5
@philr philr Remove unnecessary .new when raising exceptions. bf7e206
@philr philr Use seek instead of read to skip the 32-bit section. 08ba378
Commits on Jun 01, 2014
@philr philr Preparing v1.2.1. 90d058a
Commits on Jul 22, 2014
@ugisozols ugisozols Fix typo and remove redundant word. 0480053
Commits on Aug 08, 2014
@philr philr Merge pull request #24 from ugisozols/fix_typo
Fix typo and remove redundant word.
b78bf89
@philr philr Return a unique set of zones/identifiers.
The zone1970.tab file in tzdata 2014f allows the same time zone to be
defined under multiple countries.

The test case already checks for uniqueness.
6fad456
@philr philr Update test data to tzdata 2014f (TZInfo::Data v1.2014.6).
Australia/Melbourne abbreviations have now changed to AEST/AEDT.
7564bcc
@philr philr Update countries index following ordering changes in tzinfo-data. c3a62d7
@philr philr Load from zone1970.tab instead of zone.tab if it exists.
zone1970.tab is a new file introduced in tzdata 2014f. zone.tab is now
deprecated and will cease to be distributed at some point.
1fb860d
@philr philr Document ordering of country zones following zone1970.tab change.
Minor changes to documentation of private methods.
08b90b4
@philr philr Preparing v1.2.2. f1c8830
Commits on Sep 28, 2014
@philr philr Replace expired gem signing certificate. 61654ea
Commits on Oct 01, 2014
@marshallshen marshallshen Add TZInfo::Version 2fc856c
@philr philr Make VERSION follow standard Ruby naming convention for constants. 1fec9a1
@philr philr Make version.rb require independent of the current working directory. e42780d
@philr philr Require tzinfo/version from tzinfo.rb.
Read the contents of version.rb from the gemspec instead of requiring
the file. This prevents constant redefined warnings on Ruby 1.8.7.
2741c8f
Commits on Oct 12, 2014
@nurse nurse fix %Z replacing with many percents 2e207c3
@nurse nurse replace %z like %Z
%z, timezone offset, requires preprocess
d49d995
Commits on Oct 14, 2014
@philr philr Improve documentation for Timezone#strftime. 7b07641
Commits on Nov 11, 2014
@philr philr Remove :rbx section.
Rubinius 2.2.5 and later include the standard library gems.
94f9718
@philr philr Disable parallel bundle installs.
Travis CI uses `--jobs=3` by default, which causes failures on rbx.
travis-ci/travis-ci#2821
681619c
Commits on Nov 30, 2014
@philr philr Revert "Disable parallel bundle installs."
This reverts commit 681619c.

The jobs parameter is no longer specified by default on Rubinius.
3c5e15d
Commits on Dec 29, 2014
@philr philr Add Ruby 2.2. b7595b6
@philr philr Set sudo to false to use Travis CI Container-Based Infrastructure. 7730d52
@philr philr Enable bundle caching. 64aafad
Commits on Jan 31, 2015
@philr philr Support changes to tar execution in Rake 10.4.
Arguments are now passed as separate Array elements.
fc62d75