Class: AnyCable::Rails::ConnectionFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/anycable/rails/connection_factory.rb

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ ConnectionFactory

Returns a new instance of ConnectionFactory.



27
28
29
30
31
# File 'lib/anycable/rails/connection_factory.rb', line 27

def initialize(&block)
  @mappings = []
  @use_router = false
  instance_eval(&block) if block
end

Instance Method Details

#call(socket, **options) ⇒ Object



33
34
35
36
37
38
# File 'lib/anycable/rails/connection_factory.rb', line 33

def call(socket, **options)
  connection_class = use_router? ? resolve_connection_class(socket.env) :
                                   ActionCable.server.config.connection_class.call

  AnyCable::Rails::Connection.new(connection_class, socket, **options)
end

#map(route, &block) ⇒ Object

Raises:

  • (ArgumentError)


40
41
42
43
44
45
# File 'lib/anycable/rails/connection_factory.rb', line 40

def map(route, &block)
  raise ArgumentError, "Block is required" unless block

  @use_router = true
  mappings << [route, block]
end