class I18n::Backend::Transliterator::HashTransliterator

A transliterator which accepts a Hash of characters as its translation rule.

Constants

DEFAULT_APPROXIMATIONS

Public Class Methods

new(rule = nil) click to toggle source
# File lib/i18n/backend/transliterator.rb, line 74
def initialize(rule = nil)
  @rule = rule
  add_default_approximations
  add rule if rule
end

Public Instance Methods

transliterate(string, replacement = nil) click to toggle source
# File lib/i18n/backend/transliterator.rb, line 80
def transliterate(string, replacement = nil)
  replacement ||= DEFAULT_REPLACEMENT_CHAR
  string.gsub(/[^\x00-\x7f]/u) do |char|
    approximations[char] || replacement
  end
end

Private Instance Methods

add(hash) click to toggle source

Add transliteration rules to the approximations hash.

# File lib/i18n/backend/transliterator.rb, line 100
def add(hash)
  hash.each do |key, value|
    approximations[key.to_s] = value.to_s
  end
end
add_default_approximations() click to toggle source
# File lib/i18n/backend/transliterator.rb, line 93
def add_default_approximations
  DEFAULT_APPROXIMATIONS.each do |key, value|
    approximations[key] = value
  end
end
approximations() click to toggle source
# File lib/i18n/backend/transliterator.rb, line 89
def approximations
  @approximations ||= {}
end