ruby-changes:58535
From: Nobuyoshi <ko1@a...>
Date: Fri, 1 Nov 2019 17:30:53 +0900 (JST)
Subject: [ruby-changes:58535] 6abf4c4802 (master): [ruby/date] Added update-zonetab target
https://git.ruby-lang.org/ruby.git/commit/?id=6abf4c4802 From 6abf4c4802c15c54742e3e8db9bfcab4207704b9 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Fri, 1 Nov 2019 17:24:52 +0900 Subject: [ruby/date] Added update-zonetab target https://github.com/ruby/date/commit/9bc6e30a82 diff --git a/bin/update-abbr b/bin/update-abbr deleted file mode 100644 index 31a1e06..0000000 --- a/bin/update-abbr +++ /dev/null @@ -1,34 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0 -require 'nokogiri' -require 'open-uri' - -doc = Nokogiri::HTML(URI.open('https://www.timeanddate.com/time/zones/')) - -h = {} - -doc.css('#tz-abb tbody tr').each do |tr| - tds = tr.css('td') - abbr = tds[0].text.strip.downcase - offset = tds[3].text.strip.gsub(/UTC\s*/, '') - next if offset.include?('/') # skip ambiguous timezones - next if offset.empty? - - - hour, min = offset.split(':', 2) - offset = (Integer(hour) * 60 + (Integer(min || 0)))*60 - if h.has_key?(abbr) - h[abbr] = false - else - h[abbr] = offset - end -end - -h.delete_if{|_,v| !v} - -lines = File.readlines('ext/date/zonetab.list') -lines.select{|l| l.include?(',')}. - map{|l| l.split(',', 2)[0]}. - each{|a| h.delete(a)} - -lines.insert(-2, h.sort.map{|k,v| "#{k},#{v}\n"}) -lines.flatten! -File.write('ext/date/zonetab.list', lines.join) diff --git a/ext/date/prereq.mk b/ext/date/prereq.mk index b9d9a24..fa371e0 100644 --- a/ext/date/prereq.mk +++ b/ext/date/prereq.mk @@ -6,3 +6,7 @@ https://github.com/ruby/ruby/blob/trunk/ext/date/prereq.mk#L6 > $(@F) zonetab.h: zonetab.list + +.PHONY: update-zonetab +update-zonetab: + $(RUBY) -C $(srcdir) update-abbr.rb diff --git a/ext/date/update-abbr b/ext/date/update-abbr new file mode 100644 index 0000000..e5f6a78 --- /dev/null +++ b/ext/date/update-abbr @@ -0,0 +1,35 @@ https://github.com/ruby/ruby/blob/trunk/ext/date/update-abbr#L1 +# -*- mode: ruby -*- +require 'nokogiri' +require 'open-uri' + +doc = Nokogiri::HTML(URI.open('https://www.timeanddate.com/time/zones/')) + +h = {} + +doc.css('#tz-abb tbody tr').each do |tr| + tds = tr.css('td') + abbr = tds[0].text.strip.downcase + offset = tds[3].text.strip.gsub(/UTC\s*/, '') + next if offset.include?('/') # skip ambiguous timezones + next if offset.empty? + + + hour, min = offset.split(':', 2) + offset = (Integer(hour) * 60 + (Integer(min || 0)))*60 + if h.has_key?(abbr) + h[abbr] = false + else + h[abbr] = offset + end +end + +h.delete_if{|_,v| !v} + +lines = File.readlines('zonetab.list') +lines.select{|l| l.include?(',')}. + map{|l| l.split(',', 2)[0]}. + each{|a| h.delete(a)} + +lines.insert(-2, h.sort.map{|k,v| "#{k},#{v}\n"}) +lines.flatten! +File.write('zonetab.list', lines.join) -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/