Class: Circus::EventManager
- Inherits:
-
Object
- Object
- Circus::EventManager
- Defined in:
- lib/irc/event_manager.rb
Instance Method Summary collapse
- #event(symbol, message, sender = nil, receiver = nil) ⇒ Object
-
#initialize ⇒ EventManager
constructor
A new instance of EventManager.
- #subscribe(type, &block) ⇒ Object
Constructor Details
#initialize ⇒ EventManager
Returns a new instance of EventManager.
8 9 10 11 12 13 |
# File 'lib/irc/event_manager.rb', line 8 def initialize @subscription_id = "0" @subscriptions = {} @id_to_symbol = {} @block_hash = {} end |
Instance Method Details
#event(symbol, message, sender = nil, receiver = nil) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/irc/event_manager.rb', line 34 def event(symbol, , sender = nil, receiver = nil) if @subscriptions[symbol] @subscriptions[symbol].each do |event_id| if sender.nil? && receiver.nil? @block_hash[event_id].call() elsif receiver.nil? @block_hash[event_id].call(, sender) else @block_hash[event_id].call(, sender, receiver) end end end end |
#subscribe(type, &block) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/irc/event_manager.rb', line 15 def subscribe(type, &block) type = type.to_s if type.is_a? Fixnum if type.is_a? String if type =~ /^\d+$/ type = "0#{type}" while type.length < 3 end type = Commands.get_command_symbol type end if type.is_a? Symbol raise "Unknown message type" unless Commands.is_valid_symbol? type return add_subscription(type, &block) end raise "Error in EventManager#subscribe: invalid type parameter" end |