Module: Ccrpc::Escape

Defined in:
lib/ccrpc/escape.rb

Class Method Summary collapse

Class Method Details

.escape(data) ⇒ Object



6
7
8
9
# File 'lib/ccrpc/escape.rb', line 6

def self.escape(data)
  data = data.b if data.frozen? || data.encoding != Encoding::BINARY
  data.gsub(/([\a\r\n\t\\])/n){ "\\x" + $1.unpack("H2")[0] }
end

.unescape(data) ⇒ Object



11
12
13
# File 'lib/ccrpc/escape.rb', line 11

def self.unescape(data)
  data.b.gsub(/\\x([0-9a-fA-F]{2,2})/n){ [$1].pack("H*") }.force_encoding(Encoding::UTF_8)
end