class TwitterCldr::Resources::CollationTriesImporter

Constants

AUXILIARY_ZIP_FILE
FRACTIONAL_UCA_FILE
FRACTIONAL_UCA_SHORT_CUSTOMIZATIONS
FRACTIONAL_UCA_SHORT_CUSTOMIZATION_HEADER

Private Instance Methods

copy_fractional_uca() click to toggle source
# File lib/twitter_cldr/resources/collation_tries_importer.rb, line 56
def copy_fractional_uca
  zip_path = requirements[:uca].source_path_for(AUXILIARY_ZIP_FILE)
  base_output_path = File.join('resources', 'collation')
  FileUtils.mkdir_p(base_output_path)

  Zip::File.open(zip_path) do |zip|
    output_path = File.join(base_output_path, FRACTIONAL_UCA_FILE)

    File.open(output_path, 'w') do |file|
      fractional_uca_short = zip.read(File.join('CollationAuxiliary', FRACTIONAL_UCA_FILE))

      FRACTIONAL_UCA_SHORT_CUSTOMIZATIONS.each do |existing, replacement|
        fractional_uca_short.gsub!(existing, replacement)
      end

      fractional_uca_short = fractional_uca_short
        .split("\n")
        .map do |line|
          if line.end_with?('# Special final value for reordering token')
            "##{line}"
          else
            line
          end
        end
        .join("\n")

      fractional_uca_short = FRACTIONAL_UCA_SHORT_CUSTOMIZATION_HEADER + fractional_uca_short
      file.write(fractional_uca_short)
    end
  end
end
default_trie() click to toggle source
# File lib/twitter_cldr/resources/collation_tries_importer.rb, line 102
def default_trie
  @default_trie ||= TwitterCldr::Collation::TrieBuilder.load_default_trie
end
execute() click to toggle source
# File lib/twitter_cldr/resources/collation_tries_importer.rb, line 45
def execute
  copy_fractional_uca
  update_default_trie_dump

  params.fetch(:locales).each do |locale|
    update_tailoring_trie_dump(locale)
  end
end
save_trie_dump(locale, trie) click to toggle source
# File lib/twitter_cldr/resources/collation_tries_importer.rb, line 96
def save_trie_dump(locale, trie)
  path = TwitterCldr::Collation::TrieLoader.dump_path(locale)
  FileUtils.mkdir_p(File.dirname(path))
  File.write(path, Marshal.dump(trie))
end
update_default_trie_dump() click to toggle source
# File lib/twitter_cldr/resources/collation_tries_importer.rb, line 88
def update_default_trie_dump
  save_trie_dump(TwitterCldr::Collation::TrieLoader::DEFAULT_TRIE_LOCALE, default_trie)
end
update_tailoring_trie_dump(locale) click to toggle source
# File lib/twitter_cldr/resources/collation_tries_importer.rb, line 92
def update_tailoring_trie_dump(locale)
  save_trie_dump(locale, TwitterCldr::Collation::TrieBuilder.load_tailored_trie(locale, default_trie))
end