String#rot13
#!/usr/local/bin/ruby # rot13.rb # $Id: rot13-en.uhtml,v 1.4 2000-01-02 15:41:13+09 msato Exp $ # 1999/12/17 14:42:48 msato # Algorithm of 'rot13' is described in Jargon File # http://www.tuxedo.org/~esr/jargon/html/entry/rot13.html class String def rot(num = 13) return self.split("").collect { |ch| if /^[a-z]$/ === ch ((ch[0] + num - 'a'[0]) % 26 + 'a'[0]).chr elsif /^[A-Z]$/ === ch ((ch[0] + num - 'A'[0]) % 26 + 'A'[0]).chr else ch end }.join("") end alias rot13 rot end if __FILE__ == $0 while line = gets p line p line.rot13 end end
Feel free to mail me
Copyright (C) 2000 Masahiro SATO