Class: Cldr::Export::Data::Metazones

Inherits:
Hash
  • Object
show all
Defined in:
lib/cldr/export/data/metazones.rb

Instance Method Summary collapse

Methods inherited from Hash

#deep_merge, #deep_stringify_keys, #symbolize_keys

Constructor Details

#initializeMetazones

Returns a new instance of Metazones.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/cldr/export/data/metazones.rb', line 8

def initialize
  path = "#{Cldr::Export::Data.dir}/supplemental/metaZones.xml"
  doc = File.open(path) { |file| Nokogiri::XML(file) }
  self[:timezones] = doc.xpath('//metaZones/metazoneInfo/timezone').inject({}) do |result, node|
    timezone = node.attr('type').to_sym
    result[timezone] = metazone(node.xpath('usesMetazone'))
    result[timezone].sort_by! { |zone| [zone['from'] ? zone['from'] : DateTime.new, zone['to'] ? zone['to'] : DateTime.now] }
    result
  end
  self[:primaryzones] = doc.xpath('//primaryZones/primaryZone').inject({}) do |result, node|
    territory = node.attr('iso3166').to_sym
    result[territory] = node.content
    result
  end
end