Class: Cldr::Export::Data::TerritoriesContainment

Inherits:
Base
  • Object
show all
Defined in:
lib/cldr/export/data/territories_containment.rb

Instance Attribute Summary

Attributes inherited from Base

#locale

Instance Method Summary collapse

Methods inherited from Base

#[]=, #update

Methods inherited from Hash

#deep_merge, #deep_stringify_keys, #symbolize_keys

Constructor Details

#initializeTerritoriesContainment

Returns a new instance of TerritoriesContainment.



5
6
7
8
# File 'lib/cldr/export/data/territories_containment.rb', line 5

def initialize(*)
  super(nil)
  update(:territories => territories)
end

Instance Method Details

#pathObject



24
25
26
# File 'lib/cldr/export/data/territories_containment.rb', line 24

def path
  @path ||= "#{Cldr::Export::Data.dir}/supplemental/supplementalData.xml"
end

#territoriesObject



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

def territories
  @territories ||= doc.xpath('supplementalData/territoryContainment/group').inject(
    Hash.new { |h, k| h[k] = { :contains => [] } }
  ) do |memo, territory|
    territory_id = territory.attribute('type').value
    children = territory.attribute('contains').value.split(' ')

    memo[territory_id][:contains].concat(children)
    memo[territory_id][:contains].sort!

    memo
  end
end