Slight optimization to CallbackChain#union and delete.

This commit is contained in:
Joshua Peek 2008-04-18 14:44:55 -05:00
parent 986aec5dbb
commit a4c15303cb
1 changed files with 5 additions and 6 deletions

View File

@ -97,15 +97,14 @@ module ActiveSupport
end
def |(chain)
if chain.is_a?(Callback)
if found_callback = find(chain)
index = index(found_callback)
if chain.is_a?(CallbackChain)
chain.each { |callback| self | callback }
elsif chain.is_a?(Callback)
if index = index(chain)
self[index] = chain
else
self << chain
end
else
chain.each { |callback| self | callback }
end
self
end
@ -115,7 +114,7 @@ module ActiveSupport
end
def delete(callback)
super(find(callback))
super(callback.is_a?(Callback) ? callback : find(callback))
end
private