Guest User

Untitled

a guest
Mar 8th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1.  
  2. #!/usr/bin/env ruby
  3. ENG = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
  4. RUS = 'квертыуиопасдфгхйклзццвбнмКВЕРТЫУИОПАСДФГХЙКЛЗЦЦВБНМ'
  5.  
  6. def russian letter
  7. i = ENG.index letter
  8. return letter unless i
  9. res = ''
  10. res << RUS[i*2]
  11. res << RUS[i*2 + 1]
  12. end
  13.  
  14. def ssplit s
  15. [s[0..0], s[1..-1]]
  16. end
  17.  
  18. def trans s
  19. r = ''
  20. while s.length != 0
  21. l, s = ssplit(s)
  22. case l
  23. when '\\'
  24. r << l
  25. l, s = ssplit(s)
  26. r << l
  27. when '%'
  28. if s[0..0] == '{'
  29. r << l
  30. while 0!=s.length && s[0..0] != '}'
  31. l, s = ssplit(s)
  32. r << l
  33. end
  34. else
  35. r << l
  36. end
  37. else
  38. if l =~ /[A-z]/
  39. r << russian(l) # sprintf("%c", s[i]+1)
  40. else
  41. r << l
  42. end
  43. end
  44. end
  45. r
  46. end
  47.  
  48. print trans(STDIN.read)
Add Comment
Please, Sign In to add comment