Class: MatrixSdk::EventHandlerArray
- Inherits:
-
Hash
- Object
- Hash
- MatrixSdk::EventHandlerArray
- Defined in:
- lib/matrix_sdk/extensions.rb
Instance Attribute Summary collapse
-
#reraise_exceptions ⇒ Object
Returns the value of attribute reraise_exceptions.
Instance Method Summary collapse
- #add_handler(filter = nil, id = nil, &block) ⇒ Object
- #fire(event, filter = nil) ⇒ Object
-
#initialize(*args) ⇒ EventHandlerArray
constructor
A new instance of EventHandlerArray.
- #logger ⇒ Object
- #remove_handler(id) ⇒ Object
Constructor Details
#initialize(*args) ⇒ EventHandlerArray
Returns a new instance of EventHandlerArray.
66 67 68 69 70 |
# File 'lib/matrix_sdk/extensions.rb', line 66 def initialize(*args) @reraise_exceptions = false super(*args) end |
Instance Attribute Details
#reraise_exceptions ⇒ Object
Returns the value of attribute reraise_exceptions.
64 65 66 |
# File 'lib/matrix_sdk/extensions.rb', line 64 def reraise_exceptions @reraise_exceptions end |
Instance Method Details
#add_handler(filter = nil, id = nil, &block) ⇒ Object
72 73 74 75 |
# File 'lib/matrix_sdk/extensions.rb', line 72 def add_handler(filter = nil, id = nil, &block) id ||= block.hash self[id] = { filter: filter, id: id, block: block } end |
#fire(event, filter = nil) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/matrix_sdk/extensions.rb', line 81 def fire(event, filter = nil) reverse_each do |_k, h| begin h[:block].call(event) if event.matches?(h[:filter], filter) rescue StandardError => ex logger.error "#{ex.class.name} occurred when firing event (#{event})\n#{ex}" raise ex if @reraise_exceptions end end end |
#logger ⇒ Object
93 94 95 |
# File 'lib/matrix_sdk/extensions.rb', line 93 def logger @logger ||= Logging.logger[self] end |
#remove_handler(id) ⇒ Object
77 78 79 |
# File 'lib/matrix_sdk/extensions.rb', line 77 def remove_handler(id) delete id end |