Guest User

Untitled

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