module CartonDb::Escaping
Constants
- ESCAPING_MAP
- UNESCAPING_MAP
Public Class Methods
escape(value)
click to toggle source
# File lib/carton_db/escaping.rb, line 47 def escape(value) value.gsub( /[\x00-\x1F\x7F\\]/, ESCAPING_MAP ) end
unescape(esc)
click to toggle source
# File lib/carton_db/escaping.rb, line 54 def unescape(esc) esc.gsub( /\\(?:\\|x[01][0-9A-F]|x7F|[^x\\]|$)/ ) { |match| UNESCAPING_MAP.fetch match do incomplete_sequence! match if match == "\\" invalid_sequence! match end } end
Private Class Methods
incomplete_sequence!(sequence)
click to toggle source
# File lib/carton_db/escaping.rb, line 65 def incomplete_sequence!(sequence) message = "Escaped text contains incomplete escape sequence %s" % sequence raise CartonDb::IncompleteEscapeSequence, message end
invalid_sequence!(sequence)
click to toggle source
# File lib/carton_db/escaping.rb, line 71 def invalid_sequence!(sequence) message = "Escaped text contains invalid escape sequence %s" % sequence raise CartonDb::InvalidEscapeSequence, message end