module StatusManager::StatusUpdateCallback
Public Instance Methods
after_status_update(attribute_name, status_way, &block)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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