Module: StatusManager::StatusUpdateCallback

Defined in:
lib/status-manager/status_update_callback.rb

Instance Method Summary collapse

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