Module: EventBus
- Included in:
- Application
- Defined in:
- lib/a-commons.rb
Overview
(or SourceEvent)
Instance Method Summary collapse
- #attach_listener(_listener, _class_event) ⇒ Object
- #broadcast_event(_event) ⇒ Object
- #detach_listener(_listener, _class_event) ⇒ Object
- #process_event(_event) ⇒ Object
Instance Method Details
#attach_listener(_listener, _class_event) ⇒ Object
408 409 410 411 412 |
# File 'lib/a-commons.rb', line 408 def attach_listener(_listener, _class_event) @@listeners = {} unless defined? @@listeners @@listeners[_class_event] = [] unless @@listeners.has_key?(_class_event) @@listeners[_class_event] << _listener end |
#broadcast_event(_event) ⇒ Object
326 327 328 329 330 331 332 |
# File 'lib/a-commons.rb', line 326 def broadcast_event(_event) return _event if !defined?(@@listeners) event_classes = _event_class_stack(_event.class) event_classes.each do |_c| _broadcast_fase(_c, _event) end end |
#detach_listener(_listener, _class_event) ⇒ Object
402 403 404 405 406 |
# File 'lib/a-commons.rb', line 402 def detach_listener(_listener, _class_event) if @@listeners[_class_event] @@listeners[_class_event].delete(_listener) end end |
#process_event(_event) ⇒ Object
305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 |
# File 'lib/a-commons.rb', line 305 def process_event(_event) return _event if !defined?(@@listeners) event_classes = _event_class_stack(_event.class) #before fase event_classes.each do |_c| _process_fase(_c, _event, 'before') break if _event.is_breaked? end unless _event.is_breaked? # fase event_classes.each do |_c| _process_fase(_c, _event) break if _event.is_breaked? end unless _event.is_breaked? #after fase event_classes.each do |_c| _process_fase(_c, _event, 'after') break if _event.is_breaked? end unless _event.is_breaked? _event end |