Class: ActiveModelListener
- Inherits:
-
Object
- Object
- ActiveModelListener
- Defined in:
- lib/active_model_listener/active_model_listener.rb
Class Method Summary collapse
- .dispatch(object, action) ⇒ Object
- .listeners ⇒ Object
- .listeners=(listeners) ⇒ Object
- .with_listeners(*listeners) ⇒ Object
- .without_listeners ⇒ Object
Class Method Details
.dispatch(object, action) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/active_model_listener/active_model_listener.rb', line 12 def dispatch(object, action) method_name = "after_#{action}" self.listeners.each do |listener| without_listeners do listener.send method_name, object if listener.respond_to?(method_name) end end end |
.listeners ⇒ Object
4 5 6 |
# File 'lib/active_model_listener/active_model_listener.rb', line 4 def listeners @listeners ||= [] end |
.listeners=(listeners) ⇒ Object
8 9 10 |
# File 'lib/active_model_listener/active_model_listener.rb', line 8 def listeners=(listeners) @listeners = listeners end |
.with_listeners(*listeners) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/active_model_listener/active_model_listener.rb', line 27 def with_listeners(*listeners) original_listeners = self.listeners self.listeners = listeners.flatten yield ensure self.listeners = original_listeners end |
.without_listeners ⇒ Object
21 22 23 24 25 |
# File 'lib/active_model_listener/active_model_listener.rb', line 21 def without_listeners with_listeners([]) do yield end end |