class WebSocket::Driver
def self.encode(string, encoding = nil)
def self.encode(string, encoding = nil) case string when Array then string = string.pack('C*') encoding ||= BINARY when String then encoding ||= UNICODE end unless string.encoding.name == encoding string = string.dup if string.frozen? string.force_encoding(encoding) end string.valid_encoding? ? string : nil end