Module: EventBus
- Included in:
- Application, EventWatcherForGem
- 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
450 451 452 453 454 |
# File 'lib/a-commons.rb', line 450 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
366 367 368 369 370 371 372 |
# File 'lib/a-commons.rb', line 366 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
444 445 446 447 448 |
# File 'lib/a-commons.rb', line 444 def detach_listener(_listener, _class_event) if @@listeners[_class_event] @@listeners[_class_event].delete(_listener) end end |
#process_event(_event) ⇒ Object
345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 |
# File 'lib/a-commons.rb', line 345 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? # not responding to this means "you need to pass in an instance, not a class name 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 |