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 20 |
# 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_object = listener.to_s.classify.constantize listener_object.send method_name, object if listener_object.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
28 29 30 31 32 33 34 |
# File 'lib/active_model_listener/active_model_listener.rb', line 28 def with_listeners(*listeners) original_listeners = self.listeners self.listeners = listeners.flatten yield ensure self.listeners = original_listeners end |
.without_listeners ⇒ Object
22 23 24 25 26 |
# File 'lib/active_model_listener/active_model_listener.rb', line 22 def without_listeners with_listeners([]) do yield end end |