rufus-scheduler 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2006-2015, John Mettraux, jmettraux@gmail.com
2
+ # Copyright (c) 2006-2016, John Mettraux, jmettraux@gmail.com
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  # of this software and associated documentation files (the "Software"), to deal
@@ -25,7 +25,7 @@
25
25
  require 'date' if RUBY_VERSION < '1.9.0'
26
26
  require 'time'
27
27
  require 'thread'
28
- #require 'tzinfo'
28
+ require 'tzinfo'
29
29
 
30
30
 
31
31
  module Rufus
@@ -39,7 +39,7 @@ module Rufus
39
39
  require 'rufus/scheduler/job_array'
40
40
  require 'rufus/scheduler/locks'
41
41
 
42
- VERSION = '3.2.0'
42
+ VERSION = '3.3.0'
43
43
 
44
44
  #
45
45
  # A common error class for rufus-scheduler
@@ -154,7 +154,7 @@ module Rufus
154
154
 
155
155
  def uptime
156
156
 
157
- @started_at ? Time.now - @started_at : nil
157
+ @started_at ? Rufus::Scheduler::ZoTime.now - @started_at : nil
158
158
  end
159
159
 
160
160
  def uptime_s
@@ -252,6 +252,9 @@ module Rufus
252
252
 
253
253
  def schedule(arg, callable=nil, opts={}, &block)
254
254
 
255
+ callable, opts = nil, callable if callable.is_a?(Hash)
256
+ opts = opts.dup
257
+
255
258
  opts[:_t] = Scheduler.parse(arg, opts)
256
259
 
257
260
  case opts[:_t]
@@ -263,6 +266,9 @@ module Rufus
263
266
 
264
267
  def repeat(arg, callable=nil, opts={}, &block)
265
268
 
269
+ callable, opts = nil, callable if callable.is_a?(Hash)
270
+ opts = opts.dup
271
+
266
272
  opts[:_t] = Scheduler.parse(arg, opts)
267
273
 
268
274
  case opts[:_t]
@@ -472,6 +478,7 @@ module Rufus
472
478
  stderr.puts(" #{pre} tz:")
473
479
  stderr.puts(" #{pre} ENV['TZ']: #{ENV['TZ']}")
474
480
  stderr.puts(" #{pre} Time.now: #{Time.now}")
481
+ stderr.puts(" #{pre} local_tzone: #{Rufus::Scheduler::ZoTime.local_tzone.inspect}")
475
482
  stderr.puts(" #{pre} scheduler:")
476
483
  stderr.puts(" #{pre} object_id: #{object_id}")
477
484
  stderr.puts(" #{pre} opts:")
@@ -551,7 +558,7 @@ module Rufus
551
558
 
552
559
  def start
553
560
 
554
- @started_at = Time.now
561
+ @started_at = Rufus::Scheduler::ZoTime.now
555
562
 
556
563
  @thread =
557
564
  Thread.new do
@@ -578,7 +585,7 @@ module Rufus
578
585
 
579
586
  def trigger_jobs
580
587
 
581
- now = Time.now
588
+ now = Rufus::Scheduler::ZoTime.now
582
589
 
583
590
  @jobs.each(now) do |job|
584
591
 
@@ -597,9 +604,9 @@ module Rufus
597
604
  next unless job && to && ts
598
605
  # thread might just have become inactive (job -> nil)
599
606
 
600
- to = to.is_a?(Time) ? to : ts + to
607
+ to = ts + to unless to.is_a?(Rufus::Scheduler::ZoTime)
601
608
 
602
- next if to > Time.now
609
+ next if to > Rufus::Scheduler::ZoTime.now
603
610
 
604
611
  t.raise(Rufus::Scheduler::TimeoutError)
605
612
  end
@@ -609,16 +616,18 @@ module Rufus
609
616
 
610
617
  fail NotRunningError.new(
611
618
  'cannot schedule, scheduler is down or shutting down'
612
- ) if @started_at == nil
619
+ ) if @started_at.nil?
613
620
 
614
621
  callable, opts = nil, callable if callable.is_a?(Hash)
622
+ opts = opts.dup unless opts.has_key?(:_t)
623
+
615
624
  return_job_instance ||= opts[:job]
616
625
 
617
626
  job_class =
618
627
  case job_type
619
628
  when :once
620
629
  opts[:_t] ||= Rufus::Scheduler.parse(t, opts)
621
- opts[:_t].is_a?(Time) ? AtJob : InJob
630
+ opts[:_t].is_a?(Numeric) ? InJob : AtJob
622
631
  when :every
623
632
  EveryJob
624
633
  when :interval
data/pics.txt ADDED
@@ -0,0 +1,15 @@
1
+
2
+ https://www.flickr.com/photos/jmettraux/28328118733/
3
+ https://www.flickr.com/photos/jmettraux/28815646622/
4
+ https://www.flickr.com/photos/jmettraux/28809944471/
5
+ https://www.flickr.com/photos/jmettraux/28809945121/
6
+ https://www.flickr.com/photos/jmettraux/27450050822/
7
+ https://www.flickr.com/photos/jmettraux/27048441956/
8
+ https://www.flickr.com/photos/jmettraux/26477791953/
9
+ https://www.flickr.com/photos/jmettraux/26693597902/
10
+ https://www.flickr.com/photos/jmettraux/26490423471/
11
+ https://www.flickr.com/photos/jmettraux/26383842241/
12
+ https://www.flickr.com/photos/jmettraux/24619180429/
13
+ https://www.flickr.com/photos/jmettraux/24617435579/
14
+ https://www.flickr.com/photos/jmettraux/24358197783/
15
+
@@ -21,17 +21,15 @@ job scheduler for Ruby (at, cron, in and every jobs).
21
21
 
22
22
  #s.files = `git ls-files`.split("\n")
23
23
  s.files = Dir[
24
- 'Rakefile',
24
+ 'Makefile',
25
25
  'lib/**/*.rb', #'spec/**/*.rb', 'test/**/*.rb',
26
26
  '*.gemspec', '*.txt', '*.rdoc', '*.md'
27
27
  ]
28
28
 
29
- #s.add_runtime_dependency 'tzinfo'
29
+ s.add_runtime_dependency 'tzinfo'
30
30
 
31
- s.add_development_dependency 'rake'
32
31
  s.add_development_dependency 'rspec', '>= 2.13.0'
33
32
  s.add_development_dependency 'chronic'
34
- s.add_development_dependency 'tzinfo'
35
33
 
36
34
  s.require_path = 'lib'
37
35
  end
metadata CHANGED
@@ -1,78 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rufus-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
5
- prerelease:
4
+ version: 3.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - John Mettraux
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-12-28 00:00:00.000000000 Z
11
+ date: 2016-11-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rake
14
+ name: tzinfo
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
- type: :development
20
+ type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: 2.13.0
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: 2.13.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: chronic
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: tzinfo
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
44
  requirements:
67
- - - ! '>='
45
+ - - ">="
68
46
  - !ruby/object:Gem::Version
69
47
  version: '0'
70
48
  type: :development
71
49
  prerelease: false
72
50
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
51
  requirements:
75
- - - ! '>='
52
+ - - ">="
76
53
  - !ruby/object:Gem::Version
77
54
  version: '0'
78
55
  description: job scheduler for Ruby (at, cron, in and every jobs).
@@ -82,45 +59,45 @@ executables: []
82
59
  extensions: []
83
60
  extra_rdoc_files: []
84
61
  files:
85
- - Rakefile
62
+ - CHANGELOG.txt
63
+ - CREDITS.txt
64
+ - LICENSE.txt
65
+ - Makefile
66
+ - README.md
67
+ - TODO.txt
68
+ - fail18.txt
69
+ - lib/rufus-scheduler.rb
70
+ - lib/rufus/scheduler.rb
86
71
  - lib/rufus/scheduler/cronline.rb
87
72
  - lib/rufus/scheduler/job_array.rb
88
73
  - lib/rufus/scheduler/jobs.rb
89
74
  - lib/rufus/scheduler/locks.rb
90
75
  - lib/rufus/scheduler/util.rb
91
- - lib/rufus/scheduler/zones.rb
92
76
  - lib/rufus/scheduler/zotime.rb
93
- - lib/rufus/scheduler.rb
94
- - lib/rufus-scheduler.rb
77
+ - pics.txt
95
78
  - rufus-scheduler.gemspec
96
- - CHANGELOG.txt
97
- - CREDITS.txt
98
- - LICENSE.txt
99
- - TODO.txt
100
- - README.md
101
79
  homepage: http://github.com/jmettraux/rufus-scheduler
102
80
  licenses:
103
81
  - MIT
82
+ metadata: {}
104
83
  post_install_message:
105
84
  rdoc_options: []
106
85
  require_paths:
107
86
  - lib
108
87
  required_ruby_version: !ruby/object:Gem::Requirement
109
- none: false
110
88
  requirements:
111
- - - ! '>='
89
+ - - ">="
112
90
  - !ruby/object:Gem::Version
113
91
  version: '0'
114
92
  required_rubygems_version: !ruby/object:Gem::Requirement
115
- none: false
116
93
  requirements:
117
- - - ! '>='
94
+ - - ">="
118
95
  - !ruby/object:Gem::Version
119
96
  version: '0'
120
97
  requirements: []
121
98
  rubyforge_project: rufus
122
- rubygems_version: 1.8.23.2
99
+ rubygems_version: 2.4.5.1
123
100
  signing_key:
124
- specification_version: 3
101
+ specification_version: 4
125
102
  summary: job scheduler for Ruby (at, cron, in and every jobs)
126
103
  test_files: []
data/Rakefile DELETED
@@ -1,83 +0,0 @@
1
-
2
- require 'rubygems'
3
-
4
- require 'rake'
5
- require 'rake/clean'
6
- require 'rdoc/task'
7
-
8
-
9
- #
10
- # clean
11
-
12
- CLEAN.include('pkg', 'rdoc')
13
-
14
-
15
- #
16
- # test / spec
17
-
18
- #task :spec => :check_dependencies do
19
- task :spec do
20
- exec 'rspec spec/'
21
- end
22
- task :test => :spec
23
-
24
- task :default => :spec
25
-
26
-
27
- #
28
- # gem
29
-
30
- GEMSPEC_FILE = Dir['*.gemspec'].first
31
- GEMSPEC = eval(File.read(GEMSPEC_FILE))
32
- GEMSPEC.validate
33
-
34
-
35
- desc %{
36
- builds the gem and places it in pkg/
37
- }
38
- task :build do
39
-
40
- sh "gem build #{GEMSPEC_FILE}"
41
- sh "mkdir -p pkg"
42
- sh "mv #{GEMSPEC.name}-#{GEMSPEC.version}.gem pkg/"
43
- end
44
-
45
- desc %{
46
- builds the gem and pushes it to rubygems.org
47
- }
48
- task :push => :build do
49
-
50
- sh "gem push pkg/#{GEMSPEC.name}-#{GEMSPEC.version}.gem"
51
- end
52
-
53
-
54
- #
55
- # rdoc
56
- #
57
- # make sure to have rdoc 2.5.x to run that
58
-
59
- Rake::RDocTask.new do |rd|
60
-
61
- rd.main = 'README.txt'
62
- rd.rdoc_dir = "rdoc/#{GEMSPEC.name}"
63
-
64
- rd.rdoc_files.include('README.rdoc', 'CHANGELOG.txt', 'lib/**/*.rb')
65
-
66
- rd.title = "#{GEMSPEC.name} #{GEMSPEC.version}"
67
- end
68
-
69
-
70
- #
71
- # upload_rdoc
72
-
73
- desc %{
74
- upload the rdoc to rubyforge
75
- }
76
- task :upload_rdoc => [ :clean, :rdoc ] do
77
-
78
- account = 'jmettraux@rubyforge.org'
79
- webdir = '/var/www/gforge-projects/rufus'
80
-
81
- sh "rsync -azv -e ssh rdoc/#{GEMSPEC.name} #{account}:#{webdir}/"
82
- end
83
-
@@ -1,175 +0,0 @@
1
- #--
2
- # Copyright (c) 2006-2015, John Mettraux, jmettraux@gmail.com
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in
12
- # all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #
22
- # Made in Japan.
23
- #++
24
-
25
-
26
- class Rufus::Scheduler
27
-
28
- TIMEZONES = %w[
29
- GB NZ UCT EET CET PRC ROC WET GMT EST ROK UTC MST HST MET Zulu Cuba Iran W-SU
30
- Eire GMT0 Libya Japan Egypt GMT+0 GMT-0 Israel Poland Navajo Turkey GB-Eire
31
- Iceland PST8PDT Etc/UCT CST6CDT NZ-CHAT MST7MDT Jamaica EST5EDT Etc/GMT Etc/UTC
32
- US/Samoa Etc/GMT0 Portugal Hongkong Etc/Zulu Singapore Asia/Baku Etc/GMT-9
33
- Etc/GMT+1 Etc/GMT+0 Asia/Aden Etc/GMT+2 Etc/GMT+3 Etc/GMT+4 Etc/GMT+5 Etc/GMT+6
34
- Etc/GMT+7 Etc/GMT+8 Etc/GMT+9 Etc/GMT-0 Etc/GMT-1 Universal Asia/Dili Greenwich
35
- Asia/Gaza Etc/GMT-8 Etc/GMT-7 US/Alaska Asia/Oral Etc/GMT-6 Etc/GMT-5 Etc/GMT-4
36
- Asia/Hovd Etc/GMT-3 US/Hawaii Etc/GMT-2 Kwajalein Asia/Omsk Asia/Macao
37
- Etc/GMT-14 Asia/Kabul US/Central Etc/GMT-13 US/Arizona Asia/Macau Asia/Qatar
38
- Asia/Seoul Asia/Tokyo Asia/Dubai US/Pacific Etc/GMT-12 Etc/GMT-11 Etc/GMT-10
39
- Asia/Dhaka Asia/Dacca Asia/Chita Etc/GMT+12 Etc/GMT+10 Asia/Amman Asia/Aqtau
40
- Etc/GMT+11 US/Eastern Asia/Thimbu Asia/Brunei Asia/Tehran Asia/Beirut
41
- Europe/Rome Europe/Riga Brazil/Acre Brazil/East Europe/Oslo Brazil/West
42
- Africa/Lome Asia/Taipei Asia/Saigon Asia/Riyadh Asia/Aqtobe Asia/Anadyr
43
- Europe/Kiev Asia/Almaty Africa/Juba Pacific/Yap US/Aleutian Asia/Muscat
44
- US/Mountain Asia/Harbin Asia/Hebron Asia/Manila Asia/Kuwait Asia/Urumqi
45
- US/Michigan Indian/Mahe SystemV/EST5 Asia/Kashgar Indian/Cocos Asia/Jakarta
46
- Asia/Kolkata Asia/Kuching America/Atka Asia/Irkutsk Pacific/Apia Asia/Magadan
47
- Africa/Dakar America/Lima Pacific/Fiji Pacific/Guam Europe/Vaduz Pacific/Niue
48
- Asia/Nicosia Africa/Ceuta Pacific/Truk America/Adak Pacific/Wake Africa/Tunis
49
- Africa/Cairo Asia/Colombo SystemV/AST4 SystemV/CST6 Asia/Karachi Asia/Rangoon
50
- SystemV/MST7 Asia/Baghdad Europe/Malta Africa/Lagos Europe/Minsk SystemV/PST8
51
- Canada/Yukon Asia/Tbilisi America/Nome Asia/Bahrain Africa/Accra Europe/Paris
52
- Asia/Bangkok Asia/Bishkek Asia/Thimphu SystemV/YST9 Asia/Yerevan Asia/Yakutsk
53
- Europe/Sofia Asia/Ust-Nera Australia/ACT Australia/LHI Europe/Tirane
54
- Asia/Tel_Aviv Australia/NSW Africa/Luanda Asia/Tashkent Africa/Lusaka
55
- Asia/Shanghai Africa/Malabo Asia/Sakhalin Africa/Maputo Africa/Maseru
56
- SystemV/HST10 Africa/Kigali Africa/Niamey Pacific/Samoa America/Sitka
57
- Pacific/Palau Pacific/Nauru Pacific/Efate Asia/Makassar Pacific/Chuuk
58
- Africa/Harare Africa/Douala America/Aruba America/Thule America/Bahia
59
- America/Jujuy America/Belem Asia/Katmandu America/Boise Indian/Comoro
60
- Indian/Chagos Asia/Jayapura Europe/Zurich Asia/Istanbul Europe/Zagreb
61
- Etc/Greenwich Europe/Warsaw Europe/Vienna Etc/Universal Asia/Dushanbe
62
- Europe/Athens Europe/Berlin Africa/Bissau Asia/Damascus Africa/Banjul
63
- Europe/Dublin Africa/Bangui Africa/Bamako Europe/Jersey Africa/Asmera
64
- Europe/Lisbon Africa/Asmara Europe/London Asia/Ashgabat Asia/Calcutta
65
- Europe/Madrid Europe/Monaco Europe/Moscow Europe/Prague Europe/Samara
66
- Europe/Skopje Asia/Khandyga Canada/Pacific Africa/Abidjan America/Manaus
67
- Asia/Chongqing Asia/Chungking Africa/Algiers America/Maceio US/Pacific-New
68
- Africa/Conakry America/La_Paz America/Juneau America/Nassau America/Inuvik
69
- Europe/Andorra Africa/Kampala Asia/Ashkhabad Asia/Hong_Kong America/Havana
70
- Canada/Eastern Europe/Belfast Canada/Central Australia/West Asia/Jerusalem
71
- Africa/Mbabane Asia/Kamchatka America/Virgin America/Guyana Asia/Kathmandu
72
- Mexico/General America/Panama Europe/Nicosia America/Denver Europe/Tallinn
73
- Africa/Nairobi America/Dawson Europe/Vatican Europe/Vilnius America/Cuiaba
74
- Africa/Tripoli Pacific/Wallis Atlantic/Faroe Pacific/Tarawa Pacific/Tahiti
75
- Pacific/Saipan Pacific/Ponape America/Cayman America/Cancun Asia/Pontianak
76
- Asia/Pyongyang Asia/Vientiane Asia/Qyzylorda Pacific/Noumea America/Bogota
77
- Pacific/Midway Pacific/Majuro Asia/Samarkand Indian/Mayotte Pacific/Kosrae
78
- Asia/Singapore Indian/Reunion America/Belize America/Regina America/Recife
79
- Pacific/Easter Mexico/BajaSur America/Merida Pacific/Chatham Pacific/Fakaofo
80
- Pacific/Gambier America/Rosario Asia/Ulan_Bator Indian/Maldives Pacific/Norfolk
81
- America/Antigua Asia/Phnom_Penh America/Phoenix America/Caracas America/Cayenne
82
- Atlantic/Azores Pacific/Pohnpei Atlantic/Canary America/Chicago Atlantic/Faeroe
83
- Africa/Windhoek America/Cordoba America/Creston Africa/Timbuktu America/Curacao
84
- Africa/Sao_Tome Africa/Ndjamena SystemV/AST4ADT Europe/Uzhgorod Europe/Tiraspol
85
- SystemV/CST6CDT Africa/Monrovia America/Detroit Europe/Sarajevo Australia/Eucla
86
- America/Tijuana America/Toronto America/Godthab America/Grenada Europe/Istanbul
87
- America/Ojinaga America/Tortola Australia/Perth Europe/Helsinki Australia/South
88
- Europe/Guernsey SystemV/EST5EDT Europe/Chisinau SystemV/MST7MDT Europe/Busingen
89
- Europe/Budapest Europe/Brussels America/Halifax America/Mendoza America/Noronha
90
- America/Nipigon Canada/Atlantic America/Yakutat SystemV/PST8PDT SystemV/YST9YDT
91
- Canada/Mountain Africa/Kinshasa Africa/Khartoum Africa/Gaborone Africa/Freetown
92
- America/Iqaluit America/Jamaica US/East-Indiana Africa/El_Aaiun America/Knox_IN
93
- Africa/Djibouti Africa/Blantyre America/Moncton America/Managua Asia/Choibalsan
94
- America/Marigot Australia/North Europe/Belgrade America/Resolute
95
- America/Mazatlan Pacific/Funafuti Pacific/Auckland Pacific/Honolulu
96
- Pacific/Johnston America/Miquelon America/Santarem Mexico/BajaNorte
97
- America/Santiago Antarctica/Troll America/Asuncion America/Atikokan
98
- America/Montreal America/Barbados Africa/Bujumbura Pacific/Pitcairn
99
- Asia/Ulaanbaatar Indian/Mauritius America/New_York Antarctica/Syowa
100
- America/Shiprock Indian/Kerguelen Asia/Novosibirsk America/Anguilla
101
- Indian/Christmas Asia/Vladivostok Asia/Ho_Chi_Minh Antarctica/Davis
102
- Atlantic/Bermuda Europe/Amsterdam Antarctica/Casey America/St_Johns
103
- Atlantic/Madeira America/Winnipeg America/St_Kitts Europe/Volgograd
104
- Brazil/DeNoronha Europe/Bucharest Africa/Mogadishu America/St_Lucia
105
- Atlantic/Stanley Europe/Stockholm Australia/Currie Europe/Gibraltar
106
- Australia/Sydney Asia/Krasnoyarsk Australia/Darwin America/Dominica
107
- America/Edmonton America/Eirunepe Europe/Podgorica America/Ensenada
108
- Europe/Ljubljana Australia/Hobart Europe/Mariehamn Africa/Lubumbashi
109
- America/Goose_Bay Europe/Luxembourg America/Menominee America/Glace_Bay
110
- America/Fortaleza Africa/Nouakchott America/Matamoros Pacific/Galapagos
111
- America/Guatemala Pacific/Kwajalein Pacific/Marquesas America/Guayaquil
112
- Asia/Kuala_Lumpur Europe/San_Marino America/Monterrey Europe/Simferopol
113
- America/Araguaina Antarctica/Vostok Europe/Copenhagen America/Catamarca
114
- Pacific/Pago_Pago America/Sao_Paulo America/Boa_Vista America/St_Thomas
115
- Chile/Continental America/Vancouver Africa/Casablanca Europe/Bratislava
116
- Pacific/Enderbury Pacific/Rarotonga Europe/Zaporozhye US/Indiana-Starke
117
- Antarctica/Palmer Asia/Novokuznetsk Africa/Libreville America/Chihuahua
118
- America/Anchorage Pacific/Tongatapu Antarctica/Mawson Africa/Porto-Novo
119
- Asia/Yekaterinburg America/Paramaribo America/Hermosillo Atlantic/Jan_Mayen
120
- Antarctica/McMurdo America/Costa_Rica Antarctica/Rothera America/Grand_Turk
121
- Atlantic/Reykjavik Atlantic/St_Helena Australia/Victoria Chile/EasterIsland
122
- Asia/Ujung_Pandang Australia/Adelaide America/Montserrat America/Porto_Acre
123
- Africa/Brazzaville Australia/Brisbane America/Kralendijk America/Montevideo
124
- America/St_Vincent America/Louisville Australia/Canberra Australia/Tasmania
125
- Europe/Isle_of_Man Europe/Kaliningrad Africa/Ouagadougou America/Rio_Branco
126
- Pacific/Kiritimati Africa/Addis_Ababa America/Metlakatla America/Martinique
127
- Asia/Srednekolymsk America/Guadeloupe America/Fort_Wayne Australia/Lindeman
128
- America/Whitehorse Arctic/Longyearbyen America/Pangnirtung America/Mexico_City
129
- America/Los_Angeles America/Rainy_River Atlantic/Cape_Verde Pacific/Guadalcanal
130
- Indian/Antananarivo America/El_Salvador Australia/Lord_Howe Africa/Johannesburg
131
- America/Tegucigalpa Canada/Saskatchewan America/Thunder_Bay Canada/Newfoundland
132
- America/Puerto_Rico America/Yellowknife Australia/Melbourne America/Porto_Velho
133
- Australia/Queensland Australia/Yancowinna America/Santa_Isabel
134
- America/Blanc-Sablon America/Scoresbysund America/Danmarkshavn
135
- Pacific/Port_Moresby Antarctica/Macquarie America/Buenos_Aires
136
- Africa/Dar_es_Salaam America/Campo_Grande America/Dawson_Creek
137
- America/Indianapolis Pacific/Bougainville America/Rankin_Inlet
138
- America/Indiana/Knox America/Lower_Princes America/Coral_Harbour
139
- America/St_Barthelemy Australia/Broken_Hill America/Cambridge_Bay
140
- America/Indiana/Vevay America/Swift_Current America/Port_of_Spain
141
- Antarctica/South_Pole America/Santo_Domingo Atlantic/South_Georgia
142
- America/Port-au-Prince America/Bahia_Banderas America/Indiana/Winamac
143
- America/Indiana/Marengo America/Argentina/Jujuy America/Argentina/Salta
144
- Canada/East-Saskatchewan America/Indiana/Vincennes America/Argentina/Tucuman
145
- America/Argentina/Ushuaia Antarctica/DumontDUrville America/Indiana/Tell_City
146
- America/Argentina/Mendoza America/Argentina/Cordoba America/Indiana/Petersburg
147
- America/Argentina/San_Luis America/Argentina/San_Juan America/Argentina/La_Rioja
148
- America/North_Dakota/Center America/Kentucky/Monticello
149
- America/North_Dakota/Beulah America/Kentucky/Louisville
150
- America/Argentina/Catamarca America/Indiana/Indianapolis
151
- America/North_Dakota/New_Salem America/Argentina/Rio_Gallegos
152
- America/Argentina/Buenos_Aires America/Argentina/ComodRivadavia
153
- ]
154
- TIMEZONEs = TIMEZONES.collect(&:downcase)
155
-
156
- ##
157
- ## http://en.wikipedia.org/wiki/List_of_time_zone_abbreviations
158
- #
159
- #ABBREVIATIONS = %w[
160
- #ACDT ACST ACT ADT AEDT AEST AFT AKDT AKST AMST AMST AMT AMT ART AST AST AWDT
161
- #AWST AZOST AZT BDT BIOT BIT BOT BRT BST BST BTT CAT CCT CDT CDT CEDT CEST CET
162
- #CHADT CHAST CHOT ChST CHUT CIST CIT CKT CLST CLT COST COT CST CST CST CST CST
163
- #CT CVT CWST CXT DAVT DDUT DFT EASST EAST EAT ECT ECT EDT EEDT EEST EET EGST EGT
164
- #EIT EST EST FET FJT FKST FKST FKT FNT GALT GAMT GET GFT GILT GIT GMT GST GST
165
- #GYT HADT HAEC HAST HKT HMT HOVT HST ICT IDT IOT IRDT IRKT IRST IST IST IST JST
166
- #KGT KOST KRAT KST LHST LHST LINT MAGT MART MAWT MDT MET MEST MHT MIST MIT MMT
167
- #MSK MST MST MST MUT MVT MYT NCT NDT NFT NPT NST NT NUT NZDT NZST OMST ORAT PDT
168
- #PET PETT PGT PHOT PKT PMDT PMST PONT PST PST PYST PYT RET ROTT SAKT SAMT SAST
169
- #SBT SCT SGT SLST SRET SRT SST SST SYOT TAHT THA TFT TJT TKT TLT TMT TOT TVT UCT
170
- #ULAT USZ1 UTC UYST UYT UZT VET VLAT VOLT VOST VUT WAKT WAST WAT WEDT WEST WET
171
- #WIT WST YAKT YEKT Z
172
- #].uniq
173
-
174
- end
175
-