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