class PubSub::Hash
Public Class Methods
new()
click to toggle source
# File lib/pub_sub/hash.rb, line 7 def initialize @container = ::RequestStore.store[:hash] = {} end
Public Instance Methods
pub(event, args={})
click to toggle source
# File lib/pub_sub/hash.rb, line 11 def pub(event, args={}) iterable_subscriber_list = @container[event] return false unless iterable_subscriber_list clazzes = retrieve_klasses(iterable_subscriber_list) fan_out(clazzes, args) end
sub(event, klazz_name)
click to toggle source
# File lib/pub_sub/hash.rb, line 19 def sub(event, klazz_name) mutex = Mutex.new mutex.synchronize do @container[event] = [] unless @container[event] @container[event] << klazz_name unless @container[event].include?(klazz_name) end true end
unsub(event, klazz_name)
click to toggle source
# File lib/pub_sub/hash.rb, line 29 def unsub(event, klazz_name) mutex = Mutex.new mutex.synchronize do return false unless @container[event] @container[event].delete(klazz_name) true end end