Class: ActiveMatrix::EventHandlerArray
- Inherits:
-
Hash
- Object
- Hash
- ActiveMatrix::EventHandlerArray
show all
- Includes:
- Logging
- Defined in:
- lib/active_matrix/events.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Logging
included, #logger, #logger=
Constructor Details
Returns a new instance of EventHandlerArray.
9
10
11
12
13
|
# File 'lib/active_matrix/events.rb', line 9
def initialize(*)
@reraise_exceptions = false
super
end
|
Instance Attribute Details
#reraise_exceptions ⇒ Object
Returns the value of attribute reraise_exceptions.
7
8
9
|
# File 'lib/active_matrix/events.rb', line 7
def reraise_exceptions
@reraise_exceptions
end
|
Instance Method Details
#add_handler(filter = nil, id = nil, &block) ⇒ Object
15
16
17
18
|
# File 'lib/active_matrix/events.rb', line 15
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
24
25
26
27
28
29
30
31
32
|
# File 'lib/active_matrix/events.rb', line 24
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) ⇒ Object
20
21
22
|
# File 'lib/active_matrix/events.rb', line 20
def remove_handler(id)
delete id
end
|