Module: StatusManager::StatusUpdateCallback
- Defined in:
- lib/status-manager/status_update_callback.rb
Instance Method Summary collapse
- #after_status_update(attribute_name, status_way, &block) ⇒ Object
- #before_status_update(attribute_name, status_way, &block) ⇒ Object
- #status_update_callback(obj, attribute_name, status_way, &block) ⇒ Object
Instance Method Details
#after_status_update(attribute_name, status_way, &block) ⇒ Object
3 4 5 6 7 |
# File 'lib/status-manager/status_update_callback.rb', line 3 def after_status_update(attribute_name, status_way, &block) self.after_update do |obj| self.class.send(:status_update_callback, obj, attribute_name, status_way, &block) end end |
#before_status_update(attribute_name, status_way, &block) ⇒ Object
9 10 11 12 13 |
# File 'lib/status-manager/status_update_callback.rb', line 9 def before_status_update(attribute_name, status_way, &block) self.before_update do |obj| self.class.send(:status_update_callback, obj, attribute_name, status_way, &block) end end |
#status_update_callback(obj, attribute_name, status_way, &block) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/status-manager/status_update_callback.rb', line 15 def status_update_callback(obj, attribute_name, status_way, &block) if obj.send("#{attribute_name}_changed?") if status_way.instance_of?(Hash) if obj.send("#{attribute_name}_changed?", {:from => status_way.first[0], :to => status_way.first[1]}) block.call(obj) end elsif status_way.class == Symbol if obj.send("#{attribute_name}_#{status_way}?") block.call(obj) end end end end |