class MatrixSdk::EventHandlerArray
Attributes
reraise_exceptions[RW]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/matrix_sdk/util/events.rb, line 8 def initialize(*args) @reraise_exceptions = false super(*args) end
Public Instance Methods
add_handler(filter = nil, id = nil, &block)
click to toggle source
# File lib/matrix_sdk/util/events.rb, line 14 def add_handler(filter = nil, id = nil, &block) id ||= block.hash self[id] = { filter: filter, id: id, block: block } end
fire(event, filter = nil)
click to toggle source
# File lib/matrix_sdk/util/events.rb, line 23 def fire(event, filter = nil) reverse_each do |_k, h| h[:block].call(event) if !h[:filter] || event.matches?(h[:filter], filter) rescue StandardError => e logger.error "#{e.class.name} occurred when firing event (#{event})\n#{e}" raise e if @reraise_exceptions end end
remove_handler(id)
click to toggle source
# File lib/matrix_sdk/util/events.rb, line 19 def remove_handler(id) delete id end