class TwitterCldr::Resources::Bcp47TimezoneMetadataImporter
Private Instance Methods
doc()
click to toggle source
# File lib/twitter_cldr/resources/bcp47_timezone_metadata_importer.rb, line 53 def doc @doc ||= Nokogiri::XML(File.read(input_file)) end
execute()
click to toggle source
# File lib/twitter_cldr/resources/bcp47_timezone_metadata_importer.rb, line 20 def execute File.open(output_file, 'w:utf-8') do |output| output.write( TwitterCldr::Utils::YAML.dump( TwitterCldr::Utils.deep_symbolize_keys(metadata), use_natural_symbols: true ) ) end end
input_file()
click to toggle source
# File lib/twitter_cldr/resources/bcp47_timezone_metadata_importer.rb, line 57 def input_file @input_file ||= File.join( requirements[:cldr].common_path, 'bcp47', 'timezone.xml' ) end
metadata()
click to toggle source
# File lib/twitter_cldr/resources/bcp47_timezone_metadata_importer.rb, line 31 def metadata { aliases: {}, short_names: {} }.tap do |result| doc.xpath("//ldmlBCP47/keyword/key[@name='tz']/type").each do |node| alias_node = node.attribute('alias') next unless alias_node alias_list = alias_node.value.split(' ') name = node.attribute('name').value alias_list.each do |a| result[:short_names][a] = name end next if alias_list.size <= 1 alias_list[1..-1].each do |a| result[:aliases][a] = alias_list[0] end end end end
output_file()
click to toggle source
# File lib/twitter_cldr/resources/bcp47_timezone_metadata_importer.rb, line 63 def output_file @output_file ||= File.join(output_path, 'bcp47_timezone_metadata.yml') end
output_path()
click to toggle source
# File lib/twitter_cldr/resources/bcp47_timezone_metadata_importer.rb, line 67 def output_path params.fetch(:output_path) end