Sha256: 1b8e1838bd65c40efc9a8d4e57a1faae0a457e790b244941a3f9874a51ec56d1

Contents?: true

Size: 659 Bytes

Versions: 7

Compression:

Stored size: 659 Bytes

Contents

# frozen_string_literal: true

module Isomorfeus
  module Transport
    class RackMiddleware
      include Isomorfeus::Transport::ServerProcessor

      WS_RESPONSE = [0, {}, []]

      def initialize(app)
        @app = app
      end

      def call(env)
        if env['PATH_INFO'] == Isomorfeus.api_websocket_path
          user = defined?(Warden::Manager) ? env['warden'].user : nil
          if env['rack.upgrade?'] == :websocket
            env['rack.upgrade'] = Isomorfeus::Transport::ServerSocketProcessor.new(env['rack.session'], user)
          end
          WS_RESPONSE
        else
          @app.call(env)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
isomorfeus-transport-1.0.0.epsilon1 lib/isomorfeus/transport/rack_middleware.rb
isomorfeus-transport-1.0.0.delta12 lib/isomorfeus/transport/rack_middleware.rb
isomorfeus-transport-1.0.0.delta11 lib/isomorfeus/transport/rack_middleware.rb
isomorfeus-transport-1.0.0.delta10 lib/isomorfeus/transport/rack_middleware.rb
isomorfeus-transport-1.0.0.delta9 lib/isomorfeus/transport/rack_middleware.rb
isomorfeus-transport-1.0.0.delta8 lib/isomorfeus/transport/rack_middleware.rb
isomorfeus-transport-1.0.0.delta7 lib/isomorfeus/transport/rack_middleware.rb