module Motion::Component::Broadcasts

Constants

DEFAULT

Attributes

_broadcast_handlers[W]

Public Instance Methods

_broadcast_handlers() click to toggle source
# File lib/motion/component/broadcasts.rb, line 55
def _broadcast_handlers
  return @_broadcast_handlers if defined?(@_broadcast_handlers)
  return superclass._broadcast_handlers if superclass.respond_to?(:_broadcast_handlers)

  DEFAULT
end
broadcast_to(model, message) click to toggle source
# File lib/motion/component/broadcasts.rb, line 45
def broadcast_to(model, message)
  ActionCable.server.broadcast(broadcasting_for(model), message)
end
broadcasting_for(model) click to toggle source
# File lib/motion/component/broadcasts.rb, line 49
def broadcasting_for(model)
  serialize_broadcasting([name, model])
end
process_broadcast(broadcast, message) click to toggle source
# File lib/motion/component/broadcasts.rb, line 78
def process_broadcast(broadcast, message)
  return unless (handler = _broadcast_handlers[broadcast])

  _run_action_callbacks(context: handler) do
    if method(handler).arity.zero?
      send(handler)
    else
      send(handler, message)
    end
  end
end
serialize_broadcasting(object) click to toggle source

This definition is copied from ActionCable::Channel::Broadcasting

# File lib/motion/component/broadcasts.rb, line 65
def serialize_broadcasting(object)
  if object.is_a?(Array)
    object.map { |m| serialize_broadcasting(m) }.join(":")
  elsif object.respond_to?(:to_gid_param)
    object.to_gid_param
  else
    object.to_param
  end
end