Class: Bella::Latinizer

Inherits:
Object
  • Object
show all
Defined in:
lib/bella/latinizer.rb

Overview

Latinizer is a module that provides methods for converting cyrillic text to latin.

Constant Summary collapse

VOWELS =
%w[а е ё і у ы э ю я].freeze
POTENTIALLY_SOFT_CONSONANTS =
{
  "н" => %w[n ń],
  "с" => %w[s ś],
  "ц" => %w[c ć],
  "з" => %w[z ź]
}.freeze
CONVERSION_RULES =
{
  "а" => "a", "э" => "e", "ы" => "y", "у" => "u", "ў" => "ŭ",
  "б" => "b", "в" => "v", "г" => "h", "ґ" => "g", "д" => "d",
  "ж" => "ž", "й" => "j", "к" => "k", "м" => "m", "о" => "o",
  "п" => "p", "р" => "r", "т" => "t", "ф" => "f", "ч" => "č",
  "ш" => "š", "х" => "ch"
}.freeze
J_CONVERSION_RULES =
{
  "е" => "e", "ё" => "o", "і" => "", "ю" => "u", "я" => "a"
}.freeze
NON_ALPHA_OR_SPECIAL =
/[^[:alpha:]]|[ьъ']/

Class Method Summary collapse

Class Method Details

.latinize(text) ⇒ Object



27
28
29
30
31
# File 'lib/bella/latinizer.rb', line 27

def latinize(text)
  text.each_char.with_index.map do |char, index|
    convert_char(char, text, index)
  end.join
end