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 ||= :utf8 end encodings = {:utf8 => 'UTF-8', :binary => 'ASCII-8BIT'} string.force_encoding(encodings[encoding]) if string.respond_to?(:force_encoding) return nil if encoding == :utf8 and not valid_utf8?(string) string end