# File lib/websocket/handshake/server.rb, line 73 def from_rack(env) @headers = env.select { |key, _value| key.start_with? 'HTTP_' }.each_with_object({}) do |tuple, memo| key, value = tuple memo[key.gsub(/\AHTTP_/, '').tr('_', '-').downcase] = value end @path = env['REQUEST_PATH'] @query = env['QUERY_STRING'] set_version # Passenger is blocking on read # Unicorn doesn't support readpartial # Maybe someone is providing even plain string? # Better safe than sorry... if @version == 76 input = env['rack.input'] @leftovers = if input.respond_to?(:readpartial) input.readpartial elsif input.respond_to?(:read) input.read else input.to_s end end @state = :finished end