Class: DNS::Server::Dispatcher::EventDispatcher
- Inherits:
-
Object
- Object
- DNS::Server::Dispatcher::EventDispatcher
- Defined in:
- lib/faildns/server/dispatcher/eventdispatcher.rb
Instance Attribute Summary collapse
-
#dispatcher ⇒ Object
readonly
Returns the value of attribute dispatcher.
-
#server ⇒ Object
readonly
Returns the value of attribute server.
Instance Method Summary collapse
- #dispatch(chain, socket, message) ⇒ Object
- #fire(event, *args) ⇒ Object
-
#initialize(dispatcher) ⇒ EventDispatcher
constructor
A new instance of EventDispatcher.
- #observe(event, callback, priority = 0) ⇒ Object
- #register(chain, callback, priority = 0) ⇒ Object
Constructor Details
#initialize(dispatcher) ⇒ EventDispatcher
Returns a new instance of EventDispatcher.
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/faildns/server/dispatcher/eventdispatcher.rb', line 31 def initialize (dispatcher) @server = dispatcher.server @dispatcher = dispatcher @chains = { :input => [], :output => [], :custom => {} } end |
Instance Attribute Details
#dispatcher ⇒ Object (readonly)
Returns the value of attribute dispatcher.
29 30 31 |
# File 'lib/faildns/server/dispatcher/eventdispatcher.rb', line 29 def dispatcher @dispatcher end |
#server ⇒ Object (readonly)
Returns the value of attribute server.
29 30 31 |
# File 'lib/faildns/server/dispatcher/eventdispatcher.rb', line 29 def server @server end |
Instance Method Details
#dispatch(chain, socket, message) ⇒ Object
43 44 45 46 47 |
# File 'lib/faildns/server/dispatcher/eventdispatcher.rb', line 43 def dispatch (chain, socket, ) @chains[chain].each {|callback| callback.call(socket, ) } end |
#fire(event, *args) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/faildns/server/dispatcher/eventdispatcher.rb', line 49 def fire (event, *args) (@chain[:custom][event] || []).each {|callback| begin if callback.call(*args) == false return false end rescue Exception => e end } end |