Sha256: b4bd30b11419c7876133e5ece892c507a7aab8cfae2f572fb3e5b1f32dabe495

Contents?: true

Size: 814 Bytes

Versions: 18

Compression:

Stored size: 814 Bytes

Contents

# frozen_string_literal: true

module ActionCable
  module Connection
    module PersistentSession
      def handle_open
        super.tap { commit_session! }
      end

      def handle_channel_command(*)
        super.tap { commit_session! }
      end

      def build_rack_request
        return super unless socket.session

        super.tap do |req|
          req.env[::Rack::RACK_SESSION] =
            AnyCable::Rails::SessionProxy.new(req.env[::Rack::RACK_SESSION], socket.session)
        end
      end

      def commit_session!
        return unless request_loaded? && request.session.respond_to?(:loaded?) && request.session.loaded?

        socket.session = request.session.to_json
      end
    end
  end
end

::ActionCable::Connection::Base.prepend(
  ::ActionCable::Connection::PersistentSession
)

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
anycable-rails-1.2.1 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.2.0 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.1.4 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.1.3 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.0.8 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.1.2 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.1.1 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.1.0 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.1.0.rc1.1 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.1.0.rc1 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.1.0.pre1 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.0.7 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.0.5 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.0.4 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.0.3 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.0.2 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.0.1 lib/anycable/rails/actioncable/connection/persistent_session.rb
anycable-rails-1.0.0 lib/anycable/rails/actioncable/connection/persistent_session.rb