class TwitterCldr::Transforms::Transliterator

Attributes

source_locale[R]
target_locale[R]
text[R]

Public Class Methods

new(text, source_locale, target_locale) click to toggle source
# File lib/twitter_cldr/transforms/transliterator.rb, line 15
def initialize(text, source_locale, target_locale)
  @text = text
  @source_locale = locale_klass.parse(source_locale)
  @target_locale = locale_klass.parse(target_locale).maximize
end
transliterate(text, source_locale, target_locale) click to toggle source
# File lib/twitter_cldr/transforms/transliterator.rb, line 9
def self.transliterate(text, source_locale, target_locale)
  new(text, source_locale, target_locale).transliterate
end

Public Instance Methods

transliterate() click to toggle source
# File lib/twitter_cldr/transforms/transliterator.rb, line 21
def transliterate
  result = text.dup

  each_source_locale do |source_locale|
    transform_id = TransformId.find(source_locale, target_locale)

    if transform_id
      transformer = Transformer.get(transform_id)
      result = transformer.transform(result)
    end
  end

  result
end

Private Instance Methods

each_source_locale() { |source_locale| ... } click to toggle source
# File lib/twitter_cldr/transforms/transliterator.rb, line 42
def each_source_locale
  if source_locale.script
    yield source_locale
  else
    scripts.each do |script|
      locale = locale_klass.new(
        source_locale.language, script, source_locale.region
      )

      yield locale.maximize
    end
  end
end
locale_klass() click to toggle source
# File lib/twitter_cldr/transforms/transliterator.rb, line 38
def locale_klass
  TwitterCldr::Shared::Locale
end
scripts() click to toggle source
# File lib/twitter_cldr/transforms/transliterator.rb, line 56
def scripts
  @scripts ||=
    TwitterCldr::Utils::ScriptDetector.detect_scripts(text).scripts
end