Faye to ActionCable: broadcasting modernization #1
@@ -1,6 +1,7 @@
|
|||||||
class List
|
class List
|
||||||
include SimplyStored::Couch
|
include SimplyStored::Couch
|
||||||
include ActiveModel::SerializerSupport
|
include ActiveModel::SerializerSupport
|
||||||
|
include Broadcastable
|
||||||
include List::JoinRequests
|
include List::JoinRequests
|
||||||
per_page_method :limit_value #kaminari
|
per_page_method :limit_value #kaminari
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
class Order
|
class Order
|
||||||
include SimplyStored::Couch
|
include SimplyStored::Couch
|
||||||
include ActiveModel::SerializerSupport
|
include ActiveModel::SerializerSupport
|
||||||
|
include Broadcastable
|
||||||
|
|
||||||
property :state, default: 'placed' # placed, active, delivered, cancelled, closed
|
property :state, default: 'placed' # placed, active, delivered, cancelled, closed
|
||||||
|
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
# Broadcast shim: provides broadcast_supplier / broadcast_user to all
|
|
||||||
# SimplyStored::Couch models without requiring ApplicationController.new.
|
|
||||||
#
|
|
||||||
# PREVIOUSLY (dangerous):
|
|
||||||
# ApplicationController.new.send(:broadcast_supplier, *args)
|
|
||||||
# → leaked controller instances, no request lifecycle
|
|
||||||
#
|
|
||||||
# NOW:
|
|
||||||
# Delegates directly to Mozo.broadcast_supplier / Mozo.broadcast_user
|
|
||||||
# which uses Mozo.broadcaster (configurable: Faye or ActionCable).
|
|
||||||
#
|
|
||||||
# MIGRATION PATH:
|
|
||||||
# Models should `include Broadcastable` directly instead of relying
|
|
||||||
# on this monkey-patch. Once all models include Broadcastable, this
|
|
||||||
# initializer can be removed.
|
|
||||||
#
|
|
||||||
require 'simply_stored/couch'
|
|
||||||
|
|
||||||
module ModelBroadcast
|
|
||||||
def broadcast_supplier(sid, event, data = {})
|
|
||||||
Mozo.broadcast_supplier(sid, event, data)
|
|
||||||
end
|
|
||||||
|
|
||||||
def broadcast_user(uid, event, data = {})
|
|
||||||
Mozo.broadcast_user(uid, event, data)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
SimplyStored::Couch.send(:include, ModelBroadcast)
|
|
||||||
Reference in New Issue
Block a user