Class: Lolitra::MessageHandlerManager

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/lolitra/handler_base.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#busObject

Returns the value of attribute bus.



168
169
170
# File 'lib/lolitra/handler_base.rb', line 168

def bus
  @bus
end

#subscribersObject

Returns the value of attribute subscribers.



169
170
171
# File 'lib/lolitra/handler_base.rb', line 169

def subscribers
  @subscribers
end

Class Method Details

.busObject



175
176
177
# File 'lib/lolitra/handler_base.rb', line 175

def self.bus
  instance.bus
end

.bus=(new_bus) ⇒ Object



171
172
173
# File 'lib/lolitra/handler_base.rb', line 171

def self.bus=(new_bus)
  instance.bus = new_bus
end

.disconnect(&block) ⇒ Object



225
226
227
# File 'lib/lolitra/handler_base.rb', line 225

def self.disconnect(&block)
  instance.disconnect(&block)
end

.publish(message) ⇒ Object



215
216
217
# File 'lib/lolitra/handler_base.rb', line 215

def self.publish(message)
  instance.publish(message)
end

.register_subscriber(handler_class) ⇒ Object



179
180
181
# File 'lib/lolitra/handler_base.rb', line 179

def self.register_subscriber(handler_class)
  instance.register_subscriber(handler_class)
end

.unsubscribe(handler_class, &block) ⇒ Object



206
207
208
# File 'lib/lolitra/handler_base.rb', line 206

def self.unsubscribe(handler_class, &block)
  instance.unsubscribe(handler_class, &block)
end

Instance Method Details

#disconnect(&block) ⇒ Object



229
230
231
# File 'lib/lolitra/handler_base.rb', line 229

def disconnect(&block)
  bus.disconnect(&block)
end

#process_deadletters(handler_class) ⇒ Object



187
188
189
# File 'lib/lolitra/handler_base.rb', line 187

def process_deadletters(handler_class)
  bus.process_deadletters(handler_class)
end

#publish(message) ⇒ Object



219
220
221
222
223
# File 'lib/lolitra/handler_base.rb', line 219

def publish(message)
  Lolitra::logger.debug("Message sent: #{message.class.message_key}")
  Lolitra::logger.debug("#{message.marshall}")
  bus.publish(message)
end

#purge_deadletters(handler_class) ⇒ Object



191
192
193
# File 'lib/lolitra/handler_base.rb', line 191

def purge_deadletters(handler_class)
  bus.purge_deadletters(handler_class)
end

#register_subscriber(handler_class) ⇒ Object



199
200
201
202
203
204
# File 'lib/lolitra/handler_base.rb', line 199

def register_subscriber(handler_class)
  subscribers << handler_class
  handler_class.handle_messages.each do |message_class|
    bus.subscribe(message_class, handler_class)
  end
end

#remove_next_deadletter(handler_class) ⇒ Object



195
196
197
# File 'lib/lolitra/handler_base.rb', line 195

def remove_next_deadletter(handler_class)
  bus.remove_next_deadletter(handler_class)
end

#unsubscribe(handler_class, &block) ⇒ Object



210
211
212
213
# File 'lib/lolitra/handler_base.rb', line 210

def unsubscribe(handler_class, &block)
  Lolitra::logger.info("Unsubscribing #{handler_class}")
  bus.unsubscribe(handler_class, &block)
end