class TwitterCldr::Resources::AliasesImporter

Constants

ALIAS_TAGS

only these aliases will be imported

Public Instance Methods

execute() click to toggle source
# File lib/twitter_cldr/resources/aliases_importer.rb, line 20
def execute
  output_file = File.join(output_path, 'aliases.yml')
  FileUtils.mkdir_p(output_path)

  File.open(output_file, 'w:utf-8') do |output|
    output.write(
      TwitterCldr::Utils::YAML.dump(
        TwitterCldr::Utils.deep_symbolize_keys(aliases: aliases),
        use_natural_symbols: true
      )
    )
  end
end

Private Instance Methods

alias_for(alias_tag) click to toggle source
# File lib/twitter_cldr/resources/aliases_importer.rb, line 43
def alias_for(alias_tag)
  doc.xpath("//alias/#{alias_tag}").inject({}) do |ret, alias_data|
    if replacement_attr = alias_data.attribute('replacement')
      replacement = replacement_attr.value

      if replacement.include?(' ')
        replacement = replacement.split(' ')
      end

      type = alias_data.attribute('type').value
      reason = alias_data.attribute('reason').value

      ret[reason] ||= {}
      ret[reason][type] = replacement
    end

    ret
  end
end
aliases() click to toggle source
# File lib/twitter_cldr/resources/aliases_importer.rb, line 36
def aliases
  ALIAS_TAGS.inject({}) do |ret, alias_tag|
    ret[alias_tag.sub('Alias', '')] = alias_for(alias_tag)
    ret
  end
end
doc() click to toggle source
# File lib/twitter_cldr/resources/aliases_importer.rb, line 63
def doc
  @doc ||= Nokogiri.XML(File.read(supplemental_metadata_path))
end
output_path() click to toggle source
# File lib/twitter_cldr/resources/aliases_importer.rb, line 75
def output_path
  params.fetch(:output_path)
end
supplemental_metadata_path() click to toggle source
# File lib/twitter_cldr/resources/aliases_importer.rb, line 67
def supplemental_metadata_path
  File.join(
    requirements[:cldr].common_path,
    'supplemental',
    'supplementalMetadata.xml'
  )
end