module ForeignOffice
Constants
- VERSION
Public Class Methods
bus()
click to toggle source
# File lib/foreign_office.rb, line 24 def self.bus @bus end
bus=(bus)
click to toggle source
# File lib/foreign_office.rb, line 20 def self.bus=(bus) @bus = bus end
cache_messages()
click to toggle source
# File lib/foreign_office.rb, line 51 def self.cache_messages @cache_messages = true RequestStore.store[:foreign_office_messages] = {} end
config(config)
click to toggle source
# File lib/foreign_office.rb, line 14 def self.config(config) self.bus = config[:bus][:klass] self.bus.config(config[:bus]) @publish_method = config[:publish_method] end
flush_messages()
click to toggle source
# File lib/foreign_office.rb, line 60 def self.flush_messages messages = RequestStore.store[:foreign_office_messages].dup RequestStore.store[:foreign_office_messages] = {} messages.each do |channel,message| self.handle_publish_request(message) end end
handle_publish_request(message)
click to toggle source
# File lib/foreign_office.rb, line 68 def self.handle_publish_request(message) if self.publish_method self.publish_method.call(message) else self.publish!(message) end end
publish(message)
click to toggle source
# File lib/foreign_office.rb, line 40 def self.publish(message) Rails.logger.debug("ForeignOffice.publish: #{message.inspect}") if !!@cache_messages foreign_office_messages = RequestStore.store[:foreign_office_messages] channel_name = message[:channel] foreign_office_messages[channel_name] = message else self.handle_publish_request(message) end end
publish!(message, attempts = 0)
click to toggle source
# File lib/foreign_office.rb, line 76 def self.publish!(message, attempts = 0) attempts += 1 Rails.logger.debug("ForeignOffice#publish! attempt: #{attempts} message: #{message.inspect}") self.bus.publish(message) end
publish_directly()
click to toggle source
# File lib/foreign_office.rb, line 56 def self.publish_directly @cache_messages = false end
publish_method()
click to toggle source
# File lib/foreign_office.rb, line 32 def self.publish_method @publish_method end
set_publish_method(&block)
click to toggle source
# File lib/foreign_office.rb, line 28 def self.set_publish_method(&block) @publish_method = block end
unset_publish_method()
click to toggle source
# File lib/foreign_office.rb, line 36 def self.unset_publish_method @publish_method = nil end