Sha256: cbc4afebbaac2cf0e9c024f74df0add84f58e49e760687bc6c06d4d2a2b5bb6a

Contents?: true

Size: 723 Bytes

Versions: 3

Compression:

Stored size: 723 Bytes

Contents

# frozen_string_literal: true

require "action_cable/connection"
require "anycable/rails/connections/serializable_identification"

ActionCable::Connection::Base.include(AnyCable::Rails::Connections::SerializableIdentification)
ActionCable::Connection::Base.prepend(Module.new do
  attr_reader :anycable_socket
  attr_accessor :anycable_request_builder

  # In AnyCable, we lazily populate env by passing it through the middleware chain,
  # so we access it via #request
  def env
    return super unless anycabled?

    request.env
  end

  def anycabled?
    @anycable_socket
  end

  private

  def request
    return super unless anycabled?

    @request ||= anycable_request_builder.build_rack_request(@env)
  end
end)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
anycable-rails-1.3.2 lib/anycable/rails/action_cable_ext/connection.rb
anycable-rails-1.3.1 lib/anycable/rails/action_cable_ext/connection.rb
anycable-rails-1.3.0 lib/anycable/rails/action_cable_ext/connection.rb