class MessageDriver::Adapters::InMemoryAdapter
Public Class Methods
new(broker, _config = {})
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 88 def initialize(broker, _config = {}) @broker = broker @destinations = {} begin require 'thread_safe' @message_store = ThreadSafe::Cache.new { |h, k| h[k] = [] } @subscriptions = ThreadSafe::Cache.new { |h, k| h[k] = [] } rescue LoadError @message_store = Hash.new { |h, k| h[k] = [] } @subscriptions = Hash.new { |h, k| h[k] = [] } end end
Public Instance Methods
add_subscription_for(name, subscription)
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 169 def add_subscription_for(name, subscription) @subscriptions[name].push subscription end
build_context()
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 101 def build_context InMemoryContext.new(self) end
consumer_count_for(name)
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 177 def consumer_count_for(name) @subscriptions[name].size end
create_destination(name, dest_options = {}, message_props = {})
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 105 def create_destination(name, dest_options = {}, message_props = {}) destination = Destination.new(self, name, dest_options, message_props) @destinations[name] = destination end
Also aliased as: handle_create_destination
handle_create_destination(name, dest_options = {}, message_props = {})
Alias for: create_destination
message_queue_for(name)
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 153 def message_queue_for(name) @message_store[name] end
next_subscription_for(name)
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 161 def next_subscription_for(name) unless (subs = @subscriptions[name]).empty? sub = subs.shift subs.push sub sub end end
remove_subscription_for(name, subscription)
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 173 def remove_subscription_for(name, subscription) @subscriptions[name].delete(subscription) end
reset_after_tests()
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 146 def reset_after_tests @message_store.keys.each do |k| @message_store[k] = [] end @subscriptions.clear end
stop()
click to toggle source
Calls superclass method
MessageDriver::Adapters::Base#stop
# File lib/message_driver/adapters/in_memory_adapter.rb, line 141 def stop super reset_after_tests end
subscriptions_for(name)
click to toggle source
# File lib/message_driver/adapters/in_memory_adapter.rb, line 157 def subscriptions_for(name) @subscriptions[name] end