Class: MessageDriver::Adapters::InMemoryAdapter::Destination

Inherits:
Destination::Base show all
Defined in:
lib/message_driver/adapters/in_memory_adapter.rb

Instance Attribute Summary

Attributes inherited from Destination::Base

#adapter, #dest_options, #message_props, #name

Instance Method Summary collapse

Methods inherited from Destination::Base

#after_initialize, #consumer_count, #initialize, #message_count, #middleware, #pop_message, #publish, #subscribe

Constructor Details

This class inherits a constructor from MessageDriver::Destination::Base

Instance Method Details

#handle_message_countObject



34
35
36
# File 'lib/message_driver/adapters/in_memory_adapter.rb', line 34

def handle_message_count
  message_queue.size
end

#handle_pop_message(ctx, options = {}) ⇒ Object



38
39
40
# File 'lib/message_driver/adapters/in_memory_adapter.rb', line 38

def handle_pop_message(ctx, options = {})
  _fetch_message(ctx, options)
end

#handle_publish(body, headers = {}, properties = {}) ⇒ Object



49
50
51
52
53
54
55
# File 'lib/message_driver/adapters/in_memory_adapter.rb', line 49

def handle_publish(body, headers = {}, properties = {})
  raw_body = body
  b, h, p = middleware.on_publish(body, headers, properties)
  msg = Message.new(nil, self, b, h, p, raw_body)
  message_queue << msg
  _deliver_messages
end

#handle_subscribe(options = {}, &consumer) ⇒ Object



42
43
44
45
46
47
# File 'lib/message_driver/adapters/in_memory_adapter.rb', line 42

def handle_subscribe(options = {}, &consumer)
  subscription = Subscription.new(adapter, self, consumer, options)
  adapter.add_subscription_for(name, subscription)
  _deliver_messages
  subscription
end

#subscriptionsObject



30
31
32
# File 'lib/message_driver/adapters/in_memory_adapter.rb', line 30

def subscriptions
  adapter.subscriptions_for(name)
end