func encode(str) { str.gsub(/(.)(\1{0,254})/, {|a,b| b.len+1 -> chr + a}); } func decode(str) { var chars = str.chars; var r = ''; (chars.len/2 -> int).range.each { |i| r += (chars[2*i + 1] * chars[2*i].ord); } return r; }