class ApplicationCable::Store
def initialize subject, channel, store_id = nil
def initialize subject, channel, store_id = nil @channel = channel @subject = subject @store_id = store_id end
def merge value
def merge value transmit action: "merge", value: value end
def method_missing method, **args
def method_missing method, **args transmit action: method, **args end
def set value
def set value transmit action: "set", value: value end
def transmit data
def transmit data if @subject @channel.broadcast_to @subject, ({store_id: @store_id}).compact.merge(data) else @channel.transmit ({store_id: @store_id}).compact.merge(data) end end
def upsert value, key = 'id'
def upsert value, key = 'id' transmit action: "upsert", key: key, value: value end