以下を参考にしました
リアルタイムにグリッチされるしtweetもできるかっこいい記事 - life.should be_happy # => 1 examples, ? failures
| #!/usr/bin/env ruby | |
| # | |
| # $ flip Hey everyone check out her knee socks! | |
| # => Hǝʎ ǝʌǝɹʎouǝ ɔɥǝɔʞ onʇ ɥǝɹ ʞuǝǝ soɔʞs¡ | |
| class String | |
| FLIP_TABLE = { | |
| "a" => "\u0250", | |
| "b" => "q", | |
| "c" => "\u0254", | |
| "d" => "p", | |
| "e" => "\u01DD", | |
| "f" => "\u025F", | |
| "g" => "\u0183", | |
| "h" => "\u0265", | |
| "i" => "\u0131", | |
| "j" => "\u027E", | |
| "k" => "\u029E", | |
| "l" => "\u0283", | |
| "m" => "\u026F", | |
| "n" => "u", | |
| "r" => "\u0279", | |
| "t" => "\u0287", | |
| "v" => "\u028C", | |
| "w" => "\u028D", | |
| "y" => "\u028E", | |
| "." => "\u02D9", | |
| "[" => "]", | |
| "(" => ")", | |
| "{" => "}", | |
| "?" => "\u00BF", | |
| "!" => "\u00A1", | |
| "\"" => ",", | |
| "<" => ">", | |
| "_" => "\u203E", | |
| ";" => "\u061B", | |
| "\u203F" => "\u2040", | |
| "\u2045" => "\u2046", | |
| "\u2234" => "\u2235" | |
| } | |
| def flip | |
| each_char.map { |c| | |
| FLIP_TABLE[c] || FLIP_TABLE.invert[c] || c | |
| }.join | |
| end | |
| end | |
| if $0 == __FILE__ | |
| puts ARGV.join(' ').flip | |
| end |
| #!/usr/bin/env ruby | |
| # | |
| # $ glitch Hey everyone check out her knee socks! | |
| # => Hey ͘everyo̼ne͎ ch͈eck out̪ ͑h̋er ͎k̉nͫe̍e s̷ocͧks! | |
| class String | |
| GLITCH_TABLE = ("\u0300".."\u036f").to_a | |
| def glitch | |
| each_char.map { |c| | |
| c + rand(2).times.map { GLITCH_TABLE.sample }.join | |
| }.join | |
| end | |
| end | |
| if $0 == __FILE__ | |
| puts ARGV.join(' ').glitch | |
| end |