# File lib/transliteration/simple.rb, line 35
35:   def self.translify(str)
36:     chars = str.split(//)    
37:     
38:     lowers = TABLE_LOWER.map{|e| e[0] }
39:     uppers = TABLE_UPPER.map{|e| e[0] }
40:     
41:     hashtable = {}
42:     TABLE.each do | item |
43:       next unless item[0] && item[1]
44:       hashtable[item[0]] = item[1]
45:     end
46:     
47:     result = ''
48:     chars.each_with_index do | char, index |
49:       if uppers.include?(char) && lowers.include?(chars[index+1])
50:         # Combined case. Here we deal with Latin letters so there is no problem to use
51:         # Ruby's builtin upcase_downcase
52:         ch = hashtable[char].downcase.capitalize
53:         result << ch
54:       elsif uppers.include?(char)
55:         result << hashtable[char]        
56:       elsif lowers.include?(char)
57:         result << hashtable[char]
58:       else
59:         result << char
60:       end
61:     end
62:     return result
63:   end