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