Method: Russian::Transliteration#transliterate

Defined in:
lib/russian/transliteration.rb

#transliterate(str) ⇒ Object

Transliterate a string with russian characters

Возвращает строку, в которой все буквы русского алфавита заменены на похожую по звучанию латиницу



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/russian/transliteration.rb', line 51

def transliterate(str)
  chars = str.scan(%r{#{MULTI_KEYS.join '|'}|\w|.})

  result = ""

  chars.each_with_index do |char, index|
    if UPPER.has_key?(char) && LOWER.has_key?(chars[index+1])
      # combined case
      result << UPPER[char].downcase.capitalize
    elsif UPPER.has_key?(char)
      result << UPPER[char]
    elsif LOWER.has_key?(char)
      result << LOWER[char]
    else
      result << char
    end
  end

  result
end