Module: TransitionsListener::ClassMethods
- Defined in:
- lib/transitions_listener.rb
Instance Method Summary collapse
- #listen_transitions(attr, &block) ⇒ Object
- #perform_transition_listeners(model, kind = :before) ⇒ Object
Instance Method Details
#listen_transitions(attr, &block) ⇒ Object
21 22 23 |
# File 'lib/transitions_listener.rb', line 21 def listen_transitions(attr, &block) transition_listeners(TransitionsListener::Listener.new(attr, &block)) end |
#perform_transition_listeners(model, kind = :before) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/transitions_listener.rb', line 25 def perform_transition_listeners(model, kind = :before) transition_listeners.each do |listener| c_trans = current_transition_for(model, listener.attr) listener.filter_transitions(kind, model, c_trans).each do |trans| block = trans[:args][:callback] args = c_trans.dup.merge(trans) block.is_a?(Proc) ? block.call(model, args) : model.public_send(block) end end end |