module LiteCable

Lightwieght ActionCable implementation.

Contains application logic (channels, streams, broadcasting) and also (optional) Rack hijack based server (suitable only for development and test).

Compatible with AnyCable (for production usage).

frozen_string_literal: true

Constants

INTERNAL
VERSION

Public Class Methods

broadcast(stream, message, coder: LiteCable.config.coder) click to toggle source

Broadcast encoded message to the stream

# File lib/lite_cable.rb, line 27
def broadcast(stream, message, coder: LiteCable.config.coder)
  broadcast_adapter.broadcast(stream, message, coder: coder)
end
broadcast_adapter() click to toggle source
# File lib/lite_cable.rb, line 31
def broadcast_adapter
  return @broadcast_adapter if defined?(@broadcast_adapter)
  self.broadcast_adapter = LiteCable.config.broadcast_adapter.to_sym
  @broadcast_adapter
end
broadcast_adapter=(adapter) click to toggle source
# File lib/lite_cable.rb, line 37
def broadcast_adapter=(adapter)
  if adapter.is_a?(Symbol) || adapter.is_a?(Array)
    adapter = BroadcastAdapters.lookup_adapter(adapter)
  end

  unless adapter.respond_to?(:broadcast)
    raise ArgumentError, "BroadcastAdapter must implement #broadcast method. " \
                          "#{adapter.class} doesn't implement it."
  end

  @broadcast_adapter = adapter
end
config() click to toggle source
# File lib/lite_cable.rb, line 22
def config
  @config ||= Config.new
end