Compare commits

...

46 Commits

Author SHA1 Message Date
Dirkjan Bussink
529749e01b Bump Rails version 2014-06-02 09:55:18 +02:00
Dirkjan Bussink
e9b3b09e08 Merge pull request #70 from github/dbussink-update-tzinfo
Update vendored tzinfo
2014-06-02 09:54:55 +02:00
Dirkjan Bussink
1992a86b2e Fix vendor path 2014-06-02 09:52:09 +02:00
Dirkjan Bussink
443815c4fe Bump vendored tzinfo to latest 0.3.x version 2014-06-02 09:47:28 +02:00
Greg Ose
52abaed4b3 Merge pull request #69 from github/allow-false-in-session
Allow false in session
2014-05-23 15:43:44 -05:00
Greg Ose
5b0053b2a8 bump rails version 2014-05-23 11:59:56 -05:00
Greg Ose
1b98a0d72f delete can take a block and allow nil to be returned 2014-05-20 13:35:41 -05:00
Greg Ose
1f59a8dfe8 also stringify keys on update 2014-05-16 15:26:41 -05:00
Greg Ose
e1011ea095 Allow a false value to be returned from symbol keyed session 2014-05-16 12:57:41 -05:00
Greg Ose
730e6a273c Merge pull request #64 from github/json-sessions
Support custom serialization for Session::CookieStore
2014-05-16 00:06:44 -05:00
Greg Ose
aa1b6d1284 bump rails version 2014-05-15 22:49:19 -05:00
Greg Ose
5f6c95e29e Merge branch '2-3-github' into json-sessions 2014-05-13 15:29:47 -05:00
Charlie Somerville
7403667b89 Merge pull request #67 from github/2-3-github+cve-2014-0130
CVE-2014-0130 protection
2014-05-10 00:52:08 +10:00
Charlie Somerville
1a45ec57bf CVE-2014-0130 protection 2014-05-09 23:55:20 +10:00
Greg Ose
9070fbcffe Revert nested hash indifference, swap delete order
Upstream doesnt support nested hashes having indifferent access, we
should stay consistent. Swap order for returned value in session hash.
2014-05-07 14:27:52 -05:00
Greg Ose
364b534815 support indifferent access for hashes stored within FlashHash 2014-04-30 13:18:28 -05:00
Greg Ose
14da203564 indifferent delete 2014-04-29 10:37:53 -05:00
Greg Ose
f46a4bab08 indifferent access to flash hash 2014-04-29 10:21:16 -05:00
Greg Ose
198aa6ef99 Update tests to load flash from session value 2014-04-28 15:07:52 -05:00
Greg Ose
b3ae51c9fc Add serializer option to cookie store and use Rails 4 Hash flash
Backport for Rails 4 flash hash based on https://github.com/envato/rails_4_session_flash_backport
2014-04-28 14:42:24 -05:00
Patrick Toomey
1e6e438f6e Update RAILS_VERSION 2014-04-24 10:45:25 -05:00
Patrick Toomey
2b01f832a3 Merge pull request #63 from github/memoize-nil-check
make sure nil isn't memoized and frozen
2014-04-24 10:44:47 -05:00
Patrick Toomey
1e5fda763e backport memoiziation from 3.0 2014-04-24 10:24:04 -05:00
Dirkjan Bussink
7c3d4ec43c Bump version 2014-03-31 13:43:08 +02:00
Dirkjan Bussink
7343ed7b05 Merge pull request #53 from github/dbussink/no-toplevel-exception-rescue
We shouldn't try to rescue every type of exception here
2014-03-31 11:42:02 +00:00
Dirkjan Bussink
2a70c9691d We shouldn't try to rescue every type of exception here 2014-03-31 13:35:28 +02:00
Dirkjan Bussink
a141d9de0d bump 2.3.14.github41 2014-03-27 13:55:26 +01:00
Dirkjan Bussink
74492f43a8 Merge pull request #51 from github/dbussink/fix-logging-frozen-string-query
Dup string before changing encoding because it might be frozen
2014-03-27 12:53:25 +00:00
Dirkjan Bussink
c2894170bf Dup string before changing encoding because it might be frozen
Calling String#force_encoding! on a frozen string throws an exception.
By dupping the string we prevent this from happening.
2014-03-27 13:47:08 +01:00
Charlie Somerville
057aed6e18 Merge pull request #48 from github/2-3-kill-backtick-monkey-patch
[2.3] Kill Object#` monkey patch
2014-02-23 23:20:47 +11:00
Charlie Somerville
02fc012b42 kill Object#` monkey patch 2014-02-23 23:17:44 +11:00
Mastahyeti
4fdaf21b28 bump 2.3.14.github40 2014-02-18 15:28:32 -06:00
Ben Toews
35b871fbcd Merge pull request #47 from github/CVE-2014-0081
CVE-2014-0081
2014-02-18 15:28:00 -06:00
Mastahyeti
a5697840d6 escape format for CVE-2014-0081 2014-02-18 15:25:05 -06:00
Andy Lindeman
d0e554d231 Bumps to github39 2014-02-14 00:12:09 -05:00
Andy Lindeman
d38b7664cc github38 2014-02-13 22:36:14 -05:00
Andy Lindeman
e4cd9caf02 Merge pull request #46 from github/runtime_header
Removes the X-Runtime header from ActionController::Benchmarking
2014-02-13 22:34:18 -05:00
Andy Lindeman
89e4514704 Removes the X-Runtime header from ActionController::Benchmarking
The `Rack::Runtime` middleware now provides this header
2014-02-13 22:25:27 -05:00
Joshua Peek
0a0d975f51 github37 2014-02-11 23:36:30 -06:00
Joshua Peek
62daf4cb6f Merge pull request #45 from github/rack-session-skip
Backport Rack session skip
2014-02-11 23:34:52 -06:00
Joshua Peek
24711e1e29 Backport env['rack.session.options'][:skip] 2014-02-11 23:22:39 -06:00
Charlie Somerville
cf8f36930c Merge pull request #44 from github/builder-3.2.2
Builder 3.2.2
2014-01-20 19:55:16 -08:00
Charlie Somerville
d622643e47 fix tests 2014-01-21 14:30:00 +11:00
Charlie Somerville
3f0241a613 use assert_includes so we get a useful failure message 2014-01-21 14:28:01 +11:00
Charlie Somerville
38a7432590 add builder 3.2.2 to Gemfile.sh and use that instead of vendored copy 2014-01-21 14:22:20 +11:00
Charlie Somerville
1220d3c3ed delete vendored builder 2.1.2 2014-01-21 14:16:36 +11:00
673 changed files with 35666 additions and 3734 deletions

View File

@@ -6,3 +6,4 @@ gem install rack -v=1.4.5
gem install erubis -v=2.7.0
gem install json -v=1.8.0
gem install i18n -v=0.6.9
gem install builder -v=3.2.2

View File

@@ -1 +1 @@
2.3.14.github36
2.3.14.github47

View File

@@ -1320,7 +1320,14 @@ module ActionController #:nodoc:
render
end
CVE_2014_0310 = Class.new(StandardError)
def perform_action
# CVE-2014-0130 protection
if action_name.include? "/"
raise CVE_2014_0310
end
if action_methods.include?(action_name)
send(action_name)
default_render unless performed?

View File

@@ -87,7 +87,6 @@ module ActionController #:nodoc:
log_message << " [#{complete_request_uri rescue "unknown"}]"
logger.info(log_message)
response.headers["X-Runtime"] = "%.0f" % ms
else
perform_action_without_benchmark
end

View File

@@ -45,37 +45,74 @@ module ActionController #:nodoc:
end
def []=(k, v)
k = k.to_s
@flash[k] = v
@flash.discard(k)
v
end
def [](k)
@flash[k]
@flash[k.to_s]
end
end
class FlashHash < Hash
def self.from_session_value(value)
flash = case value
when FlashHash # Rails 2.3
value
when Hash # Rails 4.0
flashes = value['flashes'] || {}
flashes.stringify_keys!
discard = value['discard'] || []
discard = discard.map do |item|
item.kind_of?(Symbol) ? item.to_s : item
end
used = Hash[flashes.keys.map{|k| [k, discard.include?(k)] }]
new_from_values(flashes, used)
else
new
end
flash
end
def initialize #:nodoc:
super
@used = {}
end
def to_session_value
return nil if empty?
rails_3_discard_list = @used.map{|k,v| k if v}.compact
{'discard' => rails_3_discard_list, 'flashes' => Hash[to_a]}
end
def []=(k, v) #:nodoc:
k = k.to_s
keep(k)
super
super(k, v)
end
def [](k)
super(k.to_s)
end
def delete(k)
super(k.to_s)
end
def update(h) #:nodoc:
h.stringify_keys!
h.keys.each { |k| keep(k) }
super
super(h)
end
alias :merge! :update
def replace(h) #:nodoc:
@used = {}
super
super(h.stringify_keys)
end
# Sets a flash that will not be available to the next action, only to the current.
@@ -126,8 +163,7 @@ module ActionController #:nodoc:
end
def store(session, key = "flash")
return if self.empty?
session[key] = self
session[key] = to_session_value
end
private
@@ -138,11 +174,20 @@ module ActionController #:nodoc:
# use('msg', false) # marks the "msg" entry as unused (keeps it around for one more action)
def use(k=nil, v=true)
unless k.nil?
@used[k] = v
@used[k.to_s] = v
else
keys.each{ |key| use(key, v) }
end
end
def self.new_from_values(flashes, used)
new.tap do |flash_hash|
flashes.each do |k, v|
flash_hash[k] = v
end
flash_hash.instance_variable_set("@used", used)
end
end
end
module InstanceMethods #:nodoc:
@@ -168,11 +213,11 @@ module ActionController #:nodoc:
if notice = response_status_and_flash.delete(:notice)
flash[:notice] = notice
end
if other_flashes = response_status_and_flash.delete(:flash)
flash.update(other_flashes)
end
redirect_to_without_flash(options, response_status_and_flash)
end
@@ -181,19 +226,19 @@ module ActionController #:nodoc:
# to put a new one.
def flash #:doc:
if !defined?(@_flash)
@_flash = session["flash"] || FlashHash.new
@_flash = Flash::FlashHash.from_session_value(session["flash"])
@_flash.sweep
end
@_flash
end
# Convenience accessor for flash[:alert]
def alert
flash[:alert]
end
# Convenience accessor for flash[:alert]=
def alert=(message)
flash[:alert] = message
@@ -203,7 +248,7 @@ module ActionController #:nodoc:
def notice
flash[:notice]
end
# Convenience accessor for flash[:notice]=
def notice=(message)
flash[:notice] = message

View File

@@ -2,7 +2,7 @@ require 'rack/utils'
module ActionController
module Session
class AbstractStore
class AbstractStore
ENV_SESSION_KEY = 'rack.session'.freeze
ENV_SESSION_OPTIONS_KEY = 'rack.session.options'.freeze
@@ -55,17 +55,17 @@ module ActionController
def [](key)
load_for_read!
super
fetch(key.to_s, super(key))
end
def has_key?(key)
load_for_read!
super
super(key.to_s) || super(key)
end
def []=(key, value)
load_for_write!
super
super(key.to_s, value)
end
def clear
@@ -82,12 +82,19 @@ module ActionController
def update(hash)
load_for_write!
super
super(hash.stringify_keys)
end
def delete(key)
load_for_write!
super
if has_key? key
value = self[key]
super(key)
super(key.to_s)
value
else
super
end
end
def data
@@ -119,7 +126,7 @@ module ActionController
end
private
def load_for_read!
load! if !loaded? && exists?
end
@@ -183,7 +190,7 @@ module ActionController
request = ActionController::Request.new(env)
return response if (options[:secure] && !request.ssl?)
session_data.send(:load!) if session_data.is_a?(AbstractStore::SessionHash) && !session_data.loaded?
sid = options[:id] || generate_sid
@@ -205,12 +212,12 @@ module ActionController
end
private
def prepare!(env)
env[ENV_SESSION_KEY] = SessionHash.new(self, env)
env[ENV_SESSION_OPTIONS_KEY] = OptionsHash.new(self, env, @default_options)
end
def generate_sid
ActiveSupport::SecureRandom.hex(16)
end
@@ -222,7 +229,7 @@ module ActionController
[sid, session]
end
end
def extract_session_id(env)
stale_session_check! do
request = Rack::Request.new(env)
@@ -235,7 +242,7 @@ module ActionController
def current_session_id(env)
env[ENV_SESSION_OPTIONS_KEY][:id]
end
def exists?(env)
current_session_id(env).present?
end
@@ -247,11 +254,11 @@ module ActionController
def set_session(env, sid, session_data)
raise '#set_session needs to be implemented.'
end
def destroy(env)
raise '#destroy needs to be implemented.'
end
module SessionUtils
private
def stale_session_check!

View File

@@ -37,7 +37,7 @@ module ActionController
# Note that changing digest or secret invalidates all existing sessions!
class CookieStore
include AbstractStore::SessionUtils
# Cookies can typically store 4096 bytes.
MAX = 4096
SECRET_MIN_LENGTH = 30 # characters
@@ -86,7 +86,8 @@ module ActionController
@secret = options.delete(:secret).freeze
@digest = options.delete(:digest) || 'SHA1'
@verifier = verifier_for(@secret, @digest)
@serializer = options.delete(:serializer) || Marshal
@verifier = verifier_for(@secret, @digest, @serializer)
@default_options = DEFAULT_OPTIONS.merge(options).freeze
@@ -95,14 +96,21 @@ module ActionController
def call(env)
prepare!(env)
status, headers, body = @app.call(env)
session_data = env[ENV_SESSION_KEY]
options = env[ENV_SESSION_OPTIONS_KEY]
request = ActionController::Request.new(env)
if !(options[:secure] && !request.ssl?) && (!session_data.is_a?(AbstractStore::SessionHash) || session_data.loaded? || options[:expire_after])
# Backport standard Rack::Session::Cookie behavior
# Skip writing session if env['rack.session.options'][:skip] is set
if options[:skip]
return [status, headers, body]
end
session_data.send(:load!) if session_data.is_a?(AbstractStore::SessionHash) && !session_data.loaded?
persistent_session_id!(session_data)
@@ -122,7 +130,7 @@ module ActionController
end
private
def prepare!(env)
env[ENV_SESSION_KEY] = AbstractStore::SessionHash.new(self, env)
env[ENV_SESSION_OPTIONS_KEY] = AbstractStore::OptionsHash.new(self, env, @default_options)
@@ -131,13 +139,13 @@ module ActionController
def load_session(env)
data = unpacked_cookie_data(env)
data = persistent_session_id!(data)
[data[:session_id], data]
[data["session_id"] || data[:session_id], data]
end
def extract_session_id(env)
if data = unpacked_cookie_data(env)
persistent_session_id!(data) unless data.empty?
data[:session_id]
data["session_id"] || data[:session_id]
else
nil
end
@@ -207,9 +215,9 @@ module ActionController
end
end
def verifier_for(secret, digest)
def verifier_for(secret, digest, serializer)
key = secret.respond_to?(:call) ? secret.call : secret
ActiveSupport::MessageVerifier.new(key, digest: digest)
ActiveSupport::MessageVerifier.new(key, digest: digest, serializer: serializer)
end
def generate_sid
@@ -225,12 +233,12 @@ module ActionController
end
def inject_persistent_session_id(data)
requires_session_id?(data) ? { :session_id => generate_sid } : {}
requires_session_id?(data) ? { "session_id" => generate_sid } : {}
end
def requires_session_id?(data)
if data
data.respond_to?(:key?) && !data.key?(:session_id)
data.respond_to?(:key?) && !(data.key?("session_id") || data.key?(:session_id))
else
true
end

View File

@@ -219,7 +219,7 @@ module ActionController #:nodoc:
# A shortcut to the flash. Returns an empty hash if no session flash exists.
def flash
session['flash'] || {}
ActionController::Flash::FlashHash.from_session_value(session["flash"]) || {}
end
# Do we have a flash?

View File

@@ -73,6 +73,8 @@ module ActionView
def number_to_currency(number, options = {})
options.symbolize_keys!
options[:format] = ERB::Util.html_escape(options[:format]) if options[:format]
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
currency = I18n.translate(:'number.currency.format', :locale => options[:locale], :raise => true) rescue {}
defaults = defaults.merge(currency)

View File

@@ -3,6 +3,12 @@ require 'abstract_unit'
class NumberHelperTest < ActionView::TestCase
tests ActionView::Helpers::NumberHelper
def test_number_helpers_escape_delimiter_and_separator
assert_equal "$1&lt;script&gt;&lt;/script&gt;01", number_to_currency(1.01, :separator => "<script></script>")
assert_equal "$1&lt;script&gt;&lt;/script&gt;000.00", number_to_currency(1000, :delimiter => "<script></script>")
assert_equal "&lt;script&gt;1,000.00$&lt;/script&gt;", number_to_currency(1000, :format => "<script>%n%u</script>")
end
def test_number_to_phone
assert_equal("555-1234", number_to_phone(5551234))
assert_equal("800-555-1212", number_to_phone(8005551212))

View File

@@ -195,7 +195,9 @@ module ActiveRecord
def log_info(sql, name, ms)
if @logger && @logger.debug?
name = '%s (%.1fms)' % [name || 'SQL', ms]
sql.force_encoding 'binary' if sql.respond_to?(:force_encoding)
if sql.respond_to?(:force_encoding)
sql = sql.dup.force_encoding 'binary'
end
@logger.debug(format_log_entry(name, sql.squeeze(' ')))
end
end
@@ -212,13 +214,7 @@ module ActiveRecord
log_info(sql, name, 0)
nil
end
rescue SystemExit, SignalException, NoMemoryError => e
# Don't re-wrap these exceptions. They are probably not being caused by invalid
# sql, but rather some external stimulus beyond the responsibilty of this code.
# Additionaly, wrapping these exceptions with StatementInvalid would lead to
# meaningful loss of data, such as losing SystemExit#status.
raise e
rescue Exception => e
rescue => e
# Log message and raise exception.
# Set last_verification to 0, so that connection gets verified
# upon reentering the request loop

View File

@@ -1,5 +1,4 @@
require 'active_support/core_ext/kernel/daemonizing'
require 'active_support/core_ext/kernel/reporting'
require 'active_support/core_ext/kernel/agnostics'
require 'active_support/core_ext/kernel/requires'
require 'active_support/core_ext/kernel/debugger'

View File

@@ -1,11 +0,0 @@
class Object
# Makes backticks behave (somewhat more) similarly on all platforms.
# On win32 `nonexistent_command` raises Errno::ENOENT; on Unix, the
# spawned shell prints a message to stderr and sets $?. We emulate
# Unix on the former but not the latter.
def `(command) #:nodoc:
super
rescue Errno::ENOENT => e
STDERR.puts "#$0: #{e}"
end
end

View File

@@ -1,3 +1,6 @@
require 'active_support/core_ext/kernel/singleton_class'
require 'active_support/core_ext/module/aliasing'
module ActiveSupport
module Memoizable
def self.memoized_ivar_for(symbol)
@@ -41,10 +44,10 @@ module ActiveSupport
end
end
def flush_cache(*syms, &block)
def flush_cache(*syms)
syms.each do |sym|
(methods + private_methods + protected_methods).each do |m|
if m.to_s =~ /^_unmemoized_(#{sym})/
if m.to_s =~ /^_unmemoized_(#{sym.to_s.gsub(/\?\Z/, '\?')})/
ivar = ActiveSupport::Memoizable.memoized_ivar_for($1)
instance_variable_get(ivar).clear if instance_variable_defined?(ivar)
end
@@ -69,7 +72,7 @@ module ActiveSupport
if instance_method(:#{symbol}).arity == 0 # if instance_method(:mime_type).arity == 0
def #{symbol}(reload = false) # def mime_type(reload = false)
if reload || !defined?(#{memoized_ivar}) || #{memoized_ivar}.empty? # if reload || !defined?(@_memoized_mime_type) || @_memoized_mime_type.empty?
#{memoized_ivar} = [#{original_method}.freeze] # @_memoized_mime_type = [_unmemoized_mime_type.freeze]
#{memoized_ivar} = [#{original_method}] # @_memoized_mime_type = [_unmemoized_mime_type]
end # end
#{memoized_ivar}[0] # @_memoized_mime_type[0]
end # end
@@ -82,7 +85,7 @@ module ActiveSupport
if !reload && #{memoized_ivar}.has_key?(args) # if !reload && @_memoized_mime_type.has_key?(args)
#{memoized_ivar}[args] # @_memoized_mime_type[args]
elsif #{memoized_ivar} # elsif @_memoized_mime_type
#{memoized_ivar}[args] = #{original_method}(*args).freeze # @_memoized_mime_type[args] = _unmemoized_mime_type(*args).freeze
#{memoized_ivar}[args] = #{original_method}(*args) # @_memoized_mime_type[args] = _unmemoized_mime_type(*args)
end # end
else # else
#{original_method}(*args) # _unmemoized_mime_type(*args)

View File

@@ -1,11 +1,6 @@
# Prefer gems to the bundled libs.
require 'rubygems'
begin
gem 'builder', '~> 2.1.2'
rescue Gem::LoadError
$:.unshift "#{File.dirname(__FILE__)}/vendor/builder-2.1.2"
end
require 'builder'
begin
@@ -14,7 +9,7 @@ rescue Gem::LoadError
$:.unshift "#{File.dirname(__FILE__)}/vendor/memcache-client-1.7.4"
end
$:.unshift "#{File.dirname(__FILE__)}/vendor/tzinfo-0.3.12"
$:.unshift "#{File.dirname(__FILE__)}/vendor/tzinfo-0.3.39/lib"
require 'i18n'

View File

@@ -1,13 +0,0 @@
#!/usr/bin/env ruby
#--
# Copyright 2004 by Jim Weirich (jim@weirichhouse.org).
# All rights reserved.
# Permission is granted for use, copying, modification, distribution,
# and distribution of modified versions of this work as long as the
# above copyright notice is included.
#++
require 'builder/xmlmarkup'
require 'builder/xmlevents'

View File

@@ -1,248 +0,0 @@
#!/usr/bin/env ruby
#--
# Copyright 2004, 2005 by Jim Weirich (jim@weirichhouse.org).
# Copyright 2005 by Scott Barron (scott@elitists.net).
# All rights reserved.
#
# Permission is granted for use, copying, modification, distribution,
# and distribution of modified versions of this work as long as the
# above copyright notice is included.
#
# Much of this is taken from Jim's work in xmlbase.rb and xmlmarkup.rb.
# Documentation has also been copied and pasted and modified to reflect
# that we're building CSS here instead of XML. Jim is conducting the
# orchestra here and I'm just off in the corner playing a flute.
#++
# Provide a flexible and easy to use Builder for creating Cascading
# Style Sheets (CSS).
module Builder
# Create a Cascading Style Sheet (CSS) using Ruby.
#
# Example usage:
#
# css = Builder::CSS.new
#
# text_color = '#7F7F7F'
# preferred_fonts = 'Helvetica, Arial, sans_serif'
#
# css.comment! 'This is our stylesheet'
# css.body {
# background_color '#FAFAFA'
# font_size 'small'
# font_family preferred_fonts
# color text_color
# }
#
# css.id!('navbar') {
# width '500px'
# }
#
# css.class!('navitem') {
# color 'red'
# }
#
# css.a :hover {
# text_decoration 'underline'
# }
#
# css.div(:id => 'menu') {
# background 'green'
# }
#
# css.div(:class => 'foo') {
# background 'red'
# }
#
# This will yield the following stylesheet:
#
# /* This is our stylesheet */
# body {
# background_color: #FAFAFA;
# font_size: small;
# font_family: Helvetica, Arial, sans_serif;
# color: #7F7F7F;
# }
#
# #navbar {
# width: 500px;
# }
#
# .navitem {
# color: red;
# }
#
# a:hover {
# text_decoration: underline;
# }
#
# div#menu {
# background: green;
# }
#
# div.foo {
# background: red;
# }
#
class CSS < BasicObject
# Create a CSS builder.
#
# out:: Object receiving the markup.1 +out+ must respond to
# <tt><<</tt>.
# indent:: Number of spaces used for indentation (0 implies no
# indentation and no line breaks).
#
def initialize(indent=2)
@indent = indent
@target = []
@parts = []
@library = {}
end
def +(part)
_join_with_op! '+'
self
end
def >>(part)
_join_with_op! ''
self
end
def >(part)
_join_with_op! '>'
self
end
def |(part)
_join_with_op! ','
self
end
# Return the target of the builder
def target!
@target * ''
end
# Create a comment string in the output.
def comment!(comment_text)
@target << "/* #{comment_text} */\n"
end
def id!(arg, &block)
_start_container('#'+arg.to_s, nil, block_given?)
_css_block(block) if block
_unify_block
self
end
def class!(arg, &block)
_start_container('.'+arg.to_s, nil, block_given?)
_css_block(block) if block
_unify_block
self
end
def store!(sym, &block)
@library[sym] = block.to_proc
end
def group!(*args, &block)
args.each do |arg|
if arg.is_a?(::Symbol)
instance_eval(&@library[arg])
else
instance_eval(&arg)
end
_text ', ' unless arg == args.last
end
if block
_css_block(block)
_unify_block
end
end
def method_missing(sym, *args, &block)
sym = "#{sym}:#{args.shift}" if args.first.kind_of?(::Symbol)
if block
_start_container(sym, args.first)
_css_block(block)
_unify_block
elsif @in_block
_indent
_css_line(sym, *args)
_newline
return self
else
_start_container(sym, args.first, false)
_unify_block
end
self
end
# "Cargo culted" from Jim who also "cargo culted" it. See xmlbase.rb.
def nil?
false
end
private
def _unify_block
@target << @parts * ''
@parts = []
end
def _join_with_op!(op)
rhs, lhs = @target.pop, @target.pop
@target << "#{lhs} #{op} #{rhs}"
end
def _text(text)
@parts << text
end
def _css_block(block)
_newline
_nested_structures(block)
_end_container
_end_block
end
def _end_block
_newline
_newline
end
def _newline
_text "\n"
end
def _indent
_text ' ' * @indent
end
def _nested_structures(block)
@in_block = true
self.instance_eval(&block)
@in_block = false
end
def _start_container(sym, atts = {}, with_bracket = true)
selector = sym.to_s
selector << ".#{atts[:class]}" if atts && atts[:class]
selector << '#' + "#{atts[:id]}" if atts && atts[:id]
@parts << "#{selector}#{with_bracket ? ' {' : ''}"
end
def _end_container
@parts << "}"
end
def _css_line(sym, *args)
_text("#{sym.to_s.gsub('_','-')}: #{args * ' '};")
end
end
end

View File

@@ -1,115 +0,0 @@
#!/usr/bin/env ruby
# The XChar library is provided courtesy of Sam Ruby (See
# http://intertwingly.net/stories/2005/09/28/xchar.rb)
# --------------------------------------------------------------------
# If the Builder::XChar module is not currently defined, fail on any
# name clashes in standard library classes.
module Builder
def self.check_for_name_collision(klass, method_name, defined_constant=nil)
if klass.instance_methods.include?(method_name.to_s)
fail RuntimeError,
"Name Collision: Method '#{method_name}' is already defined in #{klass}"
end
end
end
if ! defined?(Builder::XChar)
Builder.check_for_name_collision(String, "to_xs")
Builder.check_for_name_collision(Fixnum, "xchr")
end
######################################################################
module Builder
####################################################################
# XML Character converter, from Sam Ruby:
# (see http://intertwingly.net/stories/2005/09/28/xchar.rb).
#
module XChar # :nodoc:
# See
# http://intertwingly.net/stories/2004/04/14/i18n.html#CleaningWindows
# for details.
CP1252 = { # :nodoc:
128 => 8364, # euro sign
130 => 8218, # single low-9 quotation mark
131 => 402, # latin small letter f with hook
132 => 8222, # double low-9 quotation mark
133 => 8230, # horizontal ellipsis
134 => 8224, # dagger
135 => 8225, # double dagger
136 => 710, # modifier letter circumflex accent
137 => 8240, # per mille sign
138 => 352, # latin capital letter s with caron
139 => 8249, # single left-pointing angle quotation mark
140 => 338, # latin capital ligature oe
142 => 381, # latin capital letter z with caron
145 => 8216, # left single quotation mark
146 => 8217, # right single quotation mark
147 => 8220, # left double quotation mark
148 => 8221, # right double quotation mark
149 => 8226, # bullet
150 => 8211, # en dash
151 => 8212, # em dash
152 => 732, # small tilde
153 => 8482, # trade mark sign
154 => 353, # latin small letter s with caron
155 => 8250, # single right-pointing angle quotation mark
156 => 339, # latin small ligature oe
158 => 382, # latin small letter z with caron
159 => 376, # latin capital letter y with diaeresis
}
# See http://www.w3.org/TR/REC-xml/#dt-chardata for details.
PREDEFINED = {
38 => '&amp;', # ampersand
60 => '&lt;', # left angle bracket
62 => '&gt;', # right angle bracket
}
# See http://www.w3.org/TR/REC-xml/#charsets for details.
VALID = [
0x9, 0xA, 0xD,
(0x20..0xD7FF),
(0xE000..0xFFFD),
(0x10000..0x10FFFF)
]
end
end
######################################################################
# Enhance the Fixnum class with a XML escaped character conversion.
#
class Fixnum
XChar = Builder::XChar if ! defined?(XChar)
# XML escaped version of chr
def xchr
n = XChar::CP1252[self] || self
case n when *XChar::VALID
XChar::PREDEFINED[n] or (n<128 ? n.chr : "&##{n};")
else
'*'
end
end
end
######################################################################
# Enhance the String class with a XML escaped character version of
# to_s.
#
class String
# XML escaped version of to_s
def to_xs
unpack('U*').map {|n| n.xchr}.join # ASCII, UTF-8
rescue
unpack('C*').map {|n| n.xchr}.join # ISO-8859-1, WIN-1252
end
end

View File

@@ -1,137 +0,0 @@
#!/usr/bin/env ruby
module Builder
# Generic error for builder
class IllegalBlockError < RuntimeError; end
# XmlBase is a base class for building XML builders. See
# Builder::XmlMarkup and Builder::XmlEvents for examples.
class XmlBase < BasicObject
# Create an XML markup builder.
#
# out:: Object receiving the markup. +out+ must respond to
# <tt><<</tt>.
# indent:: Number of spaces used for indentation (0 implies no
# indentation and no line breaks).
# initial:: Level of initial indentation.
#
def initialize(indent=0, initial=0)
@indent = indent
@level = initial
end
# Create a tag named +sym+. Other than the first argument which
# is the tag name, the arguments are the same as the tags
# implemented via <tt>method_missing</tt>.
def tag!(sym, *args, &block)
method_missing(sym.to_sym, *args, &block)
end
# Create XML markup based on the name of the method. This method
# is never invoked directly, but is called for each markup method
# in the markup block.
def method_missing(sym, *args, &block)
text = nil
attrs = nil
sym = "#{sym}:#{args.shift}" if args.first.kind_of?(::Symbol)
args.each do |arg|
case arg
when ::Hash
attrs ||= {}
attrs.merge!(arg)
else
text ||= ''
text << arg.to_s
end
end
if block
unless text.nil?
raise ::ArgumentError, "XmlMarkup cannot mix a text argument with a block"
end
_indent
_start_tag(sym, attrs)
_newline
_nested_structures(block)
_indent
_end_tag(sym)
_newline
elsif text.nil?
_indent
_start_tag(sym, attrs, true)
_newline
else
_indent
_start_tag(sym, attrs)
text! text
_end_tag(sym)
_newline
end
@target
end
# Append text to the output target. Escape any markup. May be
# used within the markup brackets as:
#
# builder.p { |b| b.br; b.text! "HI" } #=> <p><br/>HI</p>
def text!(text)
_text(_escape(text))
end
# Append text to the output target without escaping any markup.
# May be used within the markup brackets as:
#
# builder.p { |x| x << "<br/>HI" } #=> <p><br/>HI</p>
#
# This is useful when using non-builder enabled software that
# generates strings. Just insert the string directly into the
# builder without changing the inserted markup.
#
# It is also useful for stacking builder objects. Builders only
# use <tt><<</tt> to append to the target, so by supporting this
# method/operation builders can use other builders as their
# targets.
def <<(text)
_text(text)
end
# For some reason, nil? is sent to the XmlMarkup object. If nil?
# is not defined and method_missing is invoked, some strange kind
# of recursion happens. Since nil? won't ever be an XML tag, it
# is pretty safe to define it here. (Note: this is an example of
# cargo cult programming,
# cf. http://fishbowl.pastiche.org/2004/10/13/cargo_cult_programming).
def nil?
false
end
private
require 'builder/xchar'
def _escape(text)
text.to_xs
end
def _escape_quote(text)
_escape(text).gsub(%r{"}, '&quot;') # " WART
end
def _newline
return if @indent == 0
text! "\n"
end
def _indent
return if @indent == 0 || @level == 0
text!(" " * (@level * @indent))
end
def _nested_structures(block)
@level += 1
block.call(self)
ensure
@level -= 1
end
end
end

View File

@@ -1,63 +0,0 @@
#!/usr/bin/env ruby
#--
# Copyright 2004 by Jim Weirich (jim@weirichhouse.org).
# All rights reserved.
# Permission is granted for use, copying, modification, distribution,
# and distribution of modified versions of this work as long as the
# above copyright notice is included.
#++
require 'builder/xmlmarkup'
module Builder
# Create a series of SAX-like XML events (e.g. start_tag, end_tag)
# from the markup code. XmlEvent objects are used in a way similar
# to XmlMarkup objects, except that a series of events are generated
# and passed to a handler rather than generating character-based
# markup.
#
# Usage:
# xe = Builder::XmlEvents.new(handler)
# xe.title("HI") # Sends start_tag/end_tag/text messages to the handler.
#
# Indentation may also be selected by providing value for the
# indentation size and initial indentation level.
#
# xe = Builder::XmlEvents.new(handler, indent_size, initial_indent_level)
#
# == XML Event Handler
#
# The handler object must expect the following events.
#
# [<tt>start_tag(tag, attrs)</tt>]
# Announces that a new tag has been found. +tag+ is the name of
# the tag and +attrs+ is a hash of attributes for the tag.
#
# [<tt>end_tag(tag)</tt>]
# Announces that an end tag for +tag+ has been found.
#
# [<tt>text(text)</tt>]
# Announces that a string of characters (+text+) has been found.
# A series of characters may be broken up into more than one
# +text+ call, so the client cannot assume that a single
# callback contains all the text data.
#
class XmlEvents < XmlMarkup
def text!(text)
@target.text(text)
end
def _start_tag(sym, attrs, end_too=false)
@target.start_tag(sym, attrs)
_end_tag(sym) if end_too
end
def _end_tag(sym)
@target.end_tag(sym)
end
end
end

View File

@@ -1,328 +0,0 @@
#!/usr/bin/env ruby
#--
# Copyright 2004, 2005 by Jim Weirich (jim@weirichhouse.org).
# All rights reserved.
# Permission is granted for use, copying, modification, distribution,
# and distribution of modified versions of this work as long as the
# above copyright notice is included.
#++
# Provide a flexible and easy to use Builder for creating XML markup.
# See XmlBuilder for usage details.
require 'builder/xmlbase'
module Builder
# Create XML markup easily. All (well, almost all) methods sent to
# an XmlMarkup object will be translated to the equivalent XML
# markup. Any method with a block will be treated as an XML markup
# tag with nested markup in the block.
#
# Examples will demonstrate this easier than words. In the
# following, +xm+ is an +XmlMarkup+ object.
#
# xm.em("emphasized") # => <em>emphasized</em>
# xm.em { xmm.b("emp & bold") } # => <em><b>emph &amp; bold</b></em>
# xm.a("A Link", "href"=>"http://onestepback.org")
# # => <a href="http://onestepback.org">A Link</a>
# xm.div { br } # => <div><br/></div>
# xm.target("name"=>"compile", "option"=>"fast")
# # => <target option="fast" name="compile"\>
# # NOTE: order of attributes is not specified.
#
# xm.instruct! # <?xml version="1.0" encoding="UTF-8"?>
# xm.html { # <html>
# xm.head { # <head>
# xm.title("History") # <title>History</title>
# } # </head>
# xm.body { # <body>
# xm.comment! "HI" # <! -- HI -->
# xm.h1("Header") # <h1>Header</h1>
# xm.p("paragraph") # <p>paragraph</p>
# } # </body>
# } # </html>
#
# == Notes:
#
# * The order that attributes are inserted in markup tags is
# undefined.
#
# * Sometimes you wish to insert text without enclosing tags. Use
# the <tt>text!</tt> method to accomplish this.
#
# Example:
#
# xm.div { # <div>
# xm.text! "line"; xm.br # line<br/>
# xm.text! "another line"; xmbr # another line<br/>
# } # </div>
#
# * The special XML characters <, >, and & are converted to &lt;,
# &gt; and &amp; automatically. Use the <tt><<</tt> operation to
# insert text without modification.
#
# * Sometimes tags use special characters not allowed in ruby
# identifiers. Use the <tt>tag!</tt> method to handle these
# cases.
#
# Example:
#
# xml.tag!("SOAP:Envelope") { ... }
#
# will produce ...
#
# <SOAP:Envelope> ... </SOAP:Envelope>"
#
# <tt>tag!</tt> will also take text and attribute arguments (after
# the tag name) like normal markup methods. (But see the next
# bullet item for a better way to handle XML namespaces).
#
# * Direct support for XML namespaces is now available. If the
# first argument to a tag call is a symbol, it will be joined to
# the tag to produce a namespace:tag combination. It is easier to
# show this than describe it.
#
# xml.SOAP :Envelope do ... end
#
# Just put a space before the colon in a namespace to produce the
# right form for builder (e.g. "<tt>SOAP:Envelope</tt>" =>
# "<tt>xml.SOAP :Envelope</tt>")
#
# * XmlMarkup builds the markup in any object (called a _target_)
# that accepts the <tt><<</tt> method. If no target is given,
# then XmlMarkup defaults to a string target.
#
# Examples:
#
# xm = Builder::XmlMarkup.new
# result = xm.title("yada")
# # result is a string containing the markup.
#
# buffer = ""
# xm = Builder::XmlMarkup.new(buffer)
# # The markup is appended to buffer (using <<)
#
# xm = Builder::XmlMarkup.new(STDOUT)
# # The markup is written to STDOUT (using <<)
#
# xm = Builder::XmlMarkup.new
# x2 = Builder::XmlMarkup.new(:target=>xm)
# # Markup written to +x2+ will be send to +xm+.
#
# * Indentation is enabled by providing the number of spaces to
# indent for each level as a second argument to XmlBuilder.new.
# Initial indentation may be specified using a third parameter.
#
# Example:
#
# xm = Builder.new(:indent=>2)
# # xm will produce nicely formatted and indented XML.
#
# xm = Builder.new(:indent=>2, :margin=>4)
# # xm will produce nicely formatted and indented XML with 2
# # spaces per indent and an over all indentation level of 4.
#
# builder = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2)
# builder.name { |b| b.first("Jim"); b.last("Weirich) }
# # prints:
# # <name>
# # <first>Jim</first>
# # <last>Weirich</last>
# # </name>
#
# * The instance_eval implementation which forces self to refer to
# the message receiver as self is now obsolete. We now use normal
# block calls to execute the markup block. This means that all
# markup methods must now be explicitly send to the xml builder.
# For instance, instead of
#
# xml.div { strong("text") }
#
# you need to write:
#
# xml.div { xml.strong("text") }
#
# Although more verbose, the subtle change in semantics within the
# block was found to be prone to error. To make this change a
# little less cumbersome, the markup block now gets the markup
# object sent as an argument, allowing you to use a shorter alias
# within the block.
#
# For example:
#
# xml_builder = Builder::XmlMarkup.new
# xml_builder.div { |xml|
# xml.stong("text")
# }
#
class XmlMarkup < XmlBase
# Create an XML markup builder. Parameters are specified by an
# option hash.
#
# :target=><em>target_object</em>::
# Object receiving the markup. +out+ must respond to the
# <tt><<</tt> operator. The default is a plain string target.
#
# :indent=><em>indentation</em>::
# Number of spaces used for indentation. The default is no
# indentation and no line breaks.
#
# :margin=><em>initial_indentation_level</em>::
# Amount of initial indentation (specified in levels, not
# spaces).
#
# :escape_attrs=><b>OBSOLETE</em>::
# The :escape_attrs option is no longer supported by builder
# (and will be quietly ignored). String attribute values are
# now automatically escaped. If you need unescaped attribute
# values (perhaps you are using entities in the attribute
# values), then give the value as a Symbol. This allows much
# finer control over escaping attribute values.
#
def initialize(options={})
indent = options[:indent] || 0
margin = options[:margin] || 0
super(indent, margin)
@target = options[:target] || ""
end
# Return the target of the builder.
def target!
@target
end
def comment!(comment_text)
_ensure_no_block ::Kernel.block_given?
_special("<!-- ", " -->", comment_text, nil)
end
# Insert an XML declaration into the XML markup.
#
# For example:
#
# xml.declare! :ELEMENT, :blah, "yada"
# # => <!ELEMENT blah "yada">
def declare!(inst, *args, &block)
_indent
@target << "<!#{inst}"
args.each do |arg|
case arg
when ::String
@target << %{ "#{arg}"} # " WART
when ::Symbol
@target << " #{arg}"
end
end
if ::Kernel.block_given?
@target << " ["
_newline
_nested_structures(block)
@target << "]"
end
@target << ">"
_newline
end
# Insert a processing instruction into the XML markup. E.g.
#
# For example:
#
# xml.instruct!
# #=> <?xml version="1.0" encoding="UTF-8"?>
# xml.instruct! :aaa, :bbb=>"ccc"
# #=> <?aaa bbb="ccc"?>
#
def instruct!(directive_tag=:xml, attrs={})
_ensure_no_block ::Kernel.block_given?
if directive_tag == :xml
a = { :version=>"1.0", :encoding=>"UTF-8" }
attrs = a.merge attrs
end
_special(
"<?#{directive_tag}",
"?>",
nil,
attrs,
[:version, :encoding, :standalone])
end
# Insert a CDATA section into the XML markup.
#
# For example:
#
# xml.cdata!("text to be included in cdata")
# #=> <![CDATA[text to be included in cdata]]>
#
def cdata!(text)
_ensure_no_block ::Kernel.block_given?
_special("<![CDATA[", "]]>", text, nil)
end
private
# NOTE: All private methods of a builder object are prefixed when
# a "_" character to avoid possible conflict with XML tag names.
# Insert text directly in to the builder's target.
def _text(text)
@target << text
end
# Insert special instruction.
def _special(open, close, data=nil, attrs=nil, order=[])
_indent
@target << open
@target << data if data
_insert_attributes(attrs, order) if attrs
@target << close
_newline
end
# Start an XML tag. If <tt>end_too</tt> is true, then the start
# tag is also the end tag (e.g. <br/>
def _start_tag(sym, attrs, end_too=false)
@target << "<#{sym}"
_insert_attributes(attrs)
@target << "/" if end_too
@target << ">"
end
# Insert an ending tag.
def _end_tag(sym)
@target << "</#{sym}>"
end
# Insert the attributes (given in the hash).
def _insert_attributes(attrs, order=[])
return if attrs.nil?
order.each do |k|
v = attrs[k]
@target << %{ #{k}="#{_attr_value(v)}"} if v # " WART
end
attrs.each do |k, v|
@target << %{ #{k}="#{_attr_value(v)}"} unless order.member?(k) # " WART
end
end
def _attr_value(value)
case value
when ::Symbol
value.to_s
else
_escape_quote(value.to_s)
end
end
def _ensure_no_block(got_block)
if got_block
fail IllegalBlockError,
"Blocks are not allowed on XML instructions"
end
end
end
end

View File

@@ -1,30 +0,0 @@
require "tzinfo/data_timezone_info"
require "tzinfo/linked_timezone_info"
require "tzinfo/timezone_definition"
module TZInfo
module Definitions
def self.load_all!
return true if @loaded
@loaded = true
defns = Marshal.load(File.read(File.expand_path("../definitions.dump", __FILE__)))
defns.each do |defn|
tz_mod = defn.instance_variable_get(:@identifier).split("/").reduce(TZInfo::Definitions) { |mod, name|
if mod.const_defined?(name)
mod.const_get(name)
else
mod.const_set(name, Module.new)
end
}
def tz_mod.get
@timezone
end
tz_mod.instance_variable_set(:@timezone, defn)
end
end
end
end

View File

@@ -1,40 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Africa
module Casablanca
include TimezoneDefinition
timezone 'Africa/Casablanca' do |tz|
tz.offset :o0, -1820, 0, :LMT
tz.offset :o1, 0, 0, :WET
tz.offset :o2, 0, 3600, :WEST
tz.offset :o3, 3600, 0, :CET
tz.transition 1913, 10, :o1, 10454687371, 4320
tz.transition 1939, 9, :o2, 4859037, 2
tz.transition 1939, 11, :o1, 58310075, 24
tz.transition 1940, 2, :o2, 4859369, 2
tz.transition 1945, 11, :o1, 58362659, 24
tz.transition 1950, 6, :o2, 4866887, 2
tz.transition 1950, 10, :o1, 58406003, 24
tz.transition 1967, 6, :o2, 2439645, 1
tz.transition 1967, 9, :o1, 58554347, 24
tz.transition 1974, 6, :o2, 141264000
tz.transition 1974, 8, :o1, 147222000
tz.transition 1976, 5, :o2, 199756800
tz.transition 1976, 7, :o1, 207702000
tz.transition 1977, 5, :o2, 231292800
tz.transition 1977, 9, :o1, 244249200
tz.transition 1978, 6, :o2, 265507200
tz.transition 1978, 8, :o1, 271033200
tz.transition 1984, 3, :o3, 448243200
tz.transition 1985, 12, :o1, 504918000
tz.transition 2008, 6, :o2, 1212278400
tz.transition 2008, 8, :o1, 1220223600
end
end
end
end
end

View File

@@ -1,166 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module America
module Argentina
module Buenos_Aires
include TimezoneDefinition
timezone 'America/Argentina/Buenos_Aires' do |tz|
tz.offset :o0, -14028, 0, :LMT
tz.offset :o1, -15408, 0, :CMT
tz.offset :o2, -14400, 0, :ART
tz.offset :o3, -14400, 3600, :ARST
tz.offset :o4, -10800, 0, :ART
tz.offset :o5, -10800, 3600, :ARST
tz.transition 1894, 10, :o1, 17374555169, 7200
tz.transition 1920, 5, :o2, 1453467407, 600
tz.transition 1930, 12, :o3, 7278935, 3
tz.transition 1931, 4, :o2, 19411461, 8
tz.transition 1931, 10, :o3, 7279889, 3
tz.transition 1932, 3, :o2, 19414141, 8
tz.transition 1932, 11, :o3, 7281038, 3
tz.transition 1933, 3, :o2, 19417061, 8
tz.transition 1933, 11, :o3, 7282133, 3
tz.transition 1934, 3, :o2, 19419981, 8
tz.transition 1934, 11, :o3, 7283228, 3
tz.transition 1935, 3, :o2, 19422901, 8
tz.transition 1935, 11, :o3, 7284323, 3
tz.transition 1936, 3, :o2, 19425829, 8
tz.transition 1936, 11, :o3, 7285421, 3
tz.transition 1937, 3, :o2, 19428749, 8
tz.transition 1937, 11, :o3, 7286516, 3
tz.transition 1938, 3, :o2, 19431669, 8
tz.transition 1938, 11, :o3, 7287611, 3
tz.transition 1939, 3, :o2, 19434589, 8
tz.transition 1939, 11, :o3, 7288706, 3
tz.transition 1940, 3, :o2, 19437517, 8
tz.transition 1940, 7, :o3, 7289435, 3
tz.transition 1941, 6, :o2, 19441285, 8
tz.transition 1941, 10, :o3, 7290848, 3
tz.transition 1943, 8, :o2, 19447501, 8
tz.transition 1943, 10, :o3, 7293038, 3
tz.transition 1946, 3, :o2, 19455045, 8
tz.transition 1946, 10, :o3, 7296284, 3
tz.transition 1963, 10, :o2, 19506429, 8
tz.transition 1963, 12, :o3, 7315136, 3
tz.transition 1964, 3, :o2, 19507645, 8
tz.transition 1964, 10, :o3, 7316051, 3
tz.transition 1965, 3, :o2, 19510565, 8
tz.transition 1965, 10, :o3, 7317146, 3
tz.transition 1966, 3, :o2, 19513485, 8
tz.transition 1966, 10, :o3, 7318241, 3
tz.transition 1967, 4, :o2, 19516661, 8
tz.transition 1967, 10, :o3, 7319294, 3
tz.transition 1968, 4, :o2, 19519629, 8
tz.transition 1968, 10, :o3, 7320407, 3
tz.transition 1969, 4, :o2, 19522541, 8
tz.transition 1969, 10, :o4, 7321499, 3
tz.transition 1974, 1, :o5, 128142000
tz.transition 1974, 5, :o4, 136605600
tz.transition 1988, 12, :o5, 596948400
tz.transition 1989, 3, :o4, 605066400
tz.transition 1989, 10, :o5, 624423600
tz.transition 1990, 3, :o4, 636516000
tz.transition 1990, 10, :o5, 656478000
tz.transition 1991, 3, :o4, 667965600
tz.transition 1991, 10, :o5, 687927600
tz.transition 1992, 3, :o4, 699415200
tz.transition 1992, 10, :o5, 719377200
tz.transition 1993, 3, :o4, 731469600
tz.transition 1999, 10, :o3, 938919600
tz.transition 2000, 3, :o4, 952052400
tz.transition 2007, 12, :o5, 1198983600
tz.transition 2008, 3, :o4, 1205632800
tz.transition 2008, 10, :o5, 1224385200
tz.transition 2009, 3, :o4, 1237082400
tz.transition 2009, 10, :o5, 1255834800
tz.transition 2010, 3, :o4, 1269136800
tz.transition 2010, 10, :o5, 1287284400
tz.transition 2011, 3, :o4, 1300586400
tz.transition 2011, 10, :o5, 1318734000
tz.transition 2012, 3, :o4, 1332036000
tz.transition 2012, 10, :o5, 1350788400
tz.transition 2013, 3, :o4, 1363485600
tz.transition 2013, 10, :o5, 1382238000
tz.transition 2014, 3, :o4, 1394935200
tz.transition 2014, 10, :o5, 1413687600
tz.transition 2015, 3, :o4, 1426384800
tz.transition 2015, 10, :o5, 1445137200
tz.transition 2016, 3, :o4, 1458439200
tz.transition 2016, 10, :o5, 1476586800
tz.transition 2017, 3, :o4, 1489888800
tz.transition 2017, 10, :o5, 1508036400
tz.transition 2018, 3, :o4, 1521338400
tz.transition 2018, 10, :o5, 1540090800
tz.transition 2019, 3, :o4, 1552788000
tz.transition 2019, 10, :o5, 1571540400
tz.transition 2020, 3, :o4, 1584237600
tz.transition 2020, 10, :o5, 1602990000
tz.transition 2021, 3, :o4, 1616292000
tz.transition 2021, 10, :o5, 1634439600
tz.transition 2022, 3, :o4, 1647741600
tz.transition 2022, 10, :o5, 1665889200
tz.transition 2023, 3, :o4, 1679191200
tz.transition 2023, 10, :o5, 1697338800
tz.transition 2024, 3, :o4, 1710640800
tz.transition 2024, 10, :o5, 1729393200
tz.transition 2025, 3, :o4, 1742090400
tz.transition 2025, 10, :o5, 1760842800
tz.transition 2026, 3, :o4, 1773540000
tz.transition 2026, 10, :o5, 1792292400
tz.transition 2027, 3, :o4, 1805594400
tz.transition 2027, 10, :o5, 1823742000
tz.transition 2028, 3, :o4, 1837044000
tz.transition 2028, 10, :o5, 1855191600
tz.transition 2029, 3, :o4, 1868493600
tz.transition 2029, 10, :o5, 1887246000
tz.transition 2030, 3, :o4, 1899943200
tz.transition 2030, 10, :o5, 1918695600
tz.transition 2031, 3, :o4, 1931392800
tz.transition 2031, 10, :o5, 1950145200
tz.transition 2032, 3, :o4, 1963447200
tz.transition 2032, 10, :o5, 1981594800
tz.transition 2033, 3, :o4, 1994896800
tz.transition 2033, 10, :o5, 2013044400
tz.transition 2034, 3, :o4, 2026346400
tz.transition 2034, 10, :o5, 2044494000
tz.transition 2035, 3, :o4, 2057796000
tz.transition 2035, 10, :o5, 2076548400
tz.transition 2036, 3, :o4, 2089245600
tz.transition 2036, 10, :o5, 2107998000
tz.transition 2037, 3, :o4, 2120695200
tz.transition 2037, 10, :o5, 2139447600
tz.transition 2038, 3, :o4, 29586043, 12
tz.transition 2038, 10, :o5, 19725709, 8
tz.transition 2039, 3, :o4, 29590411, 12
tz.transition 2039, 10, :o5, 19728621, 8
tz.transition 2040, 3, :o4, 29594779, 12
tz.transition 2040, 10, :o5, 19731589, 8
tz.transition 2041, 3, :o4, 29599147, 12
tz.transition 2041, 10, :o5, 19734501, 8
tz.transition 2042, 3, :o4, 29603515, 12
tz.transition 2042, 10, :o5, 19737413, 8
tz.transition 2043, 3, :o4, 29607883, 12
tz.transition 2043, 10, :o5, 19740325, 8
tz.transition 2044, 3, :o4, 29612335, 12
tz.transition 2044, 10, :o5, 19743237, 8
tz.transition 2045, 3, :o4, 29616703, 12
tz.transition 2045, 10, :o5, 19746149, 8
tz.transition 2046, 3, :o4, 29621071, 12
tz.transition 2046, 10, :o5, 19749117, 8
tz.transition 2047, 3, :o4, 29625439, 12
tz.transition 2047, 10, :o5, 19752029, 8
tz.transition 2048, 3, :o4, 29629807, 12
tz.transition 2048, 10, :o5, 19754941, 8
tz.transition 2049, 3, :o4, 29634259, 12
tz.transition 2049, 10, :o5, 19757853, 8
tz.transition 2050, 3, :o4, 29638627, 12
end
end
end
end
end
end

View File

@@ -1,165 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Irkutsk
include TimezoneDefinition
timezone 'Asia/Irkutsk' do |tz|
tz.offset :o0, 25040, 0, :LMT
tz.offset :o1, 25040, 0, :IMT
tz.offset :o2, 25200, 0, :IRKT
tz.offset :o3, 28800, 0, :IRKT
tz.offset :o4, 28800, 3600, :IRKST
tz.offset :o5, 25200, 3600, :IRKST
tz.transition 1879, 12, :o1, 2600332427, 1080
tz.transition 1920, 1, :o2, 2616136067, 1080
tz.transition 1930, 6, :o3, 58227557, 24
tz.transition 1981, 3, :o4, 354902400
tz.transition 1981, 9, :o3, 370710000
tz.transition 1982, 3, :o4, 386438400
tz.transition 1982, 9, :o3, 402246000
tz.transition 1983, 3, :o4, 417974400
tz.transition 1983, 9, :o3, 433782000
tz.transition 1984, 3, :o4, 449596800
tz.transition 1984, 9, :o3, 465328800
tz.transition 1985, 3, :o4, 481053600
tz.transition 1985, 9, :o3, 496778400
tz.transition 1986, 3, :o4, 512503200
tz.transition 1986, 9, :o3, 528228000
tz.transition 1987, 3, :o4, 543952800
tz.transition 1987, 9, :o3, 559677600
tz.transition 1988, 3, :o4, 575402400
tz.transition 1988, 9, :o3, 591127200
tz.transition 1989, 3, :o4, 606852000
tz.transition 1989, 9, :o3, 622576800
tz.transition 1990, 3, :o4, 638301600
tz.transition 1990, 9, :o3, 654631200
tz.transition 1991, 3, :o5, 670356000
tz.transition 1991, 9, :o2, 686084400
tz.transition 1992, 1, :o3, 695761200
tz.transition 1992, 3, :o4, 701794800
tz.transition 1992, 9, :o3, 717516000
tz.transition 1993, 3, :o4, 733255200
tz.transition 1993, 9, :o3, 748980000
tz.transition 1994, 3, :o4, 764704800
tz.transition 1994, 9, :o3, 780429600
tz.transition 1995, 3, :o4, 796154400
tz.transition 1995, 9, :o3, 811879200
tz.transition 1996, 3, :o4, 828208800
tz.transition 1996, 10, :o3, 846352800
tz.transition 1997, 3, :o4, 859658400
tz.transition 1997, 10, :o3, 877802400
tz.transition 1998, 3, :o4, 891108000
tz.transition 1998, 10, :o3, 909252000
tz.transition 1999, 3, :o4, 922557600
tz.transition 1999, 10, :o3, 941306400
tz.transition 2000, 3, :o4, 954007200
tz.transition 2000, 10, :o3, 972756000
tz.transition 2001, 3, :o4, 985456800
tz.transition 2001, 10, :o3, 1004205600
tz.transition 2002, 3, :o4, 1017511200
tz.transition 2002, 10, :o3, 1035655200
tz.transition 2003, 3, :o4, 1048960800
tz.transition 2003, 10, :o3, 1067104800
tz.transition 2004, 3, :o4, 1080410400
tz.transition 2004, 10, :o3, 1099159200
tz.transition 2005, 3, :o4, 1111860000
tz.transition 2005, 10, :o3, 1130608800
tz.transition 2006, 3, :o4, 1143309600
tz.transition 2006, 10, :o3, 1162058400
tz.transition 2007, 3, :o4, 1174759200
tz.transition 2007, 10, :o3, 1193508000
tz.transition 2008, 3, :o4, 1206813600
tz.transition 2008, 10, :o3, 1224957600
tz.transition 2009, 3, :o4, 1238263200
tz.transition 2009, 10, :o3, 1256407200
tz.transition 2010, 3, :o4, 1269712800
tz.transition 2010, 10, :o3, 1288461600
tz.transition 2011, 3, :o4, 1301162400
tz.transition 2011, 10, :o3, 1319911200
tz.transition 2012, 3, :o4, 1332612000
tz.transition 2012, 10, :o3, 1351360800
tz.transition 2013, 3, :o4, 1364666400
tz.transition 2013, 10, :o3, 1382810400
tz.transition 2014, 3, :o4, 1396116000
tz.transition 2014, 10, :o3, 1414260000
tz.transition 2015, 3, :o4, 1427565600
tz.transition 2015, 10, :o3, 1445709600
tz.transition 2016, 3, :o4, 1459015200
tz.transition 2016, 10, :o3, 1477764000
tz.transition 2017, 3, :o4, 1490464800
tz.transition 2017, 10, :o3, 1509213600
tz.transition 2018, 3, :o4, 1521914400
tz.transition 2018, 10, :o3, 1540663200
tz.transition 2019, 3, :o4, 1553968800
tz.transition 2019, 10, :o3, 1572112800
tz.transition 2020, 3, :o4, 1585418400
tz.transition 2020, 10, :o3, 1603562400
tz.transition 2021, 3, :o4, 1616868000
tz.transition 2021, 10, :o3, 1635616800
tz.transition 2022, 3, :o4, 1648317600
tz.transition 2022, 10, :o3, 1667066400
tz.transition 2023, 3, :o4, 1679767200
tz.transition 2023, 10, :o3, 1698516000
tz.transition 2024, 3, :o4, 1711821600
tz.transition 2024, 10, :o3, 1729965600
tz.transition 2025, 3, :o4, 1743271200
tz.transition 2025, 10, :o3, 1761415200
tz.transition 2026, 3, :o4, 1774720800
tz.transition 2026, 10, :o3, 1792864800
tz.transition 2027, 3, :o4, 1806170400
tz.transition 2027, 10, :o3, 1824919200
tz.transition 2028, 3, :o4, 1837620000
tz.transition 2028, 10, :o3, 1856368800
tz.transition 2029, 3, :o4, 1869069600
tz.transition 2029, 10, :o3, 1887818400
tz.transition 2030, 3, :o4, 1901124000
tz.transition 2030, 10, :o3, 1919268000
tz.transition 2031, 3, :o4, 1932573600
tz.transition 2031, 10, :o3, 1950717600
tz.transition 2032, 3, :o4, 1964023200
tz.transition 2032, 10, :o3, 1982772000
tz.transition 2033, 3, :o4, 1995472800
tz.transition 2033, 10, :o3, 2014221600
tz.transition 2034, 3, :o4, 2026922400
tz.transition 2034, 10, :o3, 2045671200
tz.transition 2035, 3, :o4, 2058372000
tz.transition 2035, 10, :o3, 2077120800
tz.transition 2036, 3, :o4, 2090426400
tz.transition 2036, 10, :o3, 2108570400
tz.transition 2037, 3, :o4, 2121876000
tz.transition 2037, 10, :o3, 2140020000
tz.transition 2038, 3, :o4, 9862041, 4
tz.transition 2038, 10, :o3, 9862909, 4
tz.transition 2039, 3, :o4, 9863497, 4
tz.transition 2039, 10, :o3, 9864365, 4
tz.transition 2040, 3, :o4, 9864953, 4
tz.transition 2040, 10, :o3, 9865821, 4
tz.transition 2041, 3, :o4, 9866437, 4
tz.transition 2041, 10, :o3, 9867277, 4
tz.transition 2042, 3, :o4, 9867893, 4
tz.transition 2042, 10, :o3, 9868733, 4
tz.transition 2043, 3, :o4, 9869349, 4
tz.transition 2043, 10, :o3, 9870189, 4
tz.transition 2044, 3, :o4, 9870805, 4
tz.transition 2044, 10, :o3, 9871673, 4
tz.transition 2045, 3, :o4, 9872261, 4
tz.transition 2045, 10, :o3, 9873129, 4
tz.transition 2046, 3, :o4, 9873717, 4
tz.transition 2046, 10, :o3, 9874585, 4
tz.transition 2047, 3, :o4, 9875201, 4
tz.transition 2047, 10, :o3, 9876041, 4
tz.transition 2048, 3, :o4, 9876657, 4
tz.transition 2048, 10, :o3, 9877497, 4
tz.transition 2049, 3, :o4, 9878113, 4
tz.transition 2049, 10, :o3, 9878981, 4
tz.transition 2050, 3, :o4, 9879569, 4
tz.transition 2050, 10, :o3, 9880437, 4
end
end
end
end
end

View File

@@ -1,163 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Kamchatka
include TimezoneDefinition
timezone 'Asia/Kamchatka' do |tz|
tz.offset :o0, 38076, 0, :LMT
tz.offset :o1, 39600, 0, :PETT
tz.offset :o2, 43200, 0, :PETT
tz.offset :o3, 43200, 3600, :PETST
tz.offset :o4, 39600, 3600, :PETST
tz.transition 1922, 11, :o1, 17448250027, 7200
tz.transition 1930, 6, :o2, 58227553, 24
tz.transition 1981, 3, :o3, 354888000
tz.transition 1981, 9, :o2, 370695600
tz.transition 1982, 3, :o3, 386424000
tz.transition 1982, 9, :o2, 402231600
tz.transition 1983, 3, :o3, 417960000
tz.transition 1983, 9, :o2, 433767600
tz.transition 1984, 3, :o3, 449582400
tz.transition 1984, 9, :o2, 465314400
tz.transition 1985, 3, :o3, 481039200
tz.transition 1985, 9, :o2, 496764000
tz.transition 1986, 3, :o3, 512488800
tz.transition 1986, 9, :o2, 528213600
tz.transition 1987, 3, :o3, 543938400
tz.transition 1987, 9, :o2, 559663200
tz.transition 1988, 3, :o3, 575388000
tz.transition 1988, 9, :o2, 591112800
tz.transition 1989, 3, :o3, 606837600
tz.transition 1989, 9, :o2, 622562400
tz.transition 1990, 3, :o3, 638287200
tz.transition 1990, 9, :o2, 654616800
tz.transition 1991, 3, :o4, 670341600
tz.transition 1991, 9, :o1, 686070000
tz.transition 1992, 1, :o2, 695746800
tz.transition 1992, 3, :o3, 701780400
tz.transition 1992, 9, :o2, 717501600
tz.transition 1993, 3, :o3, 733240800
tz.transition 1993, 9, :o2, 748965600
tz.transition 1994, 3, :o3, 764690400
tz.transition 1994, 9, :o2, 780415200
tz.transition 1995, 3, :o3, 796140000
tz.transition 1995, 9, :o2, 811864800
tz.transition 1996, 3, :o3, 828194400
tz.transition 1996, 10, :o2, 846338400
tz.transition 1997, 3, :o3, 859644000
tz.transition 1997, 10, :o2, 877788000
tz.transition 1998, 3, :o3, 891093600
tz.transition 1998, 10, :o2, 909237600
tz.transition 1999, 3, :o3, 922543200
tz.transition 1999, 10, :o2, 941292000
tz.transition 2000, 3, :o3, 953992800
tz.transition 2000, 10, :o2, 972741600
tz.transition 2001, 3, :o3, 985442400
tz.transition 2001, 10, :o2, 1004191200
tz.transition 2002, 3, :o3, 1017496800
tz.transition 2002, 10, :o2, 1035640800
tz.transition 2003, 3, :o3, 1048946400
tz.transition 2003, 10, :o2, 1067090400
tz.transition 2004, 3, :o3, 1080396000
tz.transition 2004, 10, :o2, 1099144800
tz.transition 2005, 3, :o3, 1111845600
tz.transition 2005, 10, :o2, 1130594400
tz.transition 2006, 3, :o3, 1143295200
tz.transition 2006, 10, :o2, 1162044000
tz.transition 2007, 3, :o3, 1174744800
tz.transition 2007, 10, :o2, 1193493600
tz.transition 2008, 3, :o3, 1206799200
tz.transition 2008, 10, :o2, 1224943200
tz.transition 2009, 3, :o3, 1238248800
tz.transition 2009, 10, :o2, 1256392800
tz.transition 2010, 3, :o3, 1269698400
tz.transition 2010, 10, :o2, 1288447200
tz.transition 2011, 3, :o3, 1301148000
tz.transition 2011, 10, :o2, 1319896800
tz.transition 2012, 3, :o3, 1332597600
tz.transition 2012, 10, :o2, 1351346400
tz.transition 2013, 3, :o3, 1364652000
tz.transition 2013, 10, :o2, 1382796000
tz.transition 2014, 3, :o3, 1396101600
tz.transition 2014, 10, :o2, 1414245600
tz.transition 2015, 3, :o3, 1427551200
tz.transition 2015, 10, :o2, 1445695200
tz.transition 2016, 3, :o3, 1459000800
tz.transition 2016, 10, :o2, 1477749600
tz.transition 2017, 3, :o3, 1490450400
tz.transition 2017, 10, :o2, 1509199200
tz.transition 2018, 3, :o3, 1521900000
tz.transition 2018, 10, :o2, 1540648800
tz.transition 2019, 3, :o3, 1553954400
tz.transition 2019, 10, :o2, 1572098400
tz.transition 2020, 3, :o3, 1585404000
tz.transition 2020, 10, :o2, 1603548000
tz.transition 2021, 3, :o3, 1616853600
tz.transition 2021, 10, :o2, 1635602400
tz.transition 2022, 3, :o3, 1648303200
tz.transition 2022, 10, :o2, 1667052000
tz.transition 2023, 3, :o3, 1679752800
tz.transition 2023, 10, :o2, 1698501600
tz.transition 2024, 3, :o3, 1711807200
tz.transition 2024, 10, :o2, 1729951200
tz.transition 2025, 3, :o3, 1743256800
tz.transition 2025, 10, :o2, 1761400800
tz.transition 2026, 3, :o3, 1774706400
tz.transition 2026, 10, :o2, 1792850400
tz.transition 2027, 3, :o3, 1806156000
tz.transition 2027, 10, :o2, 1824904800
tz.transition 2028, 3, :o3, 1837605600
tz.transition 2028, 10, :o2, 1856354400
tz.transition 2029, 3, :o3, 1869055200
tz.transition 2029, 10, :o2, 1887804000
tz.transition 2030, 3, :o3, 1901109600
tz.transition 2030, 10, :o2, 1919253600
tz.transition 2031, 3, :o3, 1932559200
tz.transition 2031, 10, :o2, 1950703200
tz.transition 2032, 3, :o3, 1964008800
tz.transition 2032, 10, :o2, 1982757600
tz.transition 2033, 3, :o3, 1995458400
tz.transition 2033, 10, :o2, 2014207200
tz.transition 2034, 3, :o3, 2026908000
tz.transition 2034, 10, :o2, 2045656800
tz.transition 2035, 3, :o3, 2058357600
tz.transition 2035, 10, :o2, 2077106400
tz.transition 2036, 3, :o3, 2090412000
tz.transition 2036, 10, :o2, 2108556000
tz.transition 2037, 3, :o3, 2121861600
tz.transition 2037, 10, :o2, 2140005600
tz.transition 2038, 3, :o3, 29586121, 12
tz.transition 2038, 10, :o2, 29588725, 12
tz.transition 2039, 3, :o3, 29590489, 12
tz.transition 2039, 10, :o2, 29593093, 12
tz.transition 2040, 3, :o3, 29594857, 12
tz.transition 2040, 10, :o2, 29597461, 12
tz.transition 2041, 3, :o3, 29599309, 12
tz.transition 2041, 10, :o2, 29601829, 12
tz.transition 2042, 3, :o3, 29603677, 12
tz.transition 2042, 10, :o2, 29606197, 12
tz.transition 2043, 3, :o3, 29608045, 12
tz.transition 2043, 10, :o2, 29610565, 12
tz.transition 2044, 3, :o3, 29612413, 12
tz.transition 2044, 10, :o2, 29615017, 12
tz.transition 2045, 3, :o3, 29616781, 12
tz.transition 2045, 10, :o2, 29619385, 12
tz.transition 2046, 3, :o3, 29621149, 12
tz.transition 2046, 10, :o2, 29623753, 12
tz.transition 2047, 3, :o3, 29625601, 12
tz.transition 2047, 10, :o2, 29628121, 12
tz.transition 2048, 3, :o3, 29629969, 12
tz.transition 2048, 10, :o2, 29632489, 12
tz.transition 2049, 3, :o3, 29634337, 12
tz.transition 2049, 10, :o2, 29636941, 12
tz.transition 2050, 3, :o3, 29638705, 12
tz.transition 2050, 10, :o2, 29641309, 12
end
end
end
end
end

View File

@@ -1,163 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Krasnoyarsk
include TimezoneDefinition
timezone 'Asia/Krasnoyarsk' do |tz|
tz.offset :o0, 22280, 0, :LMT
tz.offset :o1, 21600, 0, :KRAT
tz.offset :o2, 25200, 0, :KRAT
tz.offset :o3, 25200, 3600, :KRAST
tz.offset :o4, 21600, 3600, :KRAST
tz.transition 1920, 1, :o1, 5232231163, 2160
tz.transition 1930, 6, :o2, 9704593, 4
tz.transition 1981, 3, :o3, 354906000
tz.transition 1981, 9, :o2, 370713600
tz.transition 1982, 3, :o3, 386442000
tz.transition 1982, 9, :o2, 402249600
tz.transition 1983, 3, :o3, 417978000
tz.transition 1983, 9, :o2, 433785600
tz.transition 1984, 3, :o3, 449600400
tz.transition 1984, 9, :o2, 465332400
tz.transition 1985, 3, :o3, 481057200
tz.transition 1985, 9, :o2, 496782000
tz.transition 1986, 3, :o3, 512506800
tz.transition 1986, 9, :o2, 528231600
tz.transition 1987, 3, :o3, 543956400
tz.transition 1987, 9, :o2, 559681200
tz.transition 1988, 3, :o3, 575406000
tz.transition 1988, 9, :o2, 591130800
tz.transition 1989, 3, :o3, 606855600
tz.transition 1989, 9, :o2, 622580400
tz.transition 1990, 3, :o3, 638305200
tz.transition 1990, 9, :o2, 654634800
tz.transition 1991, 3, :o4, 670359600
tz.transition 1991, 9, :o1, 686088000
tz.transition 1992, 1, :o2, 695764800
tz.transition 1992, 3, :o3, 701798400
tz.transition 1992, 9, :o2, 717519600
tz.transition 1993, 3, :o3, 733258800
tz.transition 1993, 9, :o2, 748983600
tz.transition 1994, 3, :o3, 764708400
tz.transition 1994, 9, :o2, 780433200
tz.transition 1995, 3, :o3, 796158000
tz.transition 1995, 9, :o2, 811882800
tz.transition 1996, 3, :o3, 828212400
tz.transition 1996, 10, :o2, 846356400
tz.transition 1997, 3, :o3, 859662000
tz.transition 1997, 10, :o2, 877806000
tz.transition 1998, 3, :o3, 891111600
tz.transition 1998, 10, :o2, 909255600
tz.transition 1999, 3, :o3, 922561200
tz.transition 1999, 10, :o2, 941310000
tz.transition 2000, 3, :o3, 954010800
tz.transition 2000, 10, :o2, 972759600
tz.transition 2001, 3, :o3, 985460400
tz.transition 2001, 10, :o2, 1004209200
tz.transition 2002, 3, :o3, 1017514800
tz.transition 2002, 10, :o2, 1035658800
tz.transition 2003, 3, :o3, 1048964400
tz.transition 2003, 10, :o2, 1067108400
tz.transition 2004, 3, :o3, 1080414000
tz.transition 2004, 10, :o2, 1099162800
tz.transition 2005, 3, :o3, 1111863600
tz.transition 2005, 10, :o2, 1130612400
tz.transition 2006, 3, :o3, 1143313200
tz.transition 2006, 10, :o2, 1162062000
tz.transition 2007, 3, :o3, 1174762800
tz.transition 2007, 10, :o2, 1193511600
tz.transition 2008, 3, :o3, 1206817200
tz.transition 2008, 10, :o2, 1224961200
tz.transition 2009, 3, :o3, 1238266800
tz.transition 2009, 10, :o2, 1256410800
tz.transition 2010, 3, :o3, 1269716400
tz.transition 2010, 10, :o2, 1288465200
tz.transition 2011, 3, :o3, 1301166000
tz.transition 2011, 10, :o2, 1319914800
tz.transition 2012, 3, :o3, 1332615600
tz.transition 2012, 10, :o2, 1351364400
tz.transition 2013, 3, :o3, 1364670000
tz.transition 2013, 10, :o2, 1382814000
tz.transition 2014, 3, :o3, 1396119600
tz.transition 2014, 10, :o2, 1414263600
tz.transition 2015, 3, :o3, 1427569200
tz.transition 2015, 10, :o2, 1445713200
tz.transition 2016, 3, :o3, 1459018800
tz.transition 2016, 10, :o2, 1477767600
tz.transition 2017, 3, :o3, 1490468400
tz.transition 2017, 10, :o2, 1509217200
tz.transition 2018, 3, :o3, 1521918000
tz.transition 2018, 10, :o2, 1540666800
tz.transition 2019, 3, :o3, 1553972400
tz.transition 2019, 10, :o2, 1572116400
tz.transition 2020, 3, :o3, 1585422000
tz.transition 2020, 10, :o2, 1603566000
tz.transition 2021, 3, :o3, 1616871600
tz.transition 2021, 10, :o2, 1635620400
tz.transition 2022, 3, :o3, 1648321200
tz.transition 2022, 10, :o2, 1667070000
tz.transition 2023, 3, :o3, 1679770800
tz.transition 2023, 10, :o2, 1698519600
tz.transition 2024, 3, :o3, 1711825200
tz.transition 2024, 10, :o2, 1729969200
tz.transition 2025, 3, :o3, 1743274800
tz.transition 2025, 10, :o2, 1761418800
tz.transition 2026, 3, :o3, 1774724400
tz.transition 2026, 10, :o2, 1792868400
tz.transition 2027, 3, :o3, 1806174000
tz.transition 2027, 10, :o2, 1824922800
tz.transition 2028, 3, :o3, 1837623600
tz.transition 2028, 10, :o2, 1856372400
tz.transition 2029, 3, :o3, 1869073200
tz.transition 2029, 10, :o2, 1887822000
tz.transition 2030, 3, :o3, 1901127600
tz.transition 2030, 10, :o2, 1919271600
tz.transition 2031, 3, :o3, 1932577200
tz.transition 2031, 10, :o2, 1950721200
tz.transition 2032, 3, :o3, 1964026800
tz.transition 2032, 10, :o2, 1982775600
tz.transition 2033, 3, :o3, 1995476400
tz.transition 2033, 10, :o2, 2014225200
tz.transition 2034, 3, :o3, 2026926000
tz.transition 2034, 10, :o2, 2045674800
tz.transition 2035, 3, :o3, 2058375600
tz.transition 2035, 10, :o2, 2077124400
tz.transition 2036, 3, :o3, 2090430000
tz.transition 2036, 10, :o2, 2108574000
tz.transition 2037, 3, :o3, 2121879600
tz.transition 2037, 10, :o2, 2140023600
tz.transition 2038, 3, :o3, 59172247, 24
tz.transition 2038, 10, :o2, 59177455, 24
tz.transition 2039, 3, :o3, 59180983, 24
tz.transition 2039, 10, :o2, 59186191, 24
tz.transition 2040, 3, :o3, 59189719, 24
tz.transition 2040, 10, :o2, 59194927, 24
tz.transition 2041, 3, :o3, 59198623, 24
tz.transition 2041, 10, :o2, 59203663, 24
tz.transition 2042, 3, :o3, 59207359, 24
tz.transition 2042, 10, :o2, 59212399, 24
tz.transition 2043, 3, :o3, 59216095, 24
tz.transition 2043, 10, :o2, 59221135, 24
tz.transition 2044, 3, :o3, 59224831, 24
tz.transition 2044, 10, :o2, 59230039, 24
tz.transition 2045, 3, :o3, 59233567, 24
tz.transition 2045, 10, :o2, 59238775, 24
tz.transition 2046, 3, :o3, 59242303, 24
tz.transition 2046, 10, :o2, 59247511, 24
tz.transition 2047, 3, :o3, 59251207, 24
tz.transition 2047, 10, :o2, 59256247, 24
tz.transition 2048, 3, :o3, 59259943, 24
tz.transition 2048, 10, :o2, 59264983, 24
tz.transition 2049, 3, :o3, 59268679, 24
tz.transition 2049, 10, :o2, 59273887, 24
tz.transition 2050, 3, :o3, 59277415, 24
tz.transition 2050, 10, :o2, 59282623, 24
end
end
end
end
end

View File

@@ -1,163 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Magadan
include TimezoneDefinition
timezone 'Asia/Magadan' do |tz|
tz.offset :o0, 36192, 0, :LMT
tz.offset :o1, 36000, 0, :MAGT
tz.offset :o2, 39600, 0, :MAGT
tz.offset :o3, 39600, 3600, :MAGST
tz.offset :o4, 36000, 3600, :MAGST
tz.transition 1924, 5, :o1, 2181516373, 900
tz.transition 1930, 6, :o2, 29113777, 12
tz.transition 1981, 3, :o3, 354891600
tz.transition 1981, 9, :o2, 370699200
tz.transition 1982, 3, :o3, 386427600
tz.transition 1982, 9, :o2, 402235200
tz.transition 1983, 3, :o3, 417963600
tz.transition 1983, 9, :o2, 433771200
tz.transition 1984, 3, :o3, 449586000
tz.transition 1984, 9, :o2, 465318000
tz.transition 1985, 3, :o3, 481042800
tz.transition 1985, 9, :o2, 496767600
tz.transition 1986, 3, :o3, 512492400
tz.transition 1986, 9, :o2, 528217200
tz.transition 1987, 3, :o3, 543942000
tz.transition 1987, 9, :o2, 559666800
tz.transition 1988, 3, :o3, 575391600
tz.transition 1988, 9, :o2, 591116400
tz.transition 1989, 3, :o3, 606841200
tz.transition 1989, 9, :o2, 622566000
tz.transition 1990, 3, :o3, 638290800
tz.transition 1990, 9, :o2, 654620400
tz.transition 1991, 3, :o4, 670345200
tz.transition 1991, 9, :o1, 686073600
tz.transition 1992, 1, :o2, 695750400
tz.transition 1992, 3, :o3, 701784000
tz.transition 1992, 9, :o2, 717505200
tz.transition 1993, 3, :o3, 733244400
tz.transition 1993, 9, :o2, 748969200
tz.transition 1994, 3, :o3, 764694000
tz.transition 1994, 9, :o2, 780418800
tz.transition 1995, 3, :o3, 796143600
tz.transition 1995, 9, :o2, 811868400
tz.transition 1996, 3, :o3, 828198000
tz.transition 1996, 10, :o2, 846342000
tz.transition 1997, 3, :o3, 859647600
tz.transition 1997, 10, :o2, 877791600
tz.transition 1998, 3, :o3, 891097200
tz.transition 1998, 10, :o2, 909241200
tz.transition 1999, 3, :o3, 922546800
tz.transition 1999, 10, :o2, 941295600
tz.transition 2000, 3, :o3, 953996400
tz.transition 2000, 10, :o2, 972745200
tz.transition 2001, 3, :o3, 985446000
tz.transition 2001, 10, :o2, 1004194800
tz.transition 2002, 3, :o3, 1017500400
tz.transition 2002, 10, :o2, 1035644400
tz.transition 2003, 3, :o3, 1048950000
tz.transition 2003, 10, :o2, 1067094000
tz.transition 2004, 3, :o3, 1080399600
tz.transition 2004, 10, :o2, 1099148400
tz.transition 2005, 3, :o3, 1111849200
tz.transition 2005, 10, :o2, 1130598000
tz.transition 2006, 3, :o3, 1143298800
tz.transition 2006, 10, :o2, 1162047600
tz.transition 2007, 3, :o3, 1174748400
tz.transition 2007, 10, :o2, 1193497200
tz.transition 2008, 3, :o3, 1206802800
tz.transition 2008, 10, :o2, 1224946800
tz.transition 2009, 3, :o3, 1238252400
tz.transition 2009, 10, :o2, 1256396400
tz.transition 2010, 3, :o3, 1269702000
tz.transition 2010, 10, :o2, 1288450800
tz.transition 2011, 3, :o3, 1301151600
tz.transition 2011, 10, :o2, 1319900400
tz.transition 2012, 3, :o3, 1332601200
tz.transition 2012, 10, :o2, 1351350000
tz.transition 2013, 3, :o3, 1364655600
tz.transition 2013, 10, :o2, 1382799600
tz.transition 2014, 3, :o3, 1396105200
tz.transition 2014, 10, :o2, 1414249200
tz.transition 2015, 3, :o3, 1427554800
tz.transition 2015, 10, :o2, 1445698800
tz.transition 2016, 3, :o3, 1459004400
tz.transition 2016, 10, :o2, 1477753200
tz.transition 2017, 3, :o3, 1490454000
tz.transition 2017, 10, :o2, 1509202800
tz.transition 2018, 3, :o3, 1521903600
tz.transition 2018, 10, :o2, 1540652400
tz.transition 2019, 3, :o3, 1553958000
tz.transition 2019, 10, :o2, 1572102000
tz.transition 2020, 3, :o3, 1585407600
tz.transition 2020, 10, :o2, 1603551600
tz.transition 2021, 3, :o3, 1616857200
tz.transition 2021, 10, :o2, 1635606000
tz.transition 2022, 3, :o3, 1648306800
tz.transition 2022, 10, :o2, 1667055600
tz.transition 2023, 3, :o3, 1679756400
tz.transition 2023, 10, :o2, 1698505200
tz.transition 2024, 3, :o3, 1711810800
tz.transition 2024, 10, :o2, 1729954800
tz.transition 2025, 3, :o3, 1743260400
tz.transition 2025, 10, :o2, 1761404400
tz.transition 2026, 3, :o3, 1774710000
tz.transition 2026, 10, :o2, 1792854000
tz.transition 2027, 3, :o3, 1806159600
tz.transition 2027, 10, :o2, 1824908400
tz.transition 2028, 3, :o3, 1837609200
tz.transition 2028, 10, :o2, 1856358000
tz.transition 2029, 3, :o3, 1869058800
tz.transition 2029, 10, :o2, 1887807600
tz.transition 2030, 3, :o3, 1901113200
tz.transition 2030, 10, :o2, 1919257200
tz.transition 2031, 3, :o3, 1932562800
tz.transition 2031, 10, :o2, 1950706800
tz.transition 2032, 3, :o3, 1964012400
tz.transition 2032, 10, :o2, 1982761200
tz.transition 2033, 3, :o3, 1995462000
tz.transition 2033, 10, :o2, 2014210800
tz.transition 2034, 3, :o3, 2026911600
tz.transition 2034, 10, :o2, 2045660400
tz.transition 2035, 3, :o3, 2058361200
tz.transition 2035, 10, :o2, 2077110000
tz.transition 2036, 3, :o3, 2090415600
tz.transition 2036, 10, :o2, 2108559600
tz.transition 2037, 3, :o3, 2121865200
tz.transition 2037, 10, :o2, 2140009200
tz.transition 2038, 3, :o3, 19724081, 8
tz.transition 2038, 10, :o2, 19725817, 8
tz.transition 2039, 3, :o3, 19726993, 8
tz.transition 2039, 10, :o2, 19728729, 8
tz.transition 2040, 3, :o3, 19729905, 8
tz.transition 2040, 10, :o2, 19731641, 8
tz.transition 2041, 3, :o3, 19732873, 8
tz.transition 2041, 10, :o2, 19734553, 8
tz.transition 2042, 3, :o3, 19735785, 8
tz.transition 2042, 10, :o2, 19737465, 8
tz.transition 2043, 3, :o3, 19738697, 8
tz.transition 2043, 10, :o2, 19740377, 8
tz.transition 2044, 3, :o3, 19741609, 8
tz.transition 2044, 10, :o2, 19743345, 8
tz.transition 2045, 3, :o3, 19744521, 8
tz.transition 2045, 10, :o2, 19746257, 8
tz.transition 2046, 3, :o3, 19747433, 8
tz.transition 2046, 10, :o2, 19749169, 8
tz.transition 2047, 3, :o3, 19750401, 8
tz.transition 2047, 10, :o2, 19752081, 8
tz.transition 2048, 3, :o3, 19753313, 8
tz.transition 2048, 10, :o2, 19754993, 8
tz.transition 2049, 3, :o3, 19756225, 8
tz.transition 2049, 10, :o2, 19757961, 8
tz.transition 2050, 3, :o3, 19759137, 8
tz.transition 2050, 10, :o2, 19760873, 8
end
end
end
end
end

View File

@@ -1,164 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Novosibirsk
include TimezoneDefinition
timezone 'Asia/Novosibirsk' do |tz|
tz.offset :o0, 19900, 0, :LMT
tz.offset :o1, 21600, 0, :NOVT
tz.offset :o2, 25200, 0, :NOVT
tz.offset :o3, 25200, 3600, :NOVST
tz.offset :o4, 21600, 3600, :NOVST
tz.transition 1919, 12, :o1, 2092872833, 864
tz.transition 1930, 6, :o2, 9704593, 4
tz.transition 1981, 3, :o3, 354906000
tz.transition 1981, 9, :o2, 370713600
tz.transition 1982, 3, :o3, 386442000
tz.transition 1982, 9, :o2, 402249600
tz.transition 1983, 3, :o3, 417978000
tz.transition 1983, 9, :o2, 433785600
tz.transition 1984, 3, :o3, 449600400
tz.transition 1984, 9, :o2, 465332400
tz.transition 1985, 3, :o3, 481057200
tz.transition 1985, 9, :o2, 496782000
tz.transition 1986, 3, :o3, 512506800
tz.transition 1986, 9, :o2, 528231600
tz.transition 1987, 3, :o3, 543956400
tz.transition 1987, 9, :o2, 559681200
tz.transition 1988, 3, :o3, 575406000
tz.transition 1988, 9, :o2, 591130800
tz.transition 1989, 3, :o3, 606855600
tz.transition 1989, 9, :o2, 622580400
tz.transition 1990, 3, :o3, 638305200
tz.transition 1990, 9, :o2, 654634800
tz.transition 1991, 3, :o4, 670359600
tz.transition 1991, 9, :o1, 686088000
tz.transition 1992, 1, :o2, 695764800
tz.transition 1992, 3, :o3, 701798400
tz.transition 1992, 9, :o2, 717519600
tz.transition 1993, 3, :o3, 733258800
tz.transition 1993, 5, :o4, 738086400
tz.transition 1993, 9, :o1, 748987200
tz.transition 1994, 3, :o4, 764712000
tz.transition 1994, 9, :o1, 780436800
tz.transition 1995, 3, :o4, 796161600
tz.transition 1995, 9, :o1, 811886400
tz.transition 1996, 3, :o4, 828216000
tz.transition 1996, 10, :o1, 846360000
tz.transition 1997, 3, :o4, 859665600
tz.transition 1997, 10, :o1, 877809600
tz.transition 1998, 3, :o4, 891115200
tz.transition 1998, 10, :o1, 909259200
tz.transition 1999, 3, :o4, 922564800
tz.transition 1999, 10, :o1, 941313600
tz.transition 2000, 3, :o4, 954014400
tz.transition 2000, 10, :o1, 972763200
tz.transition 2001, 3, :o4, 985464000
tz.transition 2001, 10, :o1, 1004212800
tz.transition 2002, 3, :o4, 1017518400
tz.transition 2002, 10, :o1, 1035662400
tz.transition 2003, 3, :o4, 1048968000
tz.transition 2003, 10, :o1, 1067112000
tz.transition 2004, 3, :o4, 1080417600
tz.transition 2004, 10, :o1, 1099166400
tz.transition 2005, 3, :o4, 1111867200
tz.transition 2005, 10, :o1, 1130616000
tz.transition 2006, 3, :o4, 1143316800
tz.transition 2006, 10, :o1, 1162065600
tz.transition 2007, 3, :o4, 1174766400
tz.transition 2007, 10, :o1, 1193515200
tz.transition 2008, 3, :o4, 1206820800
tz.transition 2008, 10, :o1, 1224964800
tz.transition 2009, 3, :o4, 1238270400
tz.transition 2009, 10, :o1, 1256414400
tz.transition 2010, 3, :o4, 1269720000
tz.transition 2010, 10, :o1, 1288468800
tz.transition 2011, 3, :o4, 1301169600
tz.transition 2011, 10, :o1, 1319918400
tz.transition 2012, 3, :o4, 1332619200
tz.transition 2012, 10, :o1, 1351368000
tz.transition 2013, 3, :o4, 1364673600
tz.transition 2013, 10, :o1, 1382817600
tz.transition 2014, 3, :o4, 1396123200
tz.transition 2014, 10, :o1, 1414267200
tz.transition 2015, 3, :o4, 1427572800
tz.transition 2015, 10, :o1, 1445716800
tz.transition 2016, 3, :o4, 1459022400
tz.transition 2016, 10, :o1, 1477771200
tz.transition 2017, 3, :o4, 1490472000
tz.transition 2017, 10, :o1, 1509220800
tz.transition 2018, 3, :o4, 1521921600
tz.transition 2018, 10, :o1, 1540670400
tz.transition 2019, 3, :o4, 1553976000
tz.transition 2019, 10, :o1, 1572120000
tz.transition 2020, 3, :o4, 1585425600
tz.transition 2020, 10, :o1, 1603569600
tz.transition 2021, 3, :o4, 1616875200
tz.transition 2021, 10, :o1, 1635624000
tz.transition 2022, 3, :o4, 1648324800
tz.transition 2022, 10, :o1, 1667073600
tz.transition 2023, 3, :o4, 1679774400
tz.transition 2023, 10, :o1, 1698523200
tz.transition 2024, 3, :o4, 1711828800
tz.transition 2024, 10, :o1, 1729972800
tz.transition 2025, 3, :o4, 1743278400
tz.transition 2025, 10, :o1, 1761422400
tz.transition 2026, 3, :o4, 1774728000
tz.transition 2026, 10, :o1, 1792872000
tz.transition 2027, 3, :o4, 1806177600
tz.transition 2027, 10, :o1, 1824926400
tz.transition 2028, 3, :o4, 1837627200
tz.transition 2028, 10, :o1, 1856376000
tz.transition 2029, 3, :o4, 1869076800
tz.transition 2029, 10, :o1, 1887825600
tz.transition 2030, 3, :o4, 1901131200
tz.transition 2030, 10, :o1, 1919275200
tz.transition 2031, 3, :o4, 1932580800
tz.transition 2031, 10, :o1, 1950724800
tz.transition 2032, 3, :o4, 1964030400
tz.transition 2032, 10, :o1, 1982779200
tz.transition 2033, 3, :o4, 1995480000
tz.transition 2033, 10, :o1, 2014228800
tz.transition 2034, 3, :o4, 2026929600
tz.transition 2034, 10, :o1, 2045678400
tz.transition 2035, 3, :o4, 2058379200
tz.transition 2035, 10, :o1, 2077128000
tz.transition 2036, 3, :o4, 2090433600
tz.transition 2036, 10, :o1, 2108577600
tz.transition 2037, 3, :o4, 2121883200
tz.transition 2037, 10, :o1, 2140027200
tz.transition 2038, 3, :o4, 7396531, 3
tz.transition 2038, 10, :o1, 7397182, 3
tz.transition 2039, 3, :o4, 7397623, 3
tz.transition 2039, 10, :o1, 7398274, 3
tz.transition 2040, 3, :o4, 7398715, 3
tz.transition 2040, 10, :o1, 7399366, 3
tz.transition 2041, 3, :o4, 7399828, 3
tz.transition 2041, 10, :o1, 7400458, 3
tz.transition 2042, 3, :o4, 7400920, 3
tz.transition 2042, 10, :o1, 7401550, 3
tz.transition 2043, 3, :o4, 7402012, 3
tz.transition 2043, 10, :o1, 7402642, 3
tz.transition 2044, 3, :o4, 7403104, 3
tz.transition 2044, 10, :o1, 7403755, 3
tz.transition 2045, 3, :o4, 7404196, 3
tz.transition 2045, 10, :o1, 7404847, 3
tz.transition 2046, 3, :o4, 7405288, 3
tz.transition 2046, 10, :o1, 7405939, 3
tz.transition 2047, 3, :o4, 7406401, 3
tz.transition 2047, 10, :o1, 7407031, 3
tz.transition 2048, 3, :o4, 7407493, 3
tz.transition 2048, 10, :o1, 7408123, 3
tz.transition 2049, 3, :o4, 7408585, 3
tz.transition 2049, 10, :o1, 7409236, 3
tz.transition 2050, 3, :o4, 7409677, 3
tz.transition 2050, 10, :o1, 7410328, 3
end
end
end
end
end

View File

@@ -1,164 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Vladivostok
include TimezoneDefinition
timezone 'Asia/Vladivostok' do |tz|
tz.offset :o0, 31664, 0, :LMT
tz.offset :o1, 32400, 0, :VLAT
tz.offset :o2, 36000, 0, :VLAT
tz.offset :o3, 36000, 3600, :VLAST
tz.offset :o4, 32400, 3600, :VLASST
tz.offset :o5, 32400, 0, :VLAST
tz.transition 1922, 11, :o1, 13086214921, 5400
tz.transition 1930, 6, :o2, 19409185, 8
tz.transition 1981, 3, :o3, 354895200
tz.transition 1981, 9, :o2, 370702800
tz.transition 1982, 3, :o3, 386431200
tz.transition 1982, 9, :o2, 402238800
tz.transition 1983, 3, :o3, 417967200
tz.transition 1983, 9, :o2, 433774800
tz.transition 1984, 3, :o3, 449589600
tz.transition 1984, 9, :o2, 465321600
tz.transition 1985, 3, :o3, 481046400
tz.transition 1985, 9, :o2, 496771200
tz.transition 1986, 3, :o3, 512496000
tz.transition 1986, 9, :o2, 528220800
tz.transition 1987, 3, :o3, 543945600
tz.transition 1987, 9, :o2, 559670400
tz.transition 1988, 3, :o3, 575395200
tz.transition 1988, 9, :o2, 591120000
tz.transition 1989, 3, :o3, 606844800
tz.transition 1989, 9, :o2, 622569600
tz.transition 1990, 3, :o3, 638294400
tz.transition 1990, 9, :o2, 654624000
tz.transition 1991, 3, :o4, 670348800
tz.transition 1991, 9, :o5, 686077200
tz.transition 1992, 1, :o2, 695754000
tz.transition 1992, 3, :o3, 701787600
tz.transition 1992, 9, :o2, 717508800
tz.transition 1993, 3, :o3, 733248000
tz.transition 1993, 9, :o2, 748972800
tz.transition 1994, 3, :o3, 764697600
tz.transition 1994, 9, :o2, 780422400
tz.transition 1995, 3, :o3, 796147200
tz.transition 1995, 9, :o2, 811872000
tz.transition 1996, 3, :o3, 828201600
tz.transition 1996, 10, :o2, 846345600
tz.transition 1997, 3, :o3, 859651200
tz.transition 1997, 10, :o2, 877795200
tz.transition 1998, 3, :o3, 891100800
tz.transition 1998, 10, :o2, 909244800
tz.transition 1999, 3, :o3, 922550400
tz.transition 1999, 10, :o2, 941299200
tz.transition 2000, 3, :o3, 954000000
tz.transition 2000, 10, :o2, 972748800
tz.transition 2001, 3, :o3, 985449600
tz.transition 2001, 10, :o2, 1004198400
tz.transition 2002, 3, :o3, 1017504000
tz.transition 2002, 10, :o2, 1035648000
tz.transition 2003, 3, :o3, 1048953600
tz.transition 2003, 10, :o2, 1067097600
tz.transition 2004, 3, :o3, 1080403200
tz.transition 2004, 10, :o2, 1099152000
tz.transition 2005, 3, :o3, 1111852800
tz.transition 2005, 10, :o2, 1130601600
tz.transition 2006, 3, :o3, 1143302400
tz.transition 2006, 10, :o2, 1162051200
tz.transition 2007, 3, :o3, 1174752000
tz.transition 2007, 10, :o2, 1193500800
tz.transition 2008, 3, :o3, 1206806400
tz.transition 2008, 10, :o2, 1224950400
tz.transition 2009, 3, :o3, 1238256000
tz.transition 2009, 10, :o2, 1256400000
tz.transition 2010, 3, :o3, 1269705600
tz.transition 2010, 10, :o2, 1288454400
tz.transition 2011, 3, :o3, 1301155200
tz.transition 2011, 10, :o2, 1319904000
tz.transition 2012, 3, :o3, 1332604800
tz.transition 2012, 10, :o2, 1351353600
tz.transition 2013, 3, :o3, 1364659200
tz.transition 2013, 10, :o2, 1382803200
tz.transition 2014, 3, :o3, 1396108800
tz.transition 2014, 10, :o2, 1414252800
tz.transition 2015, 3, :o3, 1427558400
tz.transition 2015, 10, :o2, 1445702400
tz.transition 2016, 3, :o3, 1459008000
tz.transition 2016, 10, :o2, 1477756800
tz.transition 2017, 3, :o3, 1490457600
tz.transition 2017, 10, :o2, 1509206400
tz.transition 2018, 3, :o3, 1521907200
tz.transition 2018, 10, :o2, 1540656000
tz.transition 2019, 3, :o3, 1553961600
tz.transition 2019, 10, :o2, 1572105600
tz.transition 2020, 3, :o3, 1585411200
tz.transition 2020, 10, :o2, 1603555200
tz.transition 2021, 3, :o3, 1616860800
tz.transition 2021, 10, :o2, 1635609600
tz.transition 2022, 3, :o3, 1648310400
tz.transition 2022, 10, :o2, 1667059200
tz.transition 2023, 3, :o3, 1679760000
tz.transition 2023, 10, :o2, 1698508800
tz.transition 2024, 3, :o3, 1711814400
tz.transition 2024, 10, :o2, 1729958400
tz.transition 2025, 3, :o3, 1743264000
tz.transition 2025, 10, :o2, 1761408000
tz.transition 2026, 3, :o3, 1774713600
tz.transition 2026, 10, :o2, 1792857600
tz.transition 2027, 3, :o3, 1806163200
tz.transition 2027, 10, :o2, 1824912000
tz.transition 2028, 3, :o3, 1837612800
tz.transition 2028, 10, :o2, 1856361600
tz.transition 2029, 3, :o3, 1869062400
tz.transition 2029, 10, :o2, 1887811200
tz.transition 2030, 3, :o3, 1901116800
tz.transition 2030, 10, :o2, 1919260800
tz.transition 2031, 3, :o3, 1932566400
tz.transition 2031, 10, :o2, 1950710400
tz.transition 2032, 3, :o3, 1964016000
tz.transition 2032, 10, :o2, 1982764800
tz.transition 2033, 3, :o3, 1995465600
tz.transition 2033, 10, :o2, 2014214400
tz.transition 2034, 3, :o3, 2026915200
tz.transition 2034, 10, :o2, 2045664000
tz.transition 2035, 3, :o3, 2058364800
tz.transition 2035, 10, :o2, 2077113600
tz.transition 2036, 3, :o3, 2090419200
tz.transition 2036, 10, :o2, 2108563200
tz.transition 2037, 3, :o3, 2121868800
tz.transition 2037, 10, :o2, 2140012800
tz.transition 2038, 3, :o3, 14793061, 6
tz.transition 2038, 10, :o2, 14794363, 6
tz.transition 2039, 3, :o3, 14795245, 6
tz.transition 2039, 10, :o2, 14796547, 6
tz.transition 2040, 3, :o3, 14797429, 6
tz.transition 2040, 10, :o2, 14798731, 6
tz.transition 2041, 3, :o3, 14799655, 6
tz.transition 2041, 10, :o2, 14800915, 6
tz.transition 2042, 3, :o3, 14801839, 6
tz.transition 2042, 10, :o2, 14803099, 6
tz.transition 2043, 3, :o3, 14804023, 6
tz.transition 2043, 10, :o2, 14805283, 6
tz.transition 2044, 3, :o3, 14806207, 6
tz.transition 2044, 10, :o2, 14807509, 6
tz.transition 2045, 3, :o3, 14808391, 6
tz.transition 2045, 10, :o2, 14809693, 6
tz.transition 2046, 3, :o3, 14810575, 6
tz.transition 2046, 10, :o2, 14811877, 6
tz.transition 2047, 3, :o3, 14812801, 6
tz.transition 2047, 10, :o2, 14814061, 6
tz.transition 2048, 3, :o3, 14814985, 6
tz.transition 2048, 10, :o2, 14816245, 6
tz.transition 2049, 3, :o3, 14817169, 6
tz.transition 2049, 10, :o2, 14818471, 6
tz.transition 2050, 3, :o3, 14819353, 6
tz.transition 2050, 10, :o2, 14820655, 6
end
end
end
end
end

View File

@@ -1,163 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Yakutsk
include TimezoneDefinition
timezone 'Asia/Yakutsk' do |tz|
tz.offset :o0, 31120, 0, :LMT
tz.offset :o1, 28800, 0, :YAKT
tz.offset :o2, 32400, 0, :YAKT
tz.offset :o3, 32400, 3600, :YAKST
tz.offset :o4, 28800, 3600, :YAKST
tz.transition 1919, 12, :o1, 2616091711, 1080
tz.transition 1930, 6, :o2, 14556889, 6
tz.transition 1981, 3, :o3, 354898800
tz.transition 1981, 9, :o2, 370706400
tz.transition 1982, 3, :o3, 386434800
tz.transition 1982, 9, :o2, 402242400
tz.transition 1983, 3, :o3, 417970800
tz.transition 1983, 9, :o2, 433778400
tz.transition 1984, 3, :o3, 449593200
tz.transition 1984, 9, :o2, 465325200
tz.transition 1985, 3, :o3, 481050000
tz.transition 1985, 9, :o2, 496774800
tz.transition 1986, 3, :o3, 512499600
tz.transition 1986, 9, :o2, 528224400
tz.transition 1987, 3, :o3, 543949200
tz.transition 1987, 9, :o2, 559674000
tz.transition 1988, 3, :o3, 575398800
tz.transition 1988, 9, :o2, 591123600
tz.transition 1989, 3, :o3, 606848400
tz.transition 1989, 9, :o2, 622573200
tz.transition 1990, 3, :o3, 638298000
tz.transition 1990, 9, :o2, 654627600
tz.transition 1991, 3, :o4, 670352400
tz.transition 1991, 9, :o1, 686080800
tz.transition 1992, 1, :o2, 695757600
tz.transition 1992, 3, :o3, 701791200
tz.transition 1992, 9, :o2, 717512400
tz.transition 1993, 3, :o3, 733251600
tz.transition 1993, 9, :o2, 748976400
tz.transition 1994, 3, :o3, 764701200
tz.transition 1994, 9, :o2, 780426000
tz.transition 1995, 3, :o3, 796150800
tz.transition 1995, 9, :o2, 811875600
tz.transition 1996, 3, :o3, 828205200
tz.transition 1996, 10, :o2, 846349200
tz.transition 1997, 3, :o3, 859654800
tz.transition 1997, 10, :o2, 877798800
tz.transition 1998, 3, :o3, 891104400
tz.transition 1998, 10, :o2, 909248400
tz.transition 1999, 3, :o3, 922554000
tz.transition 1999, 10, :o2, 941302800
tz.transition 2000, 3, :o3, 954003600
tz.transition 2000, 10, :o2, 972752400
tz.transition 2001, 3, :o3, 985453200
tz.transition 2001, 10, :o2, 1004202000
tz.transition 2002, 3, :o3, 1017507600
tz.transition 2002, 10, :o2, 1035651600
tz.transition 2003, 3, :o3, 1048957200
tz.transition 2003, 10, :o2, 1067101200
tz.transition 2004, 3, :o3, 1080406800
tz.transition 2004, 10, :o2, 1099155600
tz.transition 2005, 3, :o3, 1111856400
tz.transition 2005, 10, :o2, 1130605200
tz.transition 2006, 3, :o3, 1143306000
tz.transition 2006, 10, :o2, 1162054800
tz.transition 2007, 3, :o3, 1174755600
tz.transition 2007, 10, :o2, 1193504400
tz.transition 2008, 3, :o3, 1206810000
tz.transition 2008, 10, :o2, 1224954000
tz.transition 2009, 3, :o3, 1238259600
tz.transition 2009, 10, :o2, 1256403600
tz.transition 2010, 3, :o3, 1269709200
tz.transition 2010, 10, :o2, 1288458000
tz.transition 2011, 3, :o3, 1301158800
tz.transition 2011, 10, :o2, 1319907600
tz.transition 2012, 3, :o3, 1332608400
tz.transition 2012, 10, :o2, 1351357200
tz.transition 2013, 3, :o3, 1364662800
tz.transition 2013, 10, :o2, 1382806800
tz.transition 2014, 3, :o3, 1396112400
tz.transition 2014, 10, :o2, 1414256400
tz.transition 2015, 3, :o3, 1427562000
tz.transition 2015, 10, :o2, 1445706000
tz.transition 2016, 3, :o3, 1459011600
tz.transition 2016, 10, :o2, 1477760400
tz.transition 2017, 3, :o3, 1490461200
tz.transition 2017, 10, :o2, 1509210000
tz.transition 2018, 3, :o3, 1521910800
tz.transition 2018, 10, :o2, 1540659600
tz.transition 2019, 3, :o3, 1553965200
tz.transition 2019, 10, :o2, 1572109200
tz.transition 2020, 3, :o3, 1585414800
tz.transition 2020, 10, :o2, 1603558800
tz.transition 2021, 3, :o3, 1616864400
tz.transition 2021, 10, :o2, 1635613200
tz.transition 2022, 3, :o3, 1648314000
tz.transition 2022, 10, :o2, 1667062800
tz.transition 2023, 3, :o3, 1679763600
tz.transition 2023, 10, :o2, 1698512400
tz.transition 2024, 3, :o3, 1711818000
tz.transition 2024, 10, :o2, 1729962000
tz.transition 2025, 3, :o3, 1743267600
tz.transition 2025, 10, :o2, 1761411600
tz.transition 2026, 3, :o3, 1774717200
tz.transition 2026, 10, :o2, 1792861200
tz.transition 2027, 3, :o3, 1806166800
tz.transition 2027, 10, :o2, 1824915600
tz.transition 2028, 3, :o3, 1837616400
tz.transition 2028, 10, :o2, 1856365200
tz.transition 2029, 3, :o3, 1869066000
tz.transition 2029, 10, :o2, 1887814800
tz.transition 2030, 3, :o3, 1901120400
tz.transition 2030, 10, :o2, 1919264400
tz.transition 2031, 3, :o3, 1932570000
tz.transition 2031, 10, :o2, 1950714000
tz.transition 2032, 3, :o3, 1964019600
tz.transition 2032, 10, :o2, 1982768400
tz.transition 2033, 3, :o3, 1995469200
tz.transition 2033, 10, :o2, 2014218000
tz.transition 2034, 3, :o3, 2026918800
tz.transition 2034, 10, :o2, 2045667600
tz.transition 2035, 3, :o3, 2058368400
tz.transition 2035, 10, :o2, 2077117200
tz.transition 2036, 3, :o3, 2090422800
tz.transition 2036, 10, :o2, 2108566800
tz.transition 2037, 3, :o3, 2121872400
tz.transition 2037, 10, :o2, 2140016400
tz.transition 2038, 3, :o3, 59172245, 24
tz.transition 2038, 10, :o2, 59177453, 24
tz.transition 2039, 3, :o3, 59180981, 24
tz.transition 2039, 10, :o2, 59186189, 24
tz.transition 2040, 3, :o3, 59189717, 24
tz.transition 2040, 10, :o2, 59194925, 24
tz.transition 2041, 3, :o3, 59198621, 24
tz.transition 2041, 10, :o2, 59203661, 24
tz.transition 2042, 3, :o3, 59207357, 24
tz.transition 2042, 10, :o2, 59212397, 24
tz.transition 2043, 3, :o3, 59216093, 24
tz.transition 2043, 10, :o2, 59221133, 24
tz.transition 2044, 3, :o3, 59224829, 24
tz.transition 2044, 10, :o2, 59230037, 24
tz.transition 2045, 3, :o3, 59233565, 24
tz.transition 2045, 10, :o2, 59238773, 24
tz.transition 2046, 3, :o3, 59242301, 24
tz.transition 2046, 10, :o2, 59247509, 24
tz.transition 2047, 3, :o3, 59251205, 24
tz.transition 2047, 10, :o2, 59256245, 24
tz.transition 2048, 3, :o3, 59259941, 24
tz.transition 2048, 10, :o2, 59264981, 24
tz.transition 2049, 3, :o3, 59268677, 24
tz.transition 2049, 10, :o2, 59273885, 24
tz.transition 2050, 3, :o3, 59277413, 24
tz.transition 2050, 10, :o2, 59282621, 24
end
end
end
end
end

View File

@@ -1,165 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Yekaterinburg
include TimezoneDefinition
timezone 'Asia/Yekaterinburg' do |tz|
tz.offset :o0, 14544, 0, :LMT
tz.offset :o1, 14400, 0, :SVET
tz.offset :o2, 18000, 0, :SVET
tz.offset :o3, 18000, 3600, :SVEST
tz.offset :o4, 14400, 3600, :SVEST
tz.offset :o5, 18000, 0, :YEKT
tz.offset :o6, 18000, 3600, :YEKST
tz.transition 1919, 7, :o1, 1453292699, 600
tz.transition 1930, 6, :o2, 7278445, 3
tz.transition 1981, 3, :o3, 354913200
tz.transition 1981, 9, :o2, 370720800
tz.transition 1982, 3, :o3, 386449200
tz.transition 1982, 9, :o2, 402256800
tz.transition 1983, 3, :o3, 417985200
tz.transition 1983, 9, :o2, 433792800
tz.transition 1984, 3, :o3, 449607600
tz.transition 1984, 9, :o2, 465339600
tz.transition 1985, 3, :o3, 481064400
tz.transition 1985, 9, :o2, 496789200
tz.transition 1986, 3, :o3, 512514000
tz.transition 1986, 9, :o2, 528238800
tz.transition 1987, 3, :o3, 543963600
tz.transition 1987, 9, :o2, 559688400
tz.transition 1988, 3, :o3, 575413200
tz.transition 1988, 9, :o2, 591138000
tz.transition 1989, 3, :o3, 606862800
tz.transition 1989, 9, :o2, 622587600
tz.transition 1990, 3, :o3, 638312400
tz.transition 1990, 9, :o2, 654642000
tz.transition 1991, 3, :o4, 670366800
tz.transition 1991, 9, :o1, 686095200
tz.transition 1992, 1, :o5, 695772000
tz.transition 1992, 3, :o6, 701805600
tz.transition 1992, 9, :o5, 717526800
tz.transition 1993, 3, :o6, 733266000
tz.transition 1993, 9, :o5, 748990800
tz.transition 1994, 3, :o6, 764715600
tz.transition 1994, 9, :o5, 780440400
tz.transition 1995, 3, :o6, 796165200
tz.transition 1995, 9, :o5, 811890000
tz.transition 1996, 3, :o6, 828219600
tz.transition 1996, 10, :o5, 846363600
tz.transition 1997, 3, :o6, 859669200
tz.transition 1997, 10, :o5, 877813200
tz.transition 1998, 3, :o6, 891118800
tz.transition 1998, 10, :o5, 909262800
tz.transition 1999, 3, :o6, 922568400
tz.transition 1999, 10, :o5, 941317200
tz.transition 2000, 3, :o6, 954018000
tz.transition 2000, 10, :o5, 972766800
tz.transition 2001, 3, :o6, 985467600
tz.transition 2001, 10, :o5, 1004216400
tz.transition 2002, 3, :o6, 1017522000
tz.transition 2002, 10, :o5, 1035666000
tz.transition 2003, 3, :o6, 1048971600
tz.transition 2003, 10, :o5, 1067115600
tz.transition 2004, 3, :o6, 1080421200
tz.transition 2004, 10, :o5, 1099170000
tz.transition 2005, 3, :o6, 1111870800
tz.transition 2005, 10, :o5, 1130619600
tz.transition 2006, 3, :o6, 1143320400
tz.transition 2006, 10, :o5, 1162069200
tz.transition 2007, 3, :o6, 1174770000
tz.transition 2007, 10, :o5, 1193518800
tz.transition 2008, 3, :o6, 1206824400
tz.transition 2008, 10, :o5, 1224968400
tz.transition 2009, 3, :o6, 1238274000
tz.transition 2009, 10, :o5, 1256418000
tz.transition 2010, 3, :o6, 1269723600
tz.transition 2010, 10, :o5, 1288472400
tz.transition 2011, 3, :o6, 1301173200
tz.transition 2011, 10, :o5, 1319922000
tz.transition 2012, 3, :o6, 1332622800
tz.transition 2012, 10, :o5, 1351371600
tz.transition 2013, 3, :o6, 1364677200
tz.transition 2013, 10, :o5, 1382821200
tz.transition 2014, 3, :o6, 1396126800
tz.transition 2014, 10, :o5, 1414270800
tz.transition 2015, 3, :o6, 1427576400
tz.transition 2015, 10, :o5, 1445720400
tz.transition 2016, 3, :o6, 1459026000
tz.transition 2016, 10, :o5, 1477774800
tz.transition 2017, 3, :o6, 1490475600
tz.transition 2017, 10, :o5, 1509224400
tz.transition 2018, 3, :o6, 1521925200
tz.transition 2018, 10, :o5, 1540674000
tz.transition 2019, 3, :o6, 1553979600
tz.transition 2019, 10, :o5, 1572123600
tz.transition 2020, 3, :o6, 1585429200
tz.transition 2020, 10, :o5, 1603573200
tz.transition 2021, 3, :o6, 1616878800
tz.transition 2021, 10, :o5, 1635627600
tz.transition 2022, 3, :o6, 1648328400
tz.transition 2022, 10, :o5, 1667077200
tz.transition 2023, 3, :o6, 1679778000
tz.transition 2023, 10, :o5, 1698526800
tz.transition 2024, 3, :o6, 1711832400
tz.transition 2024, 10, :o5, 1729976400
tz.transition 2025, 3, :o6, 1743282000
tz.transition 2025, 10, :o5, 1761426000
tz.transition 2026, 3, :o6, 1774731600
tz.transition 2026, 10, :o5, 1792875600
tz.transition 2027, 3, :o6, 1806181200
tz.transition 2027, 10, :o5, 1824930000
tz.transition 2028, 3, :o6, 1837630800
tz.transition 2028, 10, :o5, 1856379600
tz.transition 2029, 3, :o6, 1869080400
tz.transition 2029, 10, :o5, 1887829200
tz.transition 2030, 3, :o6, 1901134800
tz.transition 2030, 10, :o5, 1919278800
tz.transition 2031, 3, :o6, 1932584400
tz.transition 2031, 10, :o5, 1950728400
tz.transition 2032, 3, :o6, 1964034000
tz.transition 2032, 10, :o5, 1982782800
tz.transition 2033, 3, :o6, 1995483600
tz.transition 2033, 10, :o5, 2014232400
tz.transition 2034, 3, :o6, 2026933200
tz.transition 2034, 10, :o5, 2045682000
tz.transition 2035, 3, :o6, 2058382800
tz.transition 2035, 10, :o5, 2077131600
tz.transition 2036, 3, :o6, 2090437200
tz.transition 2036, 10, :o5, 2108581200
tz.transition 2037, 3, :o6, 2121886800
tz.transition 2037, 10, :o5, 2140030800
tz.transition 2038, 3, :o6, 19724083, 8
tz.transition 2038, 10, :o5, 19725819, 8
tz.transition 2039, 3, :o6, 19726995, 8
tz.transition 2039, 10, :o5, 19728731, 8
tz.transition 2040, 3, :o6, 19729907, 8
tz.transition 2040, 10, :o5, 19731643, 8
tz.transition 2041, 3, :o6, 19732875, 8
tz.transition 2041, 10, :o5, 19734555, 8
tz.transition 2042, 3, :o6, 19735787, 8
tz.transition 2042, 10, :o5, 19737467, 8
tz.transition 2043, 3, :o6, 19738699, 8
tz.transition 2043, 10, :o5, 19740379, 8
tz.transition 2044, 3, :o6, 19741611, 8
tz.transition 2044, 10, :o5, 19743347, 8
tz.transition 2045, 3, :o6, 19744523, 8
tz.transition 2045, 10, :o5, 19746259, 8
tz.transition 2046, 3, :o6, 19747435, 8
tz.transition 2046, 10, :o5, 19749171, 8
tz.transition 2047, 3, :o6, 19750403, 8
tz.transition 2047, 10, :o5, 19752083, 8
tz.transition 2048, 3, :o6, 19753315, 8
tz.transition 2048, 10, :o5, 19754995, 8
tz.transition 2049, 3, :o6, 19756227, 8
tz.transition 2049, 10, :o5, 19757963, 8
tz.transition 2050, 3, :o6, 19759139, 8
tz.transition 2050, 10, :o5, 19760875, 8
end
end
end
end
end

View File

@@ -1,165 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Asia
module Yerevan
include TimezoneDefinition
timezone 'Asia/Yerevan' do |tz|
tz.offset :o0, 10680, 0, :LMT
tz.offset :o1, 10800, 0, :YERT
tz.offset :o2, 14400, 0, :YERT
tz.offset :o3, 14400, 3600, :YERST
tz.offset :o4, 10800, 3600, :YERST
tz.offset :o5, 10800, 3600, :AMST
tz.offset :o6, 10800, 0, :AMT
tz.offset :o7, 14400, 0, :AMT
tz.offset :o8, 14400, 3600, :AMST
tz.transition 1924, 5, :o1, 1745213311, 720
tz.transition 1957, 2, :o2, 19487187, 8
tz.transition 1981, 3, :o3, 354916800
tz.transition 1981, 9, :o2, 370724400
tz.transition 1982, 3, :o3, 386452800
tz.transition 1982, 9, :o2, 402260400
tz.transition 1983, 3, :o3, 417988800
tz.transition 1983, 9, :o2, 433796400
tz.transition 1984, 3, :o3, 449611200
tz.transition 1984, 9, :o2, 465343200
tz.transition 1985, 3, :o3, 481068000
tz.transition 1985, 9, :o2, 496792800
tz.transition 1986, 3, :o3, 512517600
tz.transition 1986, 9, :o2, 528242400
tz.transition 1987, 3, :o3, 543967200
tz.transition 1987, 9, :o2, 559692000
tz.transition 1988, 3, :o3, 575416800
tz.transition 1988, 9, :o2, 591141600
tz.transition 1989, 3, :o3, 606866400
tz.transition 1989, 9, :o2, 622591200
tz.transition 1990, 3, :o3, 638316000
tz.transition 1990, 9, :o2, 654645600
tz.transition 1991, 3, :o4, 670370400
tz.transition 1991, 9, :o5, 685569600
tz.transition 1991, 9, :o6, 686098800
tz.transition 1992, 3, :o5, 701812800
tz.transition 1992, 9, :o6, 717534000
tz.transition 1993, 3, :o5, 733273200
tz.transition 1993, 9, :o6, 748998000
tz.transition 1994, 3, :o5, 764722800
tz.transition 1994, 9, :o6, 780447600
tz.transition 1995, 3, :o5, 796172400
tz.transition 1995, 9, :o7, 811897200
tz.transition 1997, 3, :o8, 859672800
tz.transition 1997, 10, :o7, 877816800
tz.transition 1998, 3, :o8, 891122400
tz.transition 1998, 10, :o7, 909266400
tz.transition 1999, 3, :o8, 922572000
tz.transition 1999, 10, :o7, 941320800
tz.transition 2000, 3, :o8, 954021600
tz.transition 2000, 10, :o7, 972770400
tz.transition 2001, 3, :o8, 985471200
tz.transition 2001, 10, :o7, 1004220000
tz.transition 2002, 3, :o8, 1017525600
tz.transition 2002, 10, :o7, 1035669600
tz.transition 2003, 3, :o8, 1048975200
tz.transition 2003, 10, :o7, 1067119200
tz.transition 2004, 3, :o8, 1080424800
tz.transition 2004, 10, :o7, 1099173600
tz.transition 2005, 3, :o8, 1111874400
tz.transition 2005, 10, :o7, 1130623200
tz.transition 2006, 3, :o8, 1143324000
tz.transition 2006, 10, :o7, 1162072800
tz.transition 2007, 3, :o8, 1174773600
tz.transition 2007, 10, :o7, 1193522400
tz.transition 2008, 3, :o8, 1206828000
tz.transition 2008, 10, :o7, 1224972000
tz.transition 2009, 3, :o8, 1238277600
tz.transition 2009, 10, :o7, 1256421600
tz.transition 2010, 3, :o8, 1269727200
tz.transition 2010, 10, :o7, 1288476000
tz.transition 2011, 3, :o8, 1301176800
tz.transition 2011, 10, :o7, 1319925600
tz.transition 2012, 3, :o8, 1332626400
tz.transition 2012, 10, :o7, 1351375200
tz.transition 2013, 3, :o8, 1364680800
tz.transition 2013, 10, :o7, 1382824800
tz.transition 2014, 3, :o8, 1396130400
tz.transition 2014, 10, :o7, 1414274400
tz.transition 2015, 3, :o8, 1427580000
tz.transition 2015, 10, :o7, 1445724000
tz.transition 2016, 3, :o8, 1459029600
tz.transition 2016, 10, :o7, 1477778400
tz.transition 2017, 3, :o8, 1490479200
tz.transition 2017, 10, :o7, 1509228000
tz.transition 2018, 3, :o8, 1521928800
tz.transition 2018, 10, :o7, 1540677600
tz.transition 2019, 3, :o8, 1553983200
tz.transition 2019, 10, :o7, 1572127200
tz.transition 2020, 3, :o8, 1585432800
tz.transition 2020, 10, :o7, 1603576800
tz.transition 2021, 3, :o8, 1616882400
tz.transition 2021, 10, :o7, 1635631200
tz.transition 2022, 3, :o8, 1648332000
tz.transition 2022, 10, :o7, 1667080800
tz.transition 2023, 3, :o8, 1679781600
tz.transition 2023, 10, :o7, 1698530400
tz.transition 2024, 3, :o8, 1711836000
tz.transition 2024, 10, :o7, 1729980000
tz.transition 2025, 3, :o8, 1743285600
tz.transition 2025, 10, :o7, 1761429600
tz.transition 2026, 3, :o8, 1774735200
tz.transition 2026, 10, :o7, 1792879200
tz.transition 2027, 3, :o8, 1806184800
tz.transition 2027, 10, :o7, 1824933600
tz.transition 2028, 3, :o8, 1837634400
tz.transition 2028, 10, :o7, 1856383200
tz.transition 2029, 3, :o8, 1869084000
tz.transition 2029, 10, :o7, 1887832800
tz.transition 2030, 3, :o8, 1901138400
tz.transition 2030, 10, :o7, 1919282400
tz.transition 2031, 3, :o8, 1932588000
tz.transition 2031, 10, :o7, 1950732000
tz.transition 2032, 3, :o8, 1964037600
tz.transition 2032, 10, :o7, 1982786400
tz.transition 2033, 3, :o8, 1995487200
tz.transition 2033, 10, :o7, 2014236000
tz.transition 2034, 3, :o8, 2026936800
tz.transition 2034, 10, :o7, 2045685600
tz.transition 2035, 3, :o8, 2058386400
tz.transition 2035, 10, :o7, 2077135200
tz.transition 2036, 3, :o8, 2090440800
tz.transition 2036, 10, :o7, 2108584800
tz.transition 2037, 3, :o8, 2121890400
tz.transition 2037, 10, :o7, 2140034400
tz.transition 2038, 3, :o8, 29586125, 12
tz.transition 2038, 10, :o7, 29588729, 12
tz.transition 2039, 3, :o8, 29590493, 12
tz.transition 2039, 10, :o7, 29593097, 12
tz.transition 2040, 3, :o8, 29594861, 12
tz.transition 2040, 10, :o7, 29597465, 12
tz.transition 2041, 3, :o8, 29599313, 12
tz.transition 2041, 10, :o7, 29601833, 12
tz.transition 2042, 3, :o8, 29603681, 12
tz.transition 2042, 10, :o7, 29606201, 12
tz.transition 2043, 3, :o8, 29608049, 12
tz.transition 2043, 10, :o7, 29610569, 12
tz.transition 2044, 3, :o8, 29612417, 12
tz.transition 2044, 10, :o7, 29615021, 12
tz.transition 2045, 3, :o8, 29616785, 12
tz.transition 2045, 10, :o7, 29619389, 12
tz.transition 2046, 3, :o8, 29621153, 12
tz.transition 2046, 10, :o7, 29623757, 12
tz.transition 2047, 3, :o8, 29625605, 12
tz.transition 2047, 10, :o7, 29628125, 12
tz.transition 2048, 3, :o8, 29629973, 12
tz.transition 2048, 10, :o7, 29632493, 12
tz.transition 2049, 3, :o8, 29634341, 12
tz.transition 2049, 10, :o7, 29636945, 12
tz.transition 2050, 3, :o8, 29638709, 12
tz.transition 2050, 10, :o7, 29641313, 12
end
end
end
end
end

View File

@@ -1,170 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Europe
module Minsk
include TimezoneDefinition
timezone 'Europe/Minsk' do |tz|
tz.offset :o0, 6616, 0, :LMT
tz.offset :o1, 6600, 0, :MMT
tz.offset :o2, 7200, 0, :EET
tz.offset :o3, 10800, 0, :MSK
tz.offset :o4, 3600, 3600, :CEST
tz.offset :o5, 3600, 0, :CET
tz.offset :o6, 10800, 3600, :MSD
tz.offset :o7, 7200, 3600, :EEST
tz.transition 1879, 12, :o1, 26003326573, 10800
tz.transition 1924, 5, :o2, 349042669, 144
tz.transition 1930, 6, :o3, 29113781, 12
tz.transition 1941, 6, :o4, 19441387, 8
tz.transition 1942, 11, :o5, 58335973, 24
tz.transition 1943, 3, :o4, 58339501, 24
tz.transition 1943, 10, :o5, 58344037, 24
tz.transition 1944, 4, :o4, 58348405, 24
tz.transition 1944, 7, :o3, 29175293, 12
tz.transition 1981, 3, :o6, 354920400
tz.transition 1981, 9, :o3, 370728000
tz.transition 1982, 3, :o6, 386456400
tz.transition 1982, 9, :o3, 402264000
tz.transition 1983, 3, :o6, 417992400
tz.transition 1983, 9, :o3, 433800000
tz.transition 1984, 3, :o6, 449614800
tz.transition 1984, 9, :o3, 465346800
tz.transition 1985, 3, :o6, 481071600
tz.transition 1985, 9, :o3, 496796400
tz.transition 1986, 3, :o6, 512521200
tz.transition 1986, 9, :o3, 528246000
tz.transition 1987, 3, :o6, 543970800
tz.transition 1987, 9, :o3, 559695600
tz.transition 1988, 3, :o6, 575420400
tz.transition 1988, 9, :o3, 591145200
tz.transition 1989, 3, :o6, 606870000
tz.transition 1989, 9, :o3, 622594800
tz.transition 1991, 3, :o7, 670374000
tz.transition 1991, 9, :o2, 686102400
tz.transition 1992, 3, :o7, 701820000
tz.transition 1992, 9, :o2, 717544800
tz.transition 1993, 3, :o7, 733276800
tz.transition 1993, 9, :o2, 749001600
tz.transition 1994, 3, :o7, 764726400
tz.transition 1994, 9, :o2, 780451200
tz.transition 1995, 3, :o7, 796176000
tz.transition 1995, 9, :o2, 811900800
tz.transition 1996, 3, :o7, 828230400
tz.transition 1996, 10, :o2, 846374400
tz.transition 1997, 3, :o7, 859680000
tz.transition 1997, 10, :o2, 877824000
tz.transition 1998, 3, :o7, 891129600
tz.transition 1998, 10, :o2, 909273600
tz.transition 1999, 3, :o7, 922579200
tz.transition 1999, 10, :o2, 941328000
tz.transition 2000, 3, :o7, 954028800
tz.transition 2000, 10, :o2, 972777600
tz.transition 2001, 3, :o7, 985478400
tz.transition 2001, 10, :o2, 1004227200
tz.transition 2002, 3, :o7, 1017532800
tz.transition 2002, 10, :o2, 1035676800
tz.transition 2003, 3, :o7, 1048982400
tz.transition 2003, 10, :o2, 1067126400
tz.transition 2004, 3, :o7, 1080432000
tz.transition 2004, 10, :o2, 1099180800
tz.transition 2005, 3, :o7, 1111881600
tz.transition 2005, 10, :o2, 1130630400
tz.transition 2006, 3, :o7, 1143331200
tz.transition 2006, 10, :o2, 1162080000
tz.transition 2007, 3, :o7, 1174780800
tz.transition 2007, 10, :o2, 1193529600
tz.transition 2008, 3, :o7, 1206835200
tz.transition 2008, 10, :o2, 1224979200
tz.transition 2009, 3, :o7, 1238284800
tz.transition 2009, 10, :o2, 1256428800
tz.transition 2010, 3, :o7, 1269734400
tz.transition 2010, 10, :o2, 1288483200
tz.transition 2011, 3, :o7, 1301184000
tz.transition 2011, 10, :o2, 1319932800
tz.transition 2012, 3, :o7, 1332633600
tz.transition 2012, 10, :o2, 1351382400
tz.transition 2013, 3, :o7, 1364688000
tz.transition 2013, 10, :o2, 1382832000
tz.transition 2014, 3, :o7, 1396137600
tz.transition 2014, 10, :o2, 1414281600
tz.transition 2015, 3, :o7, 1427587200
tz.transition 2015, 10, :o2, 1445731200
tz.transition 2016, 3, :o7, 1459036800
tz.transition 2016, 10, :o2, 1477785600
tz.transition 2017, 3, :o7, 1490486400
tz.transition 2017, 10, :o2, 1509235200
tz.transition 2018, 3, :o7, 1521936000
tz.transition 2018, 10, :o2, 1540684800
tz.transition 2019, 3, :o7, 1553990400
tz.transition 2019, 10, :o2, 1572134400
tz.transition 2020, 3, :o7, 1585440000
tz.transition 2020, 10, :o2, 1603584000
tz.transition 2021, 3, :o7, 1616889600
tz.transition 2021, 10, :o2, 1635638400
tz.transition 2022, 3, :o7, 1648339200
tz.transition 2022, 10, :o2, 1667088000
tz.transition 2023, 3, :o7, 1679788800
tz.transition 2023, 10, :o2, 1698537600
tz.transition 2024, 3, :o7, 1711843200
tz.transition 2024, 10, :o2, 1729987200
tz.transition 2025, 3, :o7, 1743292800
tz.transition 2025, 10, :o2, 1761436800
tz.transition 2026, 3, :o7, 1774742400
tz.transition 2026, 10, :o2, 1792886400
tz.transition 2027, 3, :o7, 1806192000
tz.transition 2027, 10, :o2, 1824940800
tz.transition 2028, 3, :o7, 1837641600
tz.transition 2028, 10, :o2, 1856390400
tz.transition 2029, 3, :o7, 1869091200
tz.transition 2029, 10, :o2, 1887840000
tz.transition 2030, 3, :o7, 1901145600
tz.transition 2030, 10, :o2, 1919289600
tz.transition 2031, 3, :o7, 1932595200
tz.transition 2031, 10, :o2, 1950739200
tz.transition 2032, 3, :o7, 1964044800
tz.transition 2032, 10, :o2, 1982793600
tz.transition 2033, 3, :o7, 1995494400
tz.transition 2033, 10, :o2, 2014243200
tz.transition 2034, 3, :o7, 2026944000
tz.transition 2034, 10, :o2, 2045692800
tz.transition 2035, 3, :o7, 2058393600
tz.transition 2035, 10, :o2, 2077142400
tz.transition 2036, 3, :o7, 2090448000
tz.transition 2036, 10, :o2, 2108592000
tz.transition 2037, 3, :o7, 2121897600
tz.transition 2037, 10, :o2, 2140041600
tz.transition 2038, 3, :o7, 4931021, 2
tz.transition 2038, 10, :o2, 4931455, 2
tz.transition 2039, 3, :o7, 4931749, 2
tz.transition 2039, 10, :o2, 4932183, 2
tz.transition 2040, 3, :o7, 4932477, 2
tz.transition 2040, 10, :o2, 4932911, 2
tz.transition 2041, 3, :o7, 4933219, 2
tz.transition 2041, 10, :o2, 4933639, 2
tz.transition 2042, 3, :o7, 4933947, 2
tz.transition 2042, 10, :o2, 4934367, 2
tz.transition 2043, 3, :o7, 4934675, 2
tz.transition 2043, 10, :o2, 4935095, 2
tz.transition 2044, 3, :o7, 4935403, 2
tz.transition 2044, 10, :o2, 4935837, 2
tz.transition 2045, 3, :o7, 4936131, 2
tz.transition 2045, 10, :o2, 4936565, 2
tz.transition 2046, 3, :o7, 4936859, 2
tz.transition 2046, 10, :o2, 4937293, 2
tz.transition 2047, 3, :o7, 4937601, 2
tz.transition 2047, 10, :o2, 4938021, 2
tz.transition 2048, 3, :o7, 4938329, 2
tz.transition 2048, 10, :o2, 4938749, 2
tz.transition 2049, 3, :o7, 4939057, 2
tz.transition 2049, 10, :o2, 4939491, 2
tz.transition 2050, 3, :o7, 4939785, 2
tz.transition 2050, 10, :o2, 4940219, 2
end
end
end
end
end

View File

@@ -1,23 +0,0 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Pacific
module Fiji
include TimezoneDefinition
timezone 'Pacific/Fiji' do |tz|
tz.offset :o0, 42820, 0, :LMT
tz.offset :o1, 43200, 0, :FJT
tz.offset :o2, 43200, 3600, :FJST
tz.transition 1915, 10, :o1, 10457838739, 4320
tz.transition 1998, 10, :o2, 909842400
tz.transition 1999, 2, :o1, 920124000
tz.transition 1999, 11, :o2, 941896800
tz.transition 2000, 2, :o1, 951573600
end
end
end
end
end

View File

@@ -0,0 +1,8 @@
--no-private
--exclude ^lib/tzinfo/definitions/
--exclude ^lib/tzinfo/indexes/
lib/**/*.rb
-
CHANGES
LICENSE
README

View File

@@ -0,0 +1,505 @@
== Version 0.3.39 (tzdata v2014a) - 9-Mar-2014
* Updated to tzdata version 2014a
(http://mm.icann.org/pipermail/tz-announce/2014-March/000018.html).
== Version 0.3.38 (tzdata v2013g) - 8-Oct-2013
* Updated to tzdata version 2013g
(http://mm.icann.org/pipermail/tz-announce/2013-October/000015.html).
== Version 0.3.37 (tzdata v2013b) - 11-Mar-2013
* Updated to tzdata version 2013b
(http://mm.icann.org/pipermail/tz-announce/2013-March/000010.html).
== Version 0.3.36 (tzdata v2013a) - 3-Mar-2013
* Updated to tzdata version 2013a
(http://mm.icann.org/pipermail/tz-announce/2013-March/000009.html).
* Fix TimezoneTransitionInfo#eql? incorrectly returning false when running on
Ruby 2.0.
* Change eql? and == implementations to test the class of the passed in object
instead of checking individual properties with 'respond_to?'.
== Version 0.3.35 (tzdata v2012i) - 4-Nov-2012
* Updated to tzdata version 2012i
(http://mm.icann.org/pipermail/tz-announce/2012-November/000007.html).
== Version 0.3.34 (tzdata v2012h) - 27-Oct-2012
* Updated to tzdata version 2012h
(http://mm.icann.org/pipermail/tz-announce/2012-October/000006.html).
== Version 0.3.33 (tzdata v2012c) - 8-Apr-2012
* Updated to tzdata version 2012c
(http://article.gmane.org/gmane.comp.time.tz/4859).
== Version 0.3.32 (tzdata v2012b) - 4-Mar-2012
* Updated to tzdata version 2012b
(http://article.gmane.org/gmane.comp.time.tz/4756).
== Version 0.3.31 (tzdata v2011n) - 6-Nov-2011
* Updated to tzdata version 2011n
(http://article.gmane.org/gmane.comp.time.tz/4434).
== Version 0.3.30 (tzdata v2011k) - 29-Sep-2011
* Updated to tzdata version 2011k
(http://article.gmane.org/gmane.comp.time.tz/4084).
== Version 0.3.29 (tzdata v2011h) - 27-Jun-2011
* Updated to tzdata version 2011h
(http://article.gmane.org/gmane.comp.time.tz/3814).
* 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.
Thanks to Kurt Werle for the suggestion and patch.
== Version 0.3.28 (tzdata v2011g) - 13-Jun-2011
* Add support for Ruby 1.9.3 (trunk revision 31668 and later). Thanks to
Aaron Patterson for reporting the problems running on the new version.
Closes #29233.
== Version 0.3.27 (tzdata v2011g) - 26-Apr-2011
* Updated to tzdata version 2011g
(http://article.gmane.org/gmane.comp.time.tz/3758).
== Version 0.3.26 (tzdata v2011e) - 2-Apr-2011
* Updated to tzdata version 2011e
(http://article.gmane.org/gmane.comp.time.tz/3707).
== Version 0.3.25 (tzdata v2011d) - 14-Mar-2011
* Updated to tzdata version 2011d
(http://article.gmane.org/gmane.comp.time.tz/3662).
== Version 0.3.24 (tzdata v2010o) - 15-Jan-2011
* Updated to tzdata version 2010o
(http://article.gmane.org/gmane.comp.time.tz/3473).
== 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.

View File

@@ -0,0 +1,19 @@
Copyright (c) 2005-2006 Philip Ross
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,98 @@
= TZInfo -- Daylight-savings aware timezone support for Ruby
TZInfo[http://tzinfo.github.io] uses the IANA Time Zone Database
(http://www.iana.org/time-zones) to provide
daylight-savings aware transformations between times in different timezones.
This is the same database as used for zoneinfo on Unix machines.
The Time Zone database has been imported (using TZDataParser) and turned into a
set of Ruby modules (which are packaged with this release).
== Example usage
To convert a time in UTC to a local time in the America/New_York timezone, you
can do the following:
require 'tzinfo'
tz = TZInfo::Timezone.get('America/New_York')
local = tz.utc_to_local(Time.utc(2005,8,29,15,35,0))
Note that the Time returned will look like it is UTC (Time.zone will return
"UTC"). This is because it is not currently possible to change the offset of
an individual Time instance.
To convert from a local time to UTC, the local_to_utc method can be used.
utc = tz.local_to_utc(local)
Note that the timezone information of the time you pass in is ignored. The
following two lines will return the same result regardless of the local
timezone:
tz.local_to_utc(Time.local(2006,6,26,1,0,0))
tz.local_to_utc(Time.utc(2006,6,26,1,0,0))
To get information about the rules in force at a particular UTC or local time,
the Timezone.period_for_utc and Timezone.period_for_local methods can be used.
Both of these methods return TimezonePeriod objects. The following gets the
identifier for the period (in this case EDT).
period = tz.period_for_utc(DateTime.new(2005,8,29,15,35,0))
id = period.zone_identifier
In all the above examples, instances of Time can be used instead of DateTime.
Timezone#utc_to_local and Timezone#local_to_utc both return the type they are
passed.
You can get the current local time in a Timezone with the Timezone#now method:
now = tz.now
All methods in TZInfo that take a time can be used with either Time, DateTime
or Integers (Time#to_i). The return type will be the same as the type passed in.
You can also access Timezones by Country (ISO 3166 country code). The following
gets all the Timezone identifiers for the US:
us = TZInfo::Country.get('US')
timezones = us.zone_identifiers
The zone_info method of Country provides an additional description and
location for each Timezone in the Country.
The above covers the most common uses of Timezone and Country. For more detail,
see the API documentation for the individual classes.
== Documentation
API documentation for TZInfo is available on RubyDoc.info[http://rubydoc.info/gems/tzinfo/frames].
== Installation
The preferred method of installing TZInfo is through the GEM file (RubyGems[http://docs.rubygems.org/] required):
% gem install tzinfo-x.y.z.gem
or to automatically download and install:
% gem install tzinfo --remote
== License
TZInfo is released under the MIT[http://opensource.org/licenses/mit-license.html] license.
== Source Code
Source code for TZInfo is available on GitHub[https://github.com/tzinfo/tzinfo].
== Issue Tracker
Please post any bugs, issues, feature requests or questions to the
{GitHub issue tracker}[https://github.com/tzinfo/tzinfo/issues].

View File

@@ -0,0 +1,282 @@
# Available options:
#
# rake test - Runs all test cases.
# rake package - Runs test cases and builds packages for distribution.
# rake rdoc - Builds API documentation in doc dir.
# rake build_tz_modules - Builds Timezone modules and the Country index.
# Expects to find source data in ../data.
# rake build_tz_module zone=Zone/Name - Builds a single Timezone module.
# Expects to find source data in ../data.
# rake build_countries - Builds the Country index.
# Expects to find source data in ../data.
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'rake/gempackagetask'
require 'fileutils'
Rake::TaskManager.class_eval do
def remove_task(task_name)
@tasks.delete(task_name.to_s)
end
end
def remove_task(task_name)
Rake.application.remove_task(task_name)
end
self.class.class_eval { alias_method :orig_sh, :sh }
private :orig_sh
def sh(*cmd, &block)
if cmd.first =~ /\A__tar_with_owner__ -?([zjcvf]+)(.*)\z/
opts = $1
args = $2
cmd[0] = "tar c --owner 0 --group 0 -#{opts.gsub('c', '')}#{args}"
end
orig_sh(*cmd, &block)
end
BUILD_TZ_CLASSES_DIR = 'lib/tzinfo.build_tz_classes'
SPEC = eval(File.read('tzinfo.gemspec'))
package_task = Rake::GemPackageTask.new(SPEC) do |pkg|
pkg.need_zip = true
pkg.need_tar_gz = true
pkg.tar_command = '__tar_with_owner__'
end
# Replace the Rake::PackageTask task that prepares the files to package with
# a version that ensures the permissions are correct for the package.
# Also just copy rather than link the files so that old versions are maintained.
remove_task package_task.package_dir_path
file package_task.package_dir_path => [package_task.package_dir] + package_task.package_files do
mkdir_p package_task.package_dir_path rescue nil
chmod(0755, package_task.package_dir_path)
package_task.package_files.each do |fn|
f = File.join(package_task.package_dir_path, fn)
fdir = File.dirname(f)
mkdir_p(fdir) if !File.exist?(fdir)
if File.directory?(fn)
mkdir_p(f)
chmod(0755, f)
else
rm_f f
cp(fn, f)
chmod(0644, f)
end
end
end
# Replace the Rake::GemPackageTask task that builds the gem with a version that
# changes to the copied package directory first. This allows the gem builder
# to pick up the correct file permissions.
remove_task "#{package_task.package_dir}/#{package_task.gem_file}"
file "#{package_task.package_dir}/#{package_task.gem_file}" => [package_task.package_dir] + package_task.gem_spec.files do
when_writing("Creating GEM") do
chdir(package_task.package_dir_path) do
Gem::Builder.new(package_task.gem_spec).build
end
verbose(true) do
mv File.join(package_task.package_dir_path, package_task.gem_file), "#{package_task.package_dir}/#{package_task.gem_file}"
end
end
end
Rake::TestTask.new('test') do |t|
# Force a particular timezone to be local (helps find issues when local
# timezone isn't GMT). This won't work on Windows.
ENV['TZ'] = 'America/Los_Angeles'
t.libs << '.'
t.pattern = 'test/tc_*.rb'
t.verbose = true
end
Rake::RDocTask.new do |rdoc|
rdoc.rdoc_dir = 'doc'
rdoc.title = "TZInfo"
rdoc.options << '--inline-source'
rdoc.options.concat SPEC.rdoc_options
rdoc.rdoc_files.include(*SPEC.extra_rdoc_files)
rdoc.rdoc_files.include('lib')
end
task :build_tz_modules do
require 'lib/tzinfo/tzdataparser'
FileUtils.mkdir_p(BUILD_TZ_CLASSES_DIR)
begin
p = TZInfo::TZDataParser.new('data', BUILD_TZ_CLASSES_DIR)
p.execute
scm = Scm.create(File.dirname(__FILE__))
['indexes', 'definitions'].each do |dir|
scm.sync("#{BUILD_TZ_CLASSES_DIR}/#{dir}", "lib/tzinfo/#{dir}")
end
ensure
FileUtils.rm_rf(BUILD_TZ_CLASSES_DIR)
end
end
class Scm
def self.create(dir)
if File.directory?(File.join(dir, '.git'))
GitScm.new(dir)
elsif File.directory?(File.join(dir, '.svn'))
SvnScm.new(dir)
else
NullScm.new(dir)
end
end
def initialize(dir)
end
def sync(source_dir, target_dir)
puts "Sync from #{source_dir} to #{target_dir}#{command ? " using #{command}" : ''}"
sync_dirs(source_dir, target_dir)
end
protected
def exec_scm(params)
puts "#{command} #{params}"
`#{command} #{params}`
raise "#{command} exited with status #$?" if $? != 0
end
private
def sync_dirs(source_dir, target_dir)
# Assumes a directory will never turn into a file and vice-versa
# (files will all end in .rb, directories won't).
source_entries, target_entries = [source_dir, target_dir].collect do |dir|
Dir.entries(dir).delete_if {|entry| entry =~ /\A\./}.sort
end
until source_entries.empty? || target_entries.empty?
last_source = source_entries.last
last_target = target_entries.last
if last_source == last_target
source_file = File.join(source_dir, last_source)
target_file = File.join(target_dir, last_target)
if File.directory?(source_file)
sync_dirs(source_file, target_file)
else
FileUtils.cp(source_file, target_file)
end
source_entries.pop
target_entries.pop
elsif source_entries.last < target_entries.last
sync_only_in_target(target_dir, target_entries)
else
sync_only_in_source(source_dir, target_dir, source_entries)
end
end
until target_entries.empty?
sync_only_in_target(target_dir, target_entries)
end
until source_entries.empty?
sync_only_in_source(source_dir, target_dir, source_entries)
end
end
def sync_only_in_target(target_dir, target_entries)
target_file = File.join(target_dir, target_entries.last)
delete(target_file)
target_entries.pop
end
def sync_only_in_source(source_dir, target_dir, source_entries)
source_file = File.join(source_dir, source_entries.last)
target_file = File.join(target_dir, source_entries.last)
if File.directory?(source_file)
Dir.mkdir(target_file)
add(target_file)
sync_dirs(source_file, target_file)
else
FileUtils.cp(source_file, target_file)
add(target_file)
end
source_entries.pop
end
end
class NullScm < Scm
def command
nil
end
def add(file)
end
def delete(file)
puts "rm -rf \"#{file}\""
FileUtils.rm_rf(file)
end
end
class GitScm < Scm
def command
'git'
end
def add(file)
unless File.directory?(file)
exec_scm "add \"#{file}\""
end
end
def delete(file)
exec_scm "rm -rf \"#{file}\""
end
end
class SvnScm < Scm
def command
'svn'
end
def add(file)
exec_scm "add \"#{file}\""
end
def delete(file)
exec_scm "delete --force \"#{file}\""
end
end
task :build_tz_module do
require 'lib/tzinfo/tzdataparser'
p = TZInfo::TZDataParser.new('data', 'lib/tzinfo')
p.generate_countries = false
p.only_zones = [ENV['zone']]
p.execute
end
task :build_countries do
require 'lib/tzinfo/tzdataparser'
p = TZInfo::TZDataParser.new('data', 'lib/tzinfo')
p.generate_countries = true
p.generate_zones = false
p.execute
end

View File

@@ -1,13 +1,13 @@
#--
# Copyright (c) 2005-2006 Philip Ross
#
# Copyright (c) 2005-2010 Philip Ross
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
@@ -25,10 +25,31 @@
$:.unshift(File.dirname(__FILE__)) unless
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
require 'tzinfo/ruby_core_support'
require 'tzinfo/offset_rationals'
require 'tzinfo/time_or_datetime'
require 'tzinfo/timezone_definition'
require 'tzinfo/timezone_offset_info'
require 'tzinfo/timezone_transition_info'
require 'tzinfo/timezone_index_definition'
require 'tzinfo/timezone_info'
require 'tzinfo/data_timezone_info'
require 'tzinfo/linked_timezone_info'
require 'tzinfo/timezone_period'
require 'tzinfo/timezone'
# require 'tzinfo/country'
# require 'tzinfo/tzdataparser'
# require 'tzinfo/timezone_proxy'
require 'tzinfo/info_timezone'
require 'tzinfo/data_timezone'
require 'tzinfo/linked_timezone'
require 'tzinfo/definitions'
require 'tzinfo/timezone_proxy'
require 'tzinfo/country_index_definition'
require 'tzinfo/country_info'
require 'tzinfo/country'
require 'tzinfo/country_timezone'

View File

@@ -0,0 +1,180 @@
#--
# Copyright (c) 2005-2013 Philip Ross
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#++
module TZInfo
# Thrown by Country#get if the code given is not valid.
class InvalidCountryCode < StandardError
end
# An ISO 3166 country. Can be used to get a list of Timezones for a country.
# For example:
#
# us = Country.get('US')
# us.zone_identifiers
# us.zones
# us.zone_info
class Country
include Comparable
# Defined countries.
#
# @!visibility private
@@countries = {}
# Whether the countries index has been loaded yet.
#
# @!visibility private
@@index_loaded = false
# Gets a Country by its ISO 3166 code. Raises an InvalidCountryCode
# exception if it couldn't be found.
def self.get(identifier)
instance = @@countries[identifier]
unless instance
load_index
info = Indexes::Countries.countries[identifier]
raise InvalidCountryCode.new, 'Invalid identifier' unless info
instance = Country.new(info)
@@countries[identifier] = instance
end
instance
end
# If identifier is a CountryInfo object, initializes the Country instance,
# otherwise calls get(identifier).
def self.new(identifier)
if identifier.kind_of?(CountryInfo)
instance = super()
instance.send :setup, identifier
instance
else
get(identifier)
end
end
# Returns an Array of all the valid country codes.
def self.all_codes
load_index
Indexes::Countries.countries.keys
end
# Returns an Array of all the defined Countries.
def self.all
load_index
Indexes::Countries.countries.keys.collect {|code| get(code)}
end
# The ISO 3166 country code.
def code
@info.code
end
# The name of the country.
def name
@info.name
end
# Alias for name.
def to_s
name
end
# Returns internal object state as a programmer-readable string.
def inspect
"#<#{self.class}: #{@info.code}>"
end
# Returns a frozen array of all the zone identifiers for the country. These
# are in an order that
# (1) makes some geographical sense, and
# (2) puts the most populous zones first, where that does not contradict (1).
def zone_identifiers
@info.zone_identifiers
end
alias zone_names zone_identifiers
# An array of all the Timezones for this country. Returns TimezoneProxy
# objects to avoid the overhead of loading Timezone definitions until
# a conversion is actually required. The Timezones are returned in an order
# that
# (1) makes some geographical sense, and
# (2) puts the most populous zones first, where that does not contradict (1).
def zones
zone_identifiers.collect {|id|
Timezone.get_proxy(id)
}
end
# Returns a frozen array of all the timezones for the for the country as
# CountryTimezone instances (containing extra information about each zone).
# These are in an order that
# (1) makes some geographical sense, and
# (2) puts the most populous zones first, where that does not contradict (1).
def zone_info
@info.zones
end
# Compare two Countries based on their code. Returns -1 if c is less
# than self, 0 if c is equal to self and +1 if c is greater than self.
def <=>(c)
code <=> c.code
end
# Returns true if and only if the code of c is equal to the code of this
# Country.
def eql?(c)
self == c
end
# Returns a hash value for this Country.
def hash
code.hash
end
# Dumps this Country for marshalling.
def _dump(limit)
code
end
# Loads a marshalled Country.
def self._load(data)
Country.get(data)
end
private
# Loads in the index of countries if it hasn't already been loaded.
def self.load_index
unless @@index_loaded
require 'tzinfo/indexes/countries'
@@index_loaded = true
end
end
# Called by Country.new to initialize a new Country instance. The info
# parameter is a CountryInfo that defines the country.
def setup(info)
@info = info
end
end
end

View File

@@ -0,0 +1,53 @@
#--
# Copyright (c) 2006-2013 Philip Ross
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#++
module TZInfo
# The country index file includes CountryIndexDefinition which provides
# a country method used to define each country in the index.
#
# @private
module CountryIndexDefinition #:nodoc:
def self.append_features(base)
super
base.extend(ClassMethods)
base.instance_eval { @countries = {} }
end
# Class methods for inclusion.
#
# @private
module ClassMethods #:nodoc:
# Defines a country with an ISO 3166 country code, name and block. The
# block will be evaluated to obtain all the timezones for the country.
# Calls Country.country_defined with the definition of each country.
def country(code, name, &block)
@countries[code] = CountryInfo.new(code, name, &block)
end
# Returns a frozen hash of all the countries that have been defined in
# the index.
def countries
@countries.freeze
end
end
end
end

View File

@@ -0,0 +1,82 @@
#--
# Copyright (c) 2006-2013 Philip Ross
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#++
module TZInfo
# Class to store the data loaded from the country index. Instances of this
# class are passed to the blocks in the index that define timezones.
#
# @private
class CountryInfo #:nodoc:
attr_reader :code
attr_reader :name
# Constructs a new CountryInfo with an ISO 3166 country code, name and
# block. The block will be evaluated to obtain the timezones for the country
# (when they are first needed).
def initialize(code, name, &block)
@code = code
@name = name
@block = block
@zones = nil
@zone_identifiers = nil
end
# Called by the index data to define a timezone for the country.
def timezone(identifier, latitude_numerator, latitude_denominator,
longitude_numerator, longitude_denominator, description = nil)
# Currently only store the identifiers.
@zones << CountryTimezone.new(identifier, latitude_numerator,
latitude_denominator, longitude_numerator, longitude_denominator,
description)
end
# Returns a frozen array of all the zone identifiers for the country. These
# are in the order they were added using the timezone method.
def zone_identifiers
unless @zone_identifiers
@zone_identifiers = zones.collect {|zone| zone.identifier}
@zone_identifiers.freeze
end
@zone_identifiers
end
# Returns internal object state as a programmer-readable string.
def inspect
"#<#{self.class}: #@code>"
end
# Returns a frozen array of all the timezones for the for the country as
# CountryTimezone instances. These are in the order they were added using
# the timezone method.
def zones
unless @zones
@zones = []
@block.call(self) if @block
@block = nil
@zones.freeze
end
@zones
end
end
end

View File

@@ -0,0 +1,100 @@
#--
# Copyright (c) 2006-2013 Philip Ross
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#++
module TZInfo
# A Timezone within a Country. This contains extra information about the
# Timezone that is specific to the Country (a Timezone could be used by
# multiple countries).
class CountryTimezone
# The zone identifier.
attr_reader :identifier
# A description of this timezone in relation to the country, e.g.
# "Eastern Time". This is usually nil for countries having only a single
# Timezone.
attr_reader :description
# Creates a new CountryTimezone with a timezone identifier, latitude,
# longitude and description. The latitude and longitude are specified as
# rationals - a numerator and denominator. For performance reasons, the
# numerators and denominators must be specified in their lowest form.
#
# CountryTimezone instances should not normally be constructed manually.
def initialize(identifier, latitude_numerator, latitude_denominator,
longitude_numerator, longitude_denominator, description = nil) #:nodoc:
@identifier = identifier
@latitude_numerator = latitude_numerator
@latitude_denominator = latitude_denominator
@longitude_numerator = longitude_numerator
@longitude_denominator = longitude_denominator
@description = description
end
# The Timezone (actually a TimezoneProxy for performance reasons).
def timezone
Timezone.get_proxy(@identifier)
end
# if description is not nil, this method returns description; otherwise it
# returns timezone.friendly_identifier(true).
def description_or_friendly_identifier
description || timezone.friendly_identifier(true)
end
# The latitude of this timezone in degrees as a Rational.
def latitude
@latitude ||= RubyCoreSupport.rational_new!(@latitude_numerator, @latitude_denominator)
end
# The longitude of this timezone in degrees as a Rational.
def longitude
@longitude ||= RubyCoreSupport.rational_new!(@longitude_numerator, @longitude_denominator)
end
# Returns true if and only if the given CountryTimezone is equal to the
# current CountryTimezone (has the same identifer, latitude, longitude
# and description).
def ==(ct)
ct.kind_of?(CountryTimezone) &&
identifier == ct.identifier && latitude == ct.latitude &&
longitude == ct.longitude && description == ct.description
end
# Returns true if and only if the given CountryTimezone is equal to the
# current CountryTimezone (has the same identifer, latitude, longitude
# and description).
def eql?(ct)
self == ct
end
# Returns a hash of this CountryTimezone.
def hash
@identifier.hash ^ @latitude_numerator.hash ^ @latitude_denominator.hash ^
@longitude_numerator.hash ^ @longitude_denominator.hash ^ @description.hash
end
# Returns internal object state as a programmer-readable string.
def inspect
"#<#{self.class}: #@identifier>"
end
end
end

View File

@@ -1,5 +1,5 @@
#--
# Copyright (c) 2006 Philip Ross
# Copyright (c) 2006-2013 Philip Ross
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -20,11 +20,11 @@
# THE SOFTWARE.
#++
require 'tzinfo/info_timezone'
module TZInfo
# A Timezone based on a DataTimezoneInfo.
#
# @private
class DataTimezone < InfoTimezone #:nodoc:
# Returns the TimezonePeriod for the given UTC time. utc can either be

View File

@@ -1,5 +1,5 @@
#--
# Copyright (c) 2006 Philip Ross
# Copyright (c) 2006-2013 Philip Ross
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,6 @@
# THE SOFTWARE.
#++
require 'tzinfo/time_or_datetime'
require 'tzinfo/timezone_info'
require 'tzinfo/timezone_offset_info'
require 'tzinfo/timezone_period'
require 'tzinfo/timezone_transition_info'
module TZInfo
# Thrown if no offsets have been defined when calling period_for_utc or
# periods_for_local. Indicates an error in the timezone data.
@@ -33,6 +27,8 @@ module TZInfo
end
# Represents a (non-linked) timezone defined in a data module.
#
# @private
class DataTimezoneInfo < TimezoneInfo #:nodoc:
# Constructs a new TimezoneInfo with its identifier.

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Abidjan
include TimezoneDefinition
timezone 'Africa/Abidjan' do |tz|
tz.offset :o0, -968, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.transition 1912, 1, :o1, 26129547121, 10800
end
end
end
end
end

View File

@@ -0,0 +1,31 @@
module TZInfo
module Definitions
module Africa
module Accra
include TimezoneDefinition
timezone 'Africa/Accra' do |tz|
tz.offset :o0, -52, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.offset :o2, 0, 1200, :GHST
tz.transition 1918, 1, :o1, 52306441213, 21600
tz.transition 1936, 9, :o2, 4856825, 2
tz.transition 1936, 12, :o1, 174854411, 72
tz.transition 1937, 9, :o2, 4857555, 2
tz.transition 1937, 12, :o1, 174880691, 72
tz.transition 1938, 9, :o2, 4858285, 2
tz.transition 1938, 12, :o1, 174906971, 72
tz.transition 1939, 9, :o2, 4859015, 2
tz.transition 1939, 12, :o1, 174933251, 72
tz.transition 1940, 9, :o2, 4859747, 2
tz.transition 1940, 12, :o1, 174959603, 72
tz.transition 1941, 9, :o2, 4860477, 2
tz.transition 1941, 12, :o1, 174985883, 72
tz.transition 1942, 9, :o2, 4861207, 2
tz.transition 1942, 12, :o1, 175012163, 72
end
end
end
end
end

View File

@@ -0,0 +1,18 @@
module TZInfo
module Definitions
module Africa
module Addis_Ababa
include TimezoneDefinition
timezone 'Africa/Addis_Ababa' do |tz|
tz.offset :o0, 9288, 0, :LMT
tz.offset :o1, 9320, 0, :ADMT
tz.offset :o2, 10800, 0, :EAT
tz.transition 1869, 12, :o1, 961625357, 400
tz.transition 1936, 5, :o2, 5245113727, 2160
end
end
end
end
end

View File

@@ -0,0 +1,20 @@
module TZInfo
module Definitions
module Africa
module Asmara
include TimezoneDefinition
timezone 'Africa/Asmara' do |tz|
tz.offset :o0, 9332, 0, :LMT
tz.offset :o1, 9332, 0, :AMT
tz.offset :o2, 9320, 0, :ADMT
tz.offset :o3, 10800, 0, :EAT
tz.transition 1869, 12, :o1, 51927769267, 21600
tz.transition 1889, 12, :o2, 52085557267, 21600
tz.transition 1936, 5, :o3, 5245113727, 2160
end
end
end
end
end

View File

@@ -0,0 +1,11 @@
module TZInfo
module Definitions
module Africa
module Asmera
include TimezoneDefinition
linked_timezone 'Africa/Asmera', 'Africa/Asmara'
end
end
end
end

View File

@@ -0,0 +1,19 @@
module TZInfo
module Definitions
module Africa
module Bamako
include TimezoneDefinition
timezone 'Africa/Bamako' do |tz|
tz.offset :o0, -1920, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.offset :o2, -3600, 0, :WAT
tz.transition 1912, 1, :o1, 217746227, 90
tz.transition 1934, 2, :o2, 4854989, 2
tz.transition 1960, 6, :o1, 58490533, 24
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Bangui
include TimezoneDefinition
timezone 'Africa/Bangui' do |tz|
tz.offset :o0, 4460, 0, :LMT
tz.offset :o1, 3600, 0, :WAT
tz.transition 1911, 12, :o1, 10451818577, 4320
end
end
end
end
end

View File

@@ -0,0 +1,20 @@
module TZInfo
module Definitions
module Africa
module Banjul
include TimezoneDefinition
timezone 'Africa/Banjul' do |tz|
tz.offset :o0, -3996, 0, :LMT
tz.offset :o1, -3996, 0, :BMT
tz.offset :o2, -3600, 0, :WAT
tz.offset :o3, 0, 0, :GMT
tz.transition 1912, 1, :o1, 1935522037, 800
tz.transition 1935, 1, :o2, 1942242837, 800
tz.transition 1964, 1, :o3, 58521493, 24
end
end
end
end
end

View File

@@ -0,0 +1,18 @@
module TZInfo
module Definitions
module Africa
module Bissau
include TimezoneDefinition
timezone 'Africa/Bissau' do |tz|
tz.offset :o0, -3740, 0, :LMT
tz.offset :o1, -3600, 0, :WAT
tz.offset :o2, 0, 0, :GMT
tz.transition 1911, 5, :o1, 10450868587, 4320
tz.transition 1975, 1, :o2, 157770000
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Blantyre
include TimezoneDefinition
timezone 'Africa/Blantyre' do |tz|
tz.offset :o0, 8400, 0, :LMT
tz.offset :o1, 7200, 0, :CAT
tz.transition 1903, 2, :o1, 173964557, 72
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Brazzaville
include TimezoneDefinition
timezone 'Africa/Brazzaville' do |tz|
tz.offset :o0, 3668, 0, :LMT
tz.offset :o1, 3600, 0, :WAT
tz.transition 1911, 12, :o1, 52259093083, 21600
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Bujumbura
include TimezoneDefinition
timezone 'Africa/Bujumbura' do |tz|
tz.offset :o0, 7048, 0, :LMT
tz.offset :o1, 7200, 0, :CAT
tz.transition 1889, 12, :o1, 26042778919, 10800
end
end
end
end
end

View File

@@ -1,5 +1,3 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Africa
@@ -7,11 +5,11 @@ module TZInfo
include TimezoneDefinition
timezone 'Africa/Cairo' do |tz|
tz.offset :o0, 7500, 0, :LMT
tz.offset :o0, 7509, 0, :LMT
tz.offset :o1, 7200, 0, :EET
tz.offset :o2, 7200, 3600, :EEST
tz.transition 1900, 9, :o1, 695604503, 288
tz.transition 1900, 9, :o1, 69560450297, 28800
tz.transition 1940, 7, :o2, 29157905, 12
tz.transition 1940, 9, :o1, 19439227, 8
tz.transition 1941, 4, :o2, 29161193, 12
@@ -129,89 +127,11 @@ module TZInfo
tz.transition 2008, 4, :o2, 1209074400
tz.transition 2008, 8, :o1, 1219957200
tz.transition 2009, 4, :o2, 1240524000
tz.transition 2009, 8, :o1, 1251406800
tz.transition 2009, 8, :o1, 1250802000
tz.transition 2010, 4, :o2, 1272578400
tz.transition 2010, 8, :o1, 1282856400
tz.transition 2011, 4, :o2, 1304028000
tz.transition 2011, 8, :o1, 1314306000
tz.transition 2012, 4, :o2, 1335477600
tz.transition 2012, 8, :o1, 1346360400
tz.transition 2013, 4, :o2, 1366927200
tz.transition 2013, 8, :o1, 1377810000
tz.transition 2014, 4, :o2, 1398376800
tz.transition 2014, 8, :o1, 1409259600
tz.transition 2015, 4, :o2, 1429826400
tz.transition 2015, 8, :o1, 1440709200
tz.transition 2016, 4, :o2, 1461880800
tz.transition 2016, 8, :o1, 1472158800
tz.transition 2017, 4, :o2, 1493330400
tz.transition 2017, 8, :o1, 1504213200
tz.transition 2018, 4, :o2, 1524780000
tz.transition 2018, 8, :o1, 1535662800
tz.transition 2019, 4, :o2, 1556229600
tz.transition 2019, 8, :o1, 1567112400
tz.transition 2020, 4, :o2, 1587679200
tz.transition 2020, 8, :o1, 1598562000
tz.transition 2021, 4, :o2, 1619733600
tz.transition 2021, 8, :o1, 1630011600
tz.transition 2022, 4, :o2, 1651183200
tz.transition 2022, 8, :o1, 1661461200
tz.transition 2023, 4, :o2, 1682632800
tz.transition 2023, 8, :o1, 1693515600
tz.transition 2024, 4, :o2, 1714082400
tz.transition 2024, 8, :o1, 1724965200
tz.transition 2025, 4, :o2, 1745532000
tz.transition 2025, 8, :o1, 1756414800
tz.transition 2026, 4, :o2, 1776981600
tz.transition 2026, 8, :o1, 1787864400
tz.transition 2027, 4, :o2, 1809036000
tz.transition 2027, 8, :o1, 1819314000
tz.transition 2028, 4, :o2, 1840485600
tz.transition 2028, 8, :o1, 1851368400
tz.transition 2029, 4, :o2, 1871935200
tz.transition 2029, 8, :o1, 1882818000
tz.transition 2030, 4, :o2, 1903384800
tz.transition 2030, 8, :o1, 1914267600
tz.transition 2031, 4, :o2, 1934834400
tz.transition 2031, 8, :o1, 1945717200
tz.transition 2032, 4, :o2, 1966888800
tz.transition 2032, 8, :o1, 1977166800
tz.transition 2033, 4, :o2, 1998338400
tz.transition 2033, 8, :o1, 2008616400
tz.transition 2034, 4, :o2, 2029788000
tz.transition 2034, 8, :o1, 2040670800
tz.transition 2035, 4, :o2, 2061237600
tz.transition 2035, 8, :o1, 2072120400
tz.transition 2036, 4, :o2, 2092687200
tz.transition 2036, 8, :o1, 2103570000
tz.transition 2037, 4, :o2, 2124136800
tz.transition 2037, 8, :o1, 2135019600
tz.transition 2038, 4, :o2, 29586521, 12
tz.transition 2038, 8, :o1, 19725299, 8
tz.transition 2039, 4, :o2, 29590889, 12
tz.transition 2039, 8, :o1, 19728211, 8
tz.transition 2040, 4, :o2, 29595257, 12
tz.transition 2040, 8, :o1, 19731179, 8
tz.transition 2041, 4, :o2, 29599625, 12
tz.transition 2041, 8, :o1, 19734091, 8
tz.transition 2042, 4, :o2, 29603993, 12
tz.transition 2042, 8, :o1, 19737003, 8
tz.transition 2043, 4, :o2, 29608361, 12
tz.transition 2043, 8, :o1, 19739915, 8
tz.transition 2044, 4, :o2, 29612813, 12
tz.transition 2044, 8, :o1, 19742827, 8
tz.transition 2045, 4, :o2, 29617181, 12
tz.transition 2045, 8, :o1, 19745795, 8
tz.transition 2046, 4, :o2, 29621549, 12
tz.transition 2046, 8, :o1, 19748707, 8
tz.transition 2047, 4, :o2, 29625917, 12
tz.transition 2047, 8, :o1, 19751619, 8
tz.transition 2048, 4, :o2, 29630285, 12
tz.transition 2048, 8, :o1, 19754531, 8
tz.transition 2049, 4, :o2, 29634737, 12
tz.transition 2049, 8, :o1, 19757443, 8
tz.transition 2050, 4, :o2, 29639105, 12
tz.transition 2050, 8, :o1, 19760355, 8
tz.transition 2010, 8, :o1, 1281474000
tz.transition 2010, 9, :o2, 1284069600
tz.transition 2010, 9, :o1, 1285880400
end
end
end

View File

@@ -0,0 +1,146 @@
module TZInfo
module Definitions
module Africa
module Casablanca
include TimezoneDefinition
timezone 'Africa/Casablanca' do |tz|
tz.offset :o0, -1820, 0, :LMT
tz.offset :o1, 0, 0, :WET
tz.offset :o2, 0, 3600, :WEST
tz.offset :o3, 3600, 0, :CET
tz.transition 1913, 10, :o1, 10454687371, 4320
tz.transition 1939, 9, :o2, 4859037, 2
tz.transition 1939, 11, :o1, 58310075, 24
tz.transition 1940, 2, :o2, 4859369, 2
tz.transition 1945, 11, :o1, 58362659, 24
tz.transition 1950, 6, :o2, 4866887, 2
tz.transition 1950, 10, :o1, 58406003, 24
tz.transition 1967, 6, :o2, 2439645, 1
tz.transition 1967, 9, :o1, 58554347, 24
tz.transition 1974, 6, :o2, 141264000
tz.transition 1974, 8, :o1, 147222000
tz.transition 1976, 5, :o2, 199756800
tz.transition 1976, 7, :o1, 207702000
tz.transition 1977, 5, :o2, 231292800
tz.transition 1977, 9, :o1, 244249200
tz.transition 1978, 6, :o2, 265507200
tz.transition 1978, 8, :o1, 271033200
tz.transition 1984, 3, :o3, 448243200
tz.transition 1985, 12, :o1, 504918000
tz.transition 2008, 6, :o2, 1212278400
tz.transition 2008, 8, :o1, 1220223600
tz.transition 2009, 6, :o2, 1243814400
tz.transition 2009, 8, :o1, 1250809200
tz.transition 2010, 5, :o2, 1272758400
tz.transition 2010, 8, :o1, 1281222000
tz.transition 2011, 4, :o2, 1301788800
tz.transition 2011, 7, :o1, 1312066800
tz.transition 2012, 4, :o2, 1335664800
tz.transition 2012, 7, :o1, 1342749600
tz.transition 2012, 8, :o2, 1345428000
tz.transition 2012, 9, :o1, 1348970400
tz.transition 2013, 4, :o2, 1367114400
tz.transition 2013, 7, :o1, 1373162400
tz.transition 2013, 8, :o2, 1376100000
tz.transition 2013, 10, :o1, 1382839200
tz.transition 2014, 3, :o2, 1396144800
tz.transition 2014, 6, :o1, 1404007200
tz.transition 2014, 7, :o2, 1406599200
tz.transition 2014, 10, :o1, 1414288800
tz.transition 2015, 3, :o2, 1427594400
tz.transition 2015, 6, :o1, 1434592800
tz.transition 2015, 7, :o2, 1437184800
tz.transition 2015, 10, :o1, 1445738400
tz.transition 2016, 3, :o2, 1459044000
tz.transition 2016, 6, :o1, 1465264800
tz.transition 2016, 7, :o2, 1467856800
tz.transition 2016, 10, :o1, 1477792800
tz.transition 2017, 3, :o2, 1490493600
tz.transition 2017, 5, :o1, 1495850400
tz.transition 2017, 6, :o2, 1498442400
tz.transition 2017, 10, :o1, 1509242400
tz.transition 2018, 3, :o2, 1521943200
tz.transition 2018, 5, :o1, 1526436000
tz.transition 2018, 6, :o2, 1529028000
tz.transition 2018, 10, :o1, 1540692000
tz.transition 2019, 3, :o2, 1553997600
tz.transition 2019, 5, :o1, 1557108000
tz.transition 2019, 6, :o2, 1559700000
tz.transition 2019, 10, :o1, 1572141600
tz.transition 2020, 3, :o2, 1585447200
tz.transition 2020, 4, :o1, 1587693600
tz.transition 2020, 5, :o2, 1590285600
tz.transition 2020, 10, :o1, 1603591200
tz.transition 2021, 3, :o2, 1616896800
tz.transition 2021, 4, :o1, 1618279200
tz.transition 2021, 5, :o2, 1620871200
tz.transition 2021, 10, :o1, 1635645600
tz.transition 2022, 3, :o2, 1648346400
tz.transition 2022, 4, :o1, 1648951200
tz.transition 2022, 5, :o2, 1651543200
tz.transition 2022, 10, :o1, 1667095200
tz.transition 2023, 4, :o2, 1682128800
tz.transition 2023, 10, :o1, 1698544800
tz.transition 2024, 4, :o2, 1712714400
tz.transition 2024, 10, :o1, 1729994400
tz.transition 2025, 3, :o2, 1743386400
tz.transition 2025, 10, :o1, 1761444000
tz.transition 2026, 3, :o2, 1774749600
tz.transition 2026, 10, :o1, 1792893600
tz.transition 2027, 3, :o2, 1806199200
tz.transition 2027, 10, :o1, 1824948000
tz.transition 2028, 3, :o2, 1837648800
tz.transition 2028, 10, :o1, 1856397600
tz.transition 2029, 3, :o2, 1869098400
tz.transition 2029, 10, :o1, 1887847200
tz.transition 2030, 3, :o2, 1901152800
tz.transition 2030, 10, :o1, 1919296800
tz.transition 2031, 3, :o2, 1932602400
tz.transition 2031, 10, :o1, 1950746400
tz.transition 2032, 3, :o2, 1964052000
tz.transition 2032, 10, :o1, 1982800800
tz.transition 2033, 3, :o2, 1995501600
tz.transition 2033, 10, :o1, 2014250400
tz.transition 2034, 3, :o2, 2026951200
tz.transition 2034, 10, :o1, 2045700000
tz.transition 2035, 3, :o2, 2058400800
tz.transition 2035, 10, :o1, 2077149600
tz.transition 2036, 3, :o2, 2090455200
tz.transition 2036, 10, :o1, 2108167200
tz.transition 2037, 3, :o2, 2121904800
tz.transition 2037, 10, :o1, 2138839200
tz.transition 2038, 3, :o2, 29586127, 12
tz.transition 2038, 9, :o1, 29588359, 12
tz.transition 2038, 10, :o2, 29588719, 12
tz.transition 2038, 10, :o1, 29588731, 12
tz.transition 2039, 3, :o2, 29590495, 12
tz.transition 2039, 10, :o1, 29593099, 12
tz.transition 2040, 3, :o2, 29594863, 12
tz.transition 2040, 10, :o1, 29597467, 12
tz.transition 2041, 3, :o2, 29599315, 12
tz.transition 2041, 10, :o1, 29601835, 12
tz.transition 2042, 3, :o2, 29603683, 12
tz.transition 2042, 10, :o1, 29606203, 12
tz.transition 2043, 3, :o2, 29608051, 12
tz.transition 2043, 10, :o1, 29610571, 12
tz.transition 2044, 3, :o2, 29612419, 12
tz.transition 2044, 10, :o1, 29615023, 12
tz.transition 2045, 3, :o2, 29616787, 12
tz.transition 2045, 10, :o1, 29619391, 12
tz.transition 2046, 3, :o2, 29621155, 12
tz.transition 2046, 10, :o1, 29623759, 12
tz.transition 2047, 3, :o2, 29625607, 12
tz.transition 2047, 10, :o1, 29628127, 12
tz.transition 2048, 3, :o2, 29629975, 12
tz.transition 2048, 10, :o1, 29632495, 12
tz.transition 2049, 3, :o2, 29634343, 12
tz.transition 2049, 10, :o1, 29636947, 12
tz.transition 2050, 3, :o2, 29638711, 12
tz.transition 2050, 10, :o1, 29641315, 12
end
end
end
end
end

View File

@@ -0,0 +1,170 @@
module TZInfo
module Definitions
module Africa
module Ceuta
include TimezoneDefinition
timezone 'Africa/Ceuta' do |tz|
tz.offset :o0, -1276, 0, :LMT
tz.offset :o1, 0, 0, :WET
tz.offset :o2, 0, 3600, :WEST
tz.offset :o3, 3600, 0, :CET
tz.offset :o4, 3600, 3600, :CEST
tz.transition 1901, 1, :o1, 52172327119, 21600
tz.transition 1918, 5, :o2, 58121291, 24
tz.transition 1918, 10, :o1, 29062493, 12
tz.transition 1924, 4, :o2, 58173419, 24
tz.transition 1924, 10, :o1, 58177523, 24
tz.transition 1926, 4, :o2, 58190963, 24
tz.transition 1926, 10, :o1, 58194995, 24
tz.transition 1927, 4, :o2, 58199531, 24
tz.transition 1927, 10, :o1, 58203731, 24
tz.transition 1928, 4, :o2, 58208435, 24
tz.transition 1928, 10, :o1, 58212635, 24
tz.transition 1967, 6, :o2, 2439645, 1
tz.transition 1967, 9, :o1, 58554347, 24
tz.transition 1974, 6, :o2, 141264000
tz.transition 1974, 8, :o1, 147222000
tz.transition 1976, 5, :o2, 199756800
tz.transition 1976, 7, :o1, 207702000
tz.transition 1977, 5, :o2, 231292800
tz.transition 1977, 9, :o1, 244249200
tz.transition 1978, 6, :o2, 265507200
tz.transition 1978, 8, :o1, 271033200
tz.transition 1984, 3, :o3, 448243200
tz.transition 1986, 3, :o4, 512528400
tz.transition 1986, 9, :o3, 528253200
tz.transition 1987, 3, :o4, 543978000
tz.transition 1987, 9, :o3, 559702800
tz.transition 1988, 3, :o4, 575427600
tz.transition 1988, 9, :o3, 591152400
tz.transition 1989, 3, :o4, 606877200
tz.transition 1989, 9, :o3, 622602000
tz.transition 1990, 3, :o4, 638326800
tz.transition 1990, 9, :o3, 654656400
tz.transition 1991, 3, :o4, 670381200
tz.transition 1991, 9, :o3, 686106000
tz.transition 1992, 3, :o4, 701830800
tz.transition 1992, 9, :o3, 717555600
tz.transition 1993, 3, :o4, 733280400
tz.transition 1993, 9, :o3, 749005200
tz.transition 1994, 3, :o4, 764730000
tz.transition 1994, 9, :o3, 780454800
tz.transition 1995, 3, :o4, 796179600
tz.transition 1995, 9, :o3, 811904400
tz.transition 1996, 3, :o4, 828234000
tz.transition 1996, 10, :o3, 846378000
tz.transition 1997, 3, :o4, 859683600
tz.transition 1997, 10, :o3, 877827600
tz.transition 1998, 3, :o4, 891133200
tz.transition 1998, 10, :o3, 909277200
tz.transition 1999, 3, :o4, 922582800
tz.transition 1999, 10, :o3, 941331600
tz.transition 2000, 3, :o4, 954032400
tz.transition 2000, 10, :o3, 972781200
tz.transition 2001, 3, :o4, 985482000
tz.transition 2001, 10, :o3, 1004230800
tz.transition 2002, 3, :o4, 1017536400
tz.transition 2002, 10, :o3, 1035680400
tz.transition 2003, 3, :o4, 1048986000
tz.transition 2003, 10, :o3, 1067130000
tz.transition 2004, 3, :o4, 1080435600
tz.transition 2004, 10, :o3, 1099184400
tz.transition 2005, 3, :o4, 1111885200
tz.transition 2005, 10, :o3, 1130634000
tz.transition 2006, 3, :o4, 1143334800
tz.transition 2006, 10, :o3, 1162083600
tz.transition 2007, 3, :o4, 1174784400
tz.transition 2007, 10, :o3, 1193533200
tz.transition 2008, 3, :o4, 1206838800
tz.transition 2008, 10, :o3, 1224982800
tz.transition 2009, 3, :o4, 1238288400
tz.transition 2009, 10, :o3, 1256432400
tz.transition 2010, 3, :o4, 1269738000
tz.transition 2010, 10, :o3, 1288486800
tz.transition 2011, 3, :o4, 1301187600
tz.transition 2011, 10, :o3, 1319936400
tz.transition 2012, 3, :o4, 1332637200
tz.transition 2012, 10, :o3, 1351386000
tz.transition 2013, 3, :o4, 1364691600
tz.transition 2013, 10, :o3, 1382835600
tz.transition 2014, 3, :o4, 1396141200
tz.transition 2014, 10, :o3, 1414285200
tz.transition 2015, 3, :o4, 1427590800
tz.transition 2015, 10, :o3, 1445734800
tz.transition 2016, 3, :o4, 1459040400
tz.transition 2016, 10, :o3, 1477789200
tz.transition 2017, 3, :o4, 1490490000
tz.transition 2017, 10, :o3, 1509238800
tz.transition 2018, 3, :o4, 1521939600
tz.transition 2018, 10, :o3, 1540688400
tz.transition 2019, 3, :o4, 1553994000
tz.transition 2019, 10, :o3, 1572138000
tz.transition 2020, 3, :o4, 1585443600
tz.transition 2020, 10, :o3, 1603587600
tz.transition 2021, 3, :o4, 1616893200
tz.transition 2021, 10, :o3, 1635642000
tz.transition 2022, 3, :o4, 1648342800
tz.transition 2022, 10, :o3, 1667091600
tz.transition 2023, 3, :o4, 1679792400
tz.transition 2023, 10, :o3, 1698541200
tz.transition 2024, 3, :o4, 1711846800
tz.transition 2024, 10, :o3, 1729990800
tz.transition 2025, 3, :o4, 1743296400
tz.transition 2025, 10, :o3, 1761440400
tz.transition 2026, 3, :o4, 1774746000
tz.transition 2026, 10, :o3, 1792890000
tz.transition 2027, 3, :o4, 1806195600
tz.transition 2027, 10, :o3, 1824944400
tz.transition 2028, 3, :o4, 1837645200
tz.transition 2028, 10, :o3, 1856394000
tz.transition 2029, 3, :o4, 1869094800
tz.transition 2029, 10, :o3, 1887843600
tz.transition 2030, 3, :o4, 1901149200
tz.transition 2030, 10, :o3, 1919293200
tz.transition 2031, 3, :o4, 1932598800
tz.transition 2031, 10, :o3, 1950742800
tz.transition 2032, 3, :o4, 1964048400
tz.transition 2032, 10, :o3, 1982797200
tz.transition 2033, 3, :o4, 1995498000
tz.transition 2033, 10, :o3, 2014246800
tz.transition 2034, 3, :o4, 2026947600
tz.transition 2034, 10, :o3, 2045696400
tz.transition 2035, 3, :o4, 2058397200
tz.transition 2035, 10, :o3, 2077146000
tz.transition 2036, 3, :o4, 2090451600
tz.transition 2036, 10, :o3, 2108595600
tz.transition 2037, 3, :o4, 2121901200
tz.transition 2037, 10, :o3, 2140045200
tz.transition 2038, 3, :o4, 59172253, 24
tz.transition 2038, 10, :o3, 59177461, 24
tz.transition 2039, 3, :o4, 59180989, 24
tz.transition 2039, 10, :o3, 59186197, 24
tz.transition 2040, 3, :o4, 59189725, 24
tz.transition 2040, 10, :o3, 59194933, 24
tz.transition 2041, 3, :o4, 59198629, 24
tz.transition 2041, 10, :o3, 59203669, 24
tz.transition 2042, 3, :o4, 59207365, 24
tz.transition 2042, 10, :o3, 59212405, 24
tz.transition 2043, 3, :o4, 59216101, 24
tz.transition 2043, 10, :o3, 59221141, 24
tz.transition 2044, 3, :o4, 59224837, 24
tz.transition 2044, 10, :o3, 59230045, 24
tz.transition 2045, 3, :o4, 59233573, 24
tz.transition 2045, 10, :o3, 59238781, 24
tz.transition 2046, 3, :o4, 59242309, 24
tz.transition 2046, 10, :o3, 59247517, 24
tz.transition 2047, 3, :o4, 59251213, 24
tz.transition 2047, 10, :o3, 59256253, 24
tz.transition 2048, 3, :o4, 59259949, 24
tz.transition 2048, 10, :o3, 59264989, 24
tz.transition 2049, 3, :o4, 59268685, 24
tz.transition 2049, 10, :o3, 59273893, 24
tz.transition 2050, 3, :o4, 59277421, 24
tz.transition 2050, 10, :o3, 59282629, 24
end
end
end
end
end

View File

@@ -0,0 +1,19 @@
module TZInfo
module Definitions
module Africa
module Conakry
include TimezoneDefinition
timezone 'Africa/Conakry' do |tz|
tz.offset :o0, -3292, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.offset :o2, -3600, 0, :WAT
tz.transition 1912, 1, :o1, 52259094823, 21600
tz.transition 1934, 2, :o2, 4854989, 2
tz.transition 1960, 1, :o1, 58486429, 24
end
end
end
end
end

View File

@@ -0,0 +1,18 @@
module TZInfo
module Definitions
module Africa
module Dakar
include TimezoneDefinition
timezone 'Africa/Dakar' do |tz|
tz.offset :o0, -4184, 0, :LMT
tz.offset :o1, -3600, 0, :WAT
tz.offset :o2, 0, 0, :GMT
tz.transition 1912, 1, :o1, 26129547523, 10800
tz.transition 1941, 6, :o2, 58323517, 24
end
end
end
end
end

View File

@@ -0,0 +1,19 @@
module TZInfo
module Definitions
module Africa
module Dar_es_Salaam
include TimezoneDefinition
timezone 'Africa/Dar_es_Salaam' do |tz|
tz.offset :o0, 9428, 0, :LMT
tz.offset :o1, 10800, 0, :EAT
tz.offset :o2, 9900, 0, :BEAUT
tz.transition 1930, 12, :o1, 52408995643, 21600
tz.transition 1947, 12, :o2, 19460411, 8
tz.transition 1960, 12, :o1, 233980837, 96
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Djibouti
include TimezoneDefinition
timezone 'Africa/Djibouti' do |tz|
tz.offset :o0, 10356, 0, :LMT
tz.offset :o1, 10800, 0, :EAT
tz.transition 1911, 6, :o1, 17418372337, 7200
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Douala
include TimezoneDefinition
timezone 'Africa/Douala' do |tz|
tz.offset :o0, 2328, 0, :LMT
tz.offset :o1, 3600, 0, :WAT
tz.transition 1911, 12, :o1, 8709848903, 3600
end
end
end
end
end

View File

@@ -0,0 +1,135 @@
module TZInfo
module Definitions
module Africa
module El_Aaiun
include TimezoneDefinition
timezone 'Africa/El_Aaiun' do |tz|
tz.offset :o0, -3168, 0, :LMT
tz.offset :o1, -3600, 0, :WAT
tz.offset :o2, 0, 0, :WET
tz.offset :o3, 0, 3600, :WEST
tz.transition 1934, 1, :o1, 728231561, 300
tz.transition 1976, 4, :o2, 198291600
tz.transition 1976, 5, :o3, 199756800
tz.transition 1976, 7, :o2, 207702000
tz.transition 1977, 5, :o3, 231292800
tz.transition 1977, 9, :o2, 244249200
tz.transition 1978, 6, :o3, 265507200
tz.transition 1978, 8, :o2, 271033200
tz.transition 2008, 6, :o3, 1212278400
tz.transition 2008, 8, :o2, 1220223600
tz.transition 2009, 6, :o3, 1243814400
tz.transition 2009, 8, :o2, 1250809200
tz.transition 2010, 5, :o3, 1272758400
tz.transition 2010, 8, :o2, 1281222000
tz.transition 2011, 4, :o3, 1301788800
tz.transition 2011, 7, :o2, 1312066800
tz.transition 2012, 4, :o3, 1335664800
tz.transition 2012, 7, :o2, 1342749600
tz.transition 2012, 8, :o3, 1345428000
tz.transition 2012, 9, :o2, 1348970400
tz.transition 2013, 4, :o3, 1367114400
tz.transition 2013, 7, :o2, 1373162400
tz.transition 2013, 8, :o3, 1376100000
tz.transition 2013, 10, :o2, 1382839200
tz.transition 2014, 3, :o3, 1396144800
tz.transition 2014, 6, :o2, 1404007200
tz.transition 2014, 7, :o3, 1406599200
tz.transition 2014, 10, :o2, 1414288800
tz.transition 2015, 3, :o3, 1427594400
tz.transition 2015, 6, :o2, 1434592800
tz.transition 2015, 7, :o3, 1437184800
tz.transition 2015, 10, :o2, 1445738400
tz.transition 2016, 3, :o3, 1459044000
tz.transition 2016, 6, :o2, 1465264800
tz.transition 2016, 7, :o3, 1467856800
tz.transition 2016, 10, :o2, 1477792800
tz.transition 2017, 3, :o3, 1490493600
tz.transition 2017, 5, :o2, 1495850400
tz.transition 2017, 6, :o3, 1498442400
tz.transition 2017, 10, :o2, 1509242400
tz.transition 2018, 3, :o3, 1521943200
tz.transition 2018, 5, :o2, 1526436000
tz.transition 2018, 6, :o3, 1529028000
tz.transition 2018, 10, :o2, 1540692000
tz.transition 2019, 3, :o3, 1553997600
tz.transition 2019, 5, :o2, 1557108000
tz.transition 2019, 6, :o3, 1559700000
tz.transition 2019, 10, :o2, 1572141600
tz.transition 2020, 3, :o3, 1585447200
tz.transition 2020, 4, :o2, 1587693600
tz.transition 2020, 5, :o3, 1590285600
tz.transition 2020, 10, :o2, 1603591200
tz.transition 2021, 3, :o3, 1616896800
tz.transition 2021, 4, :o2, 1618279200
tz.transition 2021, 5, :o3, 1620871200
tz.transition 2021, 10, :o2, 1635645600
tz.transition 2022, 3, :o3, 1648346400
tz.transition 2022, 4, :o2, 1648951200
tz.transition 2022, 5, :o3, 1651543200
tz.transition 2022, 10, :o2, 1667095200
tz.transition 2023, 4, :o3, 1682128800
tz.transition 2023, 10, :o2, 1698544800
tz.transition 2024, 4, :o3, 1712714400
tz.transition 2024, 10, :o2, 1729994400
tz.transition 2025, 3, :o3, 1743386400
tz.transition 2025, 10, :o2, 1761444000
tz.transition 2026, 3, :o3, 1774749600
tz.transition 2026, 10, :o2, 1792893600
tz.transition 2027, 3, :o3, 1806199200
tz.transition 2027, 10, :o2, 1824948000
tz.transition 2028, 3, :o3, 1837648800
tz.transition 2028, 10, :o2, 1856397600
tz.transition 2029, 3, :o3, 1869098400
tz.transition 2029, 10, :o2, 1887847200
tz.transition 2030, 3, :o3, 1901152800
tz.transition 2030, 10, :o2, 1919296800
tz.transition 2031, 3, :o3, 1932602400
tz.transition 2031, 10, :o2, 1950746400
tz.transition 2032, 3, :o3, 1964052000
tz.transition 2032, 10, :o2, 1982800800
tz.transition 2033, 3, :o3, 1995501600
tz.transition 2033, 10, :o2, 2014250400
tz.transition 2034, 3, :o3, 2026951200
tz.transition 2034, 10, :o2, 2045700000
tz.transition 2035, 3, :o3, 2058400800
tz.transition 2035, 10, :o2, 2077149600
tz.transition 2036, 3, :o3, 2090455200
tz.transition 2036, 10, :o2, 2108167200
tz.transition 2037, 3, :o3, 2121904800
tz.transition 2037, 10, :o2, 2138839200
tz.transition 2038, 3, :o3, 29586127, 12
tz.transition 2038, 9, :o2, 29588359, 12
tz.transition 2038, 10, :o3, 29588719, 12
tz.transition 2038, 10, :o2, 29588731, 12
tz.transition 2039, 3, :o3, 29590495, 12
tz.transition 2039, 10, :o2, 29593099, 12
tz.transition 2040, 3, :o3, 29594863, 12
tz.transition 2040, 10, :o2, 29597467, 12
tz.transition 2041, 3, :o3, 29599315, 12
tz.transition 2041, 10, :o2, 29601835, 12
tz.transition 2042, 3, :o3, 29603683, 12
tz.transition 2042, 10, :o2, 29606203, 12
tz.transition 2043, 3, :o3, 29608051, 12
tz.transition 2043, 10, :o2, 29610571, 12
tz.transition 2044, 3, :o3, 29612419, 12
tz.transition 2044, 10, :o2, 29615023, 12
tz.transition 2045, 3, :o3, 29616787, 12
tz.transition 2045, 10, :o2, 29619391, 12
tz.transition 2046, 3, :o3, 29621155, 12
tz.transition 2046, 10, :o2, 29623759, 12
tz.transition 2047, 3, :o3, 29625607, 12
tz.transition 2047, 10, :o2, 29628127, 12
tz.transition 2048, 3, :o3, 29629975, 12
tz.transition 2048, 10, :o2, 29632495, 12
tz.transition 2049, 3, :o3, 29634343, 12
tz.transition 2049, 10, :o2, 29636947, 12
tz.transition 2050, 3, :o3, 29638711, 12
tz.transition 2050, 10, :o2, 29641315, 12
end
end
end
end
end

View File

@@ -0,0 +1,51 @@
module TZInfo
module Definitions
module Africa
module Freetown
include TimezoneDefinition
timezone 'Africa/Freetown' do |tz|
tz.offset :o0, -3180, 0, :LMT
tz.offset :o1, -3180, 0, :FMT
tz.offset :o2, -3600, 0, :WAT
tz.offset :o3, -3600, 2400, :SLST
tz.offset :o4, 0, 0, :WAT
tz.offset :o5, 0, 3600, :SLST
tz.offset :o6, 0, 0, :GMT
tz.transition 1882, 1, :o1, 3468163013, 1440
tz.transition 1913, 6, :o2, 3484684133, 1440
tz.transition 1935, 6, :o3, 58270909, 24
tz.transition 1935, 10, :o2, 174821509, 72
tz.transition 1936, 6, :o3, 58279693, 24
tz.transition 1936, 10, :o2, 174847861, 72
tz.transition 1937, 6, :o3, 58288453, 24
tz.transition 1937, 10, :o2, 174874141, 72
tz.transition 1938, 6, :o3, 58297213, 24
tz.transition 1938, 10, :o2, 174900421, 72
tz.transition 1939, 6, :o3, 58305973, 24
tz.transition 1939, 10, :o2, 174926701, 72
tz.transition 1940, 6, :o3, 58314757, 24
tz.transition 1940, 10, :o2, 174953053, 72
tz.transition 1941, 6, :o3, 58323517, 24
tz.transition 1941, 10, :o2, 174979333, 72
tz.transition 1942, 6, :o3, 58332277, 24
tz.transition 1942, 10, :o2, 175005613, 72
tz.transition 1957, 1, :o4, 58460149, 24
tz.transition 1957, 6, :o5, 4871981, 2
tz.transition 1957, 8, :o6, 58465979, 24
tz.transition 1958, 6, :o5, 4872711, 2
tz.transition 1958, 8, :o6, 58474739, 24
tz.transition 1959, 6, :o5, 4873441, 2
tz.transition 1959, 8, :o6, 58483499, 24
tz.transition 1960, 6, :o5, 4874173, 2
tz.transition 1960, 8, :o6, 58492283, 24
tz.transition 1961, 6, :o5, 4874903, 2
tz.transition 1961, 8, :o6, 58501043, 24
tz.transition 1962, 6, :o5, 4875633, 2
tz.transition 1962, 8, :o6, 58509803, 24
end
end
end
end
end

View File

@@ -0,0 +1,21 @@
module TZInfo
module Definitions
module Africa
module Gaborone
include TimezoneDefinition
timezone 'Africa/Gaborone' do |tz|
tz.offset :o0, 6220, 0, :LMT
tz.offset :o1, 5400, 0, :SAST
tz.offset :o2, 7200, 0, :CAT
tz.offset :o3, 7200, 3600, :CAST
tz.transition 1884, 12, :o1, 10409223289, 4320
tz.transition 1903, 2, :o2, 38658791, 16
tz.transition 1943, 9, :o3, 4861973, 2
tz.transition 1944, 3, :o2, 58348043, 24
end
end
end
end
end

View File

@@ -0,0 +1,11 @@
module TZInfo
module Definitions
module Africa
module Juba
include TimezoneDefinition
linked_timezone 'Africa/Juba', 'Africa/Khartoum'
end
end
end
end

View File

@@ -0,0 +1,21 @@
module TZInfo
module Definitions
module Africa
module Kampala
include TimezoneDefinition
timezone 'Africa/Kampala' do |tz|
tz.offset :o0, 7780, 0, :LMT
tz.offset :o1, 10800, 0, :EAT
tz.offset :o2, 9000, 0, :BEAT
tz.offset :o3, 9900, 0, :BEAUT
tz.transition 1928, 6, :o1, 10477850731, 4320
tz.transition 1929, 12, :o2, 19407819, 8
tz.transition 1947, 12, :o3, 116762467, 48
tz.transition 1956, 12, :o1, 233840581, 96
end
end
end
end
end

View File

@@ -0,0 +1,51 @@
module TZInfo
module Definitions
module Africa
module Khartoum
include TimezoneDefinition
timezone 'Africa/Khartoum' do |tz|
tz.offset :o0, 7808, 0, :LMT
tz.offset :o1, 7200, 0, :CAT
tz.offset :o2, 7200, 3600, :CAST
tz.offset :o3, 10800, 0, :EAT
tz.transition 1930, 12, :o1, 3275562253, 1350
tz.transition 1970, 4, :o2, 10360800
tz.transition 1970, 10, :o1, 24786000
tz.transition 1971, 4, :o2, 41810400
tz.transition 1971, 10, :o1, 56322000
tz.transition 1972, 4, :o2, 73432800
tz.transition 1972, 10, :o1, 87944400
tz.transition 1973, 4, :o2, 104882400
tz.transition 1973, 10, :o1, 119480400
tz.transition 1974, 4, :o2, 136332000
tz.transition 1974, 10, :o1, 151016400
tz.transition 1975, 4, :o2, 167781600
tz.transition 1975, 10, :o1, 182552400
tz.transition 1976, 4, :o2, 199231200
tz.transition 1976, 10, :o1, 214174800
tz.transition 1977, 4, :o2, 230680800
tz.transition 1977, 10, :o1, 245710800
tz.transition 1978, 4, :o2, 262735200
tz.transition 1978, 10, :o1, 277246800
tz.transition 1979, 4, :o2, 294184800
tz.transition 1979, 10, :o1, 308782800
tz.transition 1980, 4, :o2, 325634400
tz.transition 1980, 10, :o1, 340405200
tz.transition 1981, 4, :o2, 357084000
tz.transition 1981, 10, :o1, 371941200
tz.transition 1982, 4, :o2, 388533600
tz.transition 1982, 10, :o1, 403477200
tz.transition 1983, 4, :o2, 419983200
tz.transition 1983, 10, :o1, 435013200
tz.transition 1984, 4, :o2, 452037600
tz.transition 1984, 10, :o1, 466635600
tz.transition 1985, 4, :o2, 483487200
tz.transition 1985, 10, :o1, 498171600
tz.transition 2000, 1, :o3, 947930400
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Kigali
include TimezoneDefinition
timezone 'Africa/Kigali' do |tz|
tz.offset :o0, 7216, 0, :LMT
tz.offset :o1, 7200, 0, :CAT
tz.transition 1935, 5, :o1, 13110953849, 5400
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Kinshasa
include TimezoneDefinition
timezone 'Africa/Kinshasa' do |tz|
tz.offset :o0, 3672, 0, :LMT
tz.offset :o1, 3600, 0, :WAT
tz.transition 1897, 11, :o1, 965694983, 400
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Lagos
include TimezoneDefinition
timezone 'Africa/Lagos' do |tz|
tz.offset :o0, 816, 0, :LMT
tz.offset :o1, 3600, 0, :WAT
tz.transition 1919, 8, :o1, 4359964483, 1800
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Libreville
include TimezoneDefinition
timezone 'Africa/Libreville' do |tz|
tz.offset :o0, 2268, 0, :LMT
tz.offset :o1, 3600, 0, :WAT
tz.transition 1911, 12, :o1, 1935521979, 800
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Lome
include TimezoneDefinition
timezone 'Africa/Lome' do |tz|
tz.offset :o0, 292, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.transition 1892, 12, :o1, 52109233127, 21600
end
end
end
end
end

View File

@@ -0,0 +1,18 @@
module TZInfo
module Definitions
module Africa
module Luanda
include TimezoneDefinition
timezone 'Africa/Luanda' do |tz|
tz.offset :o0, 3176, 0, :LMT
tz.offset :o1, 3124, 0, :AOT
tz.offset :o2, 3600, 0, :WAT
tz.transition 1891, 12, :o1, 26050663403, 10800
tz.transition 1911, 5, :o2, 52254341219, 21600
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Lubumbashi
include TimezoneDefinition
timezone 'Africa/Lubumbashi' do |tz|
tz.offset :o0, 6592, 0, :LMT
tz.offset :o1, 7200, 0, :CAT
tz.transition 1897, 11, :o1, 1629610261, 675
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Lusaka
include TimezoneDefinition
timezone 'Africa/Lusaka' do |tz|
tz.offset :o0, 6788, 0, :LMT
tz.offset :o1, 7200, 0, :CAT
tz.transition 1903, 2, :o1, 52189367503, 21600
end
end
end
end
end

View File

@@ -0,0 +1,18 @@
module TZInfo
module Definitions
module Africa
module Malabo
include TimezoneDefinition
timezone 'Africa/Malabo' do |tz|
tz.offset :o0, 2108, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.offset :o2, 3600, 0, :WAT
tz.transition 1911, 12, :o1, 52259093473, 21600
tz.transition 1963, 12, :o2, 4876757, 2
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Maputo
include TimezoneDefinition
timezone 'Africa/Maputo' do |tz|
tz.offset :o0, 7820, 0, :LMT
tz.offset :o1, 7200, 0, :CAT
tz.transition 1903, 2, :o1, 10437873449, 4320
end
end
end
end
end

View File

@@ -0,0 +1,19 @@
module TZInfo
module Definitions
module Africa
module Maseru
include TimezoneDefinition
timezone 'Africa/Maseru' do |tz|
tz.offset :o0, 6600, 0, :LMT
tz.offset :o1, 7200, 0, :SAST
tz.offset :o2, 7200, 3600, :SAST
tz.transition 1903, 2, :o1, 347929117, 144
tz.transition 1943, 9, :o2, 4861973, 2
tz.transition 1944, 3, :o1, 58348043, 24
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Mbabane
include TimezoneDefinition
timezone 'Africa/Mbabane' do |tz|
tz.offset :o0, 7464, 0, :LMT
tz.offset :o1, 7200, 0, :SAST
tz.transition 1903, 2, :o1, 8698227889, 3600
end
end
end
end
end

View File

@@ -0,0 +1,19 @@
module TZInfo
module Definitions
module Africa
module Mogadishu
include TimezoneDefinition
timezone 'Africa/Mogadishu' do |tz|
tz.offset :o0, 10888, 0, :LMT
tz.offset :o1, 10800, 0, :EAT
tz.offset :o2, 9000, 0, :BEAT
tz.transition 1893, 10, :o1, 26057898439, 10800
tz.transition 1930, 12, :o2, 19410739, 8
tz.transition 1956, 12, :o1, 116920291, 48
end
end
end
end
end

View File

@@ -1,5 +1,3 @@
require 'tzinfo/timezone_definition'
module TZInfo
module Definitions
module Africa
@@ -10,12 +8,12 @@ module TZInfo
tz.offset :o0, 8836, 0, :LMT
tz.offset :o1, 10800, 0, :EAT
tz.offset :o2, 9000, 0, :BEAT
tz.offset :o3, 9885, 0, :BEAUT
tz.offset :o3, 9900, 0, :BEAUT
tz.transition 1928, 6, :o1, 52389253391, 21600
tz.transition 1929, 12, :o2, 19407819, 8
tz.transition 1939, 12, :o3, 116622211, 48
tz.transition 1959, 12, :o1, 14036742061, 5760
tz.transition 1959, 12, :o1, 233945701, 96
end
end
end

View File

@@ -0,0 +1,19 @@
module TZInfo
module Definitions
module Africa
module Ndjamena
include TimezoneDefinition
timezone 'Africa/Ndjamena' do |tz|
tz.offset :o0, 3612, 0, :LMT
tz.offset :o1, 3600, 0, :WAT
tz.offset :o2, 3600, 3600, :WAST
tz.transition 1911, 12, :o1, 17419697699, 7200
tz.transition 1979, 10, :o2, 308703600
tz.transition 1980, 3, :o1, 321314400
end
end
end
end
end

View File

@@ -0,0 +1,20 @@
module TZInfo
module Definitions
module Africa
module Niamey
include TimezoneDefinition
timezone 'Africa/Niamey' do |tz|
tz.offset :o0, 508, 0, :LMT
tz.offset :o1, -3600, 0, :WAT
tz.offset :o2, 0, 0, :GMT
tz.offset :o3, 3600, 0, :WAT
tz.transition 1911, 12, :o1, 52259093873, 21600
tz.transition 1934, 2, :o2, 58259869, 24
tz.transition 1960, 1, :o3, 4873869, 2
end
end
end
end
end

View File

@@ -0,0 +1,19 @@
module TZInfo
module Definitions
module Africa
module Nouakchott
include TimezoneDefinition
timezone 'Africa/Nouakchott' do |tz|
tz.offset :o0, -3828, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.offset :o2, -3600, 0, :WAT
tz.transition 1912, 1, :o1, 17419698319, 7200
tz.transition 1934, 2, :o2, 4854989, 2
tz.transition 1960, 11, :o1, 58494397, 24
end
end
end
end
end

View File

@@ -0,0 +1,16 @@
module TZInfo
module Definitions
module Africa
module Ouagadougou
include TimezoneDefinition
timezone 'Africa/Ouagadougou' do |tz|
tz.offset :o0, -364, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.transition 1912, 1, :o1, 52259094091, 21600
end
end
end
end
end

View File

@@ -0,0 +1,18 @@
module TZInfo
module Definitions
module Africa
module Porto__m__Novo
include TimezoneDefinition
timezone 'Africa/Porto-Novo' do |tz|
tz.offset :o0, 628, 0, :LMT
tz.offset :o1, 0, 0, :GMT
tz.offset :o2, 3600, 0, :WAT
tz.transition 1911, 12, :o1, 52259093843, 21600
tz.transition 1934, 2, :o2, 4854989, 2
end
end
end
end
end

View File

@@ -0,0 +1,18 @@
module TZInfo
module Definitions
module Africa
module Sao_Tome
include TimezoneDefinition
timezone 'Africa/Sao_Tome' do |tz|
tz.offset :o0, 1616, 0, :LMT
tz.offset :o1, -2192, 0, :LMT
tz.offset :o2, 0, 0, :GMT
tz.transition 1883, 12, :o1, 13009552999, 5400
tz.transition 1912, 1, :o2, 13064773637, 5400
end
end
end
end
end

View File

@@ -0,0 +1,11 @@
module TZInfo
module Definitions
module Africa
module Timbuktu
include TimezoneDefinition
linked_timezone 'Africa/Timbuktu', 'Africa/Bamako'
end
end
end
end

View File

@@ -0,0 +1,49 @@
module TZInfo
module Definitions
module Africa
module Tripoli
include TimezoneDefinition
timezone 'Africa/Tripoli' do |tz|
tz.offset :o0, 3164, 0, :LMT
tz.offset :o1, 3600, 0, :CET
tz.offset :o2, 3600, 3600, :CEST
tz.offset :o3, 7200, 0, :EET
tz.transition 1919, 12, :o1, 52322208409, 21600
tz.transition 1951, 10, :o2, 58414405, 24
tz.transition 1951, 12, :o1, 29208149, 12
tz.transition 1953, 10, :o2, 58431829, 24
tz.transition 1953, 12, :o1, 29216921, 12
tz.transition 1955, 9, :o2, 58449131, 24
tz.transition 1955, 12, :o1, 29225681, 12
tz.transition 1958, 12, :o3, 58477667, 24
tz.transition 1981, 12, :o1, 378684000
tz.transition 1982, 3, :o2, 386463600
tz.transition 1982, 9, :o1, 402271200
tz.transition 1983, 3, :o2, 417999600
tz.transition 1983, 9, :o1, 433807200
tz.transition 1984, 3, :o2, 449622000
tz.transition 1984, 9, :o1, 465429600
tz.transition 1985, 4, :o2, 481590000
tz.transition 1985, 9, :o1, 496965600
tz.transition 1986, 4, :o2, 512953200
tz.transition 1986, 10, :o1, 528674400
tz.transition 1987, 3, :o2, 544230000
tz.transition 1987, 9, :o1, 560037600
tz.transition 1988, 3, :o2, 575852400
tz.transition 1988, 9, :o1, 591660000
tz.transition 1989, 3, :o2, 607388400
tz.transition 1989, 9, :o1, 623196000
tz.transition 1990, 5, :o3, 641775600
tz.transition 1996, 9, :o1, 844034400
tz.transition 1997, 4, :o2, 860108400
tz.transition 1997, 10, :o3, 875916000
tz.transition 2012, 11, :o1, 1352505600
tz.transition 2013, 3, :o2, 1364515200
tz.transition 2013, 10, :o3, 1382659200
end
end
end
end
end

Some files were not shown because too many files have changed in this diff Show More