module ForeignOffice::Broadcaster
Public Class Methods
included(base)
click to toggle source
# File lib/foreign_office/broadcaster.rb, line 4 def self.included(base) base.extend ClassMethods def handle_broadcast self.broadcast_change if self.changed? end def broadcast_change Rails.logger.debug "Broadcasting change for #{self.inspect}..." Rails.logger.debug "Serialize: #{self.serialize}" if self.class.channel_presence_required? PresenceChannelPublishJob.set(wait: 1).perform_later(id, self.class.name, self.serialize) else ForeignOffice.publish(channel: "#{self.class.foreign_office_channel_prefix}#{self.id}", object: self.serialize) end rescue => e Rails.logger.error "Failed to broadcast change: #{e.inspect}" Rails.logger.debug e.backtrace.join("\n") raise e end def serialize self.attributes end end
Public Instance Methods
broadcast_change()
click to toggle source
# File lib/foreign_office/broadcaster.rb, line 10 def broadcast_change Rails.logger.debug "Broadcasting change for #{self.inspect}..." Rails.logger.debug "Serialize: #{self.serialize}" if self.class.channel_presence_required? PresenceChannelPublishJob.set(wait: 1).perform_later(id, self.class.name, self.serialize) else ForeignOffice.publish(channel: "#{self.class.foreign_office_channel_prefix}#{self.id}", object: self.serialize) end rescue => e Rails.logger.error "Failed to broadcast change: #{e.inspect}" Rails.logger.debug e.backtrace.join("\n") raise e end
handle_broadcast()
click to toggle source
# File lib/foreign_office/broadcaster.rb, line 6 def handle_broadcast self.broadcast_change if self.changed? end
serialize()
click to toggle source
# File lib/foreign_office/broadcaster.rb, line 24 def serialize self.attributes end