class Symbol
def self.from_msgpack_ext(data)
def self.from_msgpack_ext(data) # from_msgpack_ext is supposed to parse a binary string. # The canonical way to do it for symbols would be: # data.unpack1('A*').to_sym # However in this instance we can take a shortcut # We assume the string encoding is UTF-8, and let Ruby create either # an ASCII symbol or UTF-8 symbol. data.force_encoding(Encoding::UTF_8).to_sym rescue EncodingError # If somehow the string wasn't valid UTF-8 not valid ASCII, we fallback # to what has been the historical behavior of creating a binary symbol data.force_encoding(Encoding::BINARY).to_sym end