以下を参考にしました
リアルタイムにグリッチされるし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 |