Sha256: cd11b4b622244af640be48b7a4f1dfe6e1562151224d850cea4a3abd4e5b688c
Contents?: true
Size: 801 Bytes
Versions: 1
Compression:
Stored size: 801 Bytes
Contents
module Rohbau class EventTube def self.reset @subscriptions = nil end def self.publish(name, event) subscription_handler.handle(name, event) end def self.subscribe(name, &handler) subscription_handler.add(name, &handler) end def self.subscription_handler @subscriptions ||= SubscriptionHandler.new end class SubscriptionHandler def initialize @subscriptions = Hash.new do |h,k| h[k] = [] end end def add(name, &handler) subscriptions[name] << handler true end def handle(name, event) subscriptions[name].each do |handler| handler.call(event) end true end private attr_reader :subscriptions end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rohbau-0.1.0 | lib/rohbau/event_tube.rb |