Module: ForeignOffice::Broadcaster
- Defined in:
- lib/foreign_office/broadcaster.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 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 "Class name: #{self.class.name}" Rails.logger.debug "ID: #{self.id}" Rails.logger.debug "Serialize: #{self.serialize}" ForeignOffice.publish(channel: "#{self.class.name}#{self.id}", object: self.serialize) 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 |
Instance Method Details
#broadcast_change ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/foreign_office/broadcaster.rb', line 10 def broadcast_change Rails.logger.debug "Broadcasting change for #{self.inspect}..." Rails.logger.debug "Class name: #{self.class.name}" Rails.logger.debug "ID: #{self.id}" Rails.logger.debug "Serialize: #{self.serialize}" ForeignOffice.publish(channel: "#{self.class.name}#{self.id}", object: self.serialize) rescue => e Rails.logger.error "Failed to broadcast change: #{e.inspect}" Rails.logger.debug e.backtrace.join("\n") raise e end |
#handle_broadcast ⇒ Object
6 7 8 |
# File 'lib/foreign_office/broadcaster.rb', line 6 def handle_broadcast self.broadcast_change if self.changed? end |
#serialize ⇒ Object
22 23 24 |
# File 'lib/foreign_office/broadcaster.rb', line 22 def serialize self.attributes end |