Module: Ukrlatinka

Defined in:
lib/ukrlatinka.rb,
lib/ukrlatinka/version.rb

Constant Summary collapse

UPCHAR =
{
  'А' => 'A',
  'Б' => 'B',
  'В' => 'V',
  'Г' => 'H',
  'Ґ' => 'G',
  'Дь'=> 'Ď',
  'ДЬ'=> 'Ď',
  'Д' => 'D',
  'Е' => 'E',
  'Є' => 'Ë',
  'Ж' => 'Ž',
  'З' => 'Z',
  'И' => 'Y',
  'І' => 'I',
  'Ї' => 'JI',
  'Й' => 'J',
  'К' => 'K',
  'Ль'=> 'L\'',
  'ЛЬ'=> 'L\'',
  'Л' => 'L',
  'М' => 'M',
  'Нь'=> 'Ń',
  'НЬ'=> 'Ń',
  'Н' => 'N',
  'О' => 'O',
  'П' => 'P',
  'Рь'=> 'Ŕ',
  'РЬ'=> 'Ŕ',
  'Р' => 'R',
  'Сь'=> 'Ś',
  'СЬ'=> 'Ś',
  'С' => 'S',
  'Ть'=> 'Ť',
  'ТЬ'=> 'Ť',
  'Т' => 'T',
  'У' => 'U',
  'Ф' => 'F',
  'Х' => 'X',
  'Ць'=> 'Ć',
  'ЦЬ'=> 'Ć',
  'Ц' => 'C',
  'Ч' => 'Č',
  'Ш' => 'Š',
  'Щ' => 'Ş',
  'Ю' => 'Ü',
  'Я' => 'Ä',
}
DOWNCHAR =
{
  'а' => 'a',
  'б' => 'b',
  'в' => 'v',
  'г' => 'h',
  'ґ' => 'g',
  'дь'=> 'd\'',
  'д' => 'd',
  'е' => 'e',
  'є' => 'ë',
  'ж' => 'ž',
  'з' => 'z',
  'и' => 'y',
  'і' => 'і',
  'ї' => 'ji',
  'й' => 'j',
  'к' => 'k',
  'ль'=> 'l\'',
  'л' => 'l',
  'м' => 'm',
  'нь'=> 'ń',
  'н' => 'n',
  'о' => 'o',
  'п' => 'p',
  'рь'=> 'ŕ',
  'р' => 'r',
  'сь'=> 'ś',
  'с' => 's',
  'ть'=> 't\'',
  'т' => 't',
  'у' => 'u',
  'ф' => 'f',
  'х' => 'x',
  'ць'=> 'ć',
  'ц' => 'c',
  'ч' => 'č',
  'ш' => 'š',
  'щ' => 'ş',
  'ю' => 'ü',
  'я' => 'ä',
}
VERSION =
"0.1.3"

Instance Method Summary collapse

Instance Method Details

#convert(str, direct) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/ukrlatinka.rb', line 95

def convert(str, direct)
  alfabet = {}.merge(DOWNCHAR).merge(UPCHAR)

  if direct.to_s == 'uk_lat'
    alfabet.each do |uk, lat|
      str.gsub!(uk, lat)
    end
  end

  if direct.to_s == 'lat_uk'
    alfabet.each do |uk, lat|
      str.gsub!(lat, uk)
    end
  end

  str
end

#latinka?(str) ⇒ Boolean

Returns:

  • (Boolean)


113
114
115
116
# File 'lib/ukrlatinka.rb', line 113

def latinka?(str)
  alfabet = {}.merge(DOWNCHAR).merge(UPCHAR).values.join('|')
  !str.index(Regexp.new(alfabet)).nil?
end