~vitty/armagetronad/trunk-armagetronad-breakpad

1
2
3
4
5
6
7
8
9
10
11
def subbanese(text)
  lowercase = %w[e q > p a j 6 y ! r >| I w u o d b j s + n  ^ m >< h z]
  uppercase = %w[V 8 ) (| 3 j & H I £ }| 7 W N 0 d Ô j S L n A M X h Z]
  mapping = {}
  ('a'..'z').each_with_index { |o, i| mapping[o] = lowercase[i] }
  ('A'..'Z').each_with_index { |o, i| mapping[o] = uppercase[i] }
  mapping.merge!({'1' => '|', '2' => '5', '3' => 'e', '4' => 'h', '5' => '2',
                  '6' => '9', '7' => 'L', '8' => '8', '9' => '6', '0' => '0',
                  '!' => '¡', '?' => '¿'})
  text.split(//).inject("") { |memo, o| (mapping[o] || o) + memo }
end