615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
|
# File 'lib/active_support/callbacks.rb', line 615
def compile(type)
if type.nil?
@all_callbacks || @mutex.synchronize do
final_sequence = CallbackSequence.new
@all_callbacks ||= @chain.reverse.inject(final_sequence) do |callback_sequence, callback|
callback.apply(callback_sequence)
end
end
else
@single_callbacks[type] || @mutex.synchronize do
final_sequence = CallbackSequence.new
@single_callbacks[type] ||= @chain.reverse.inject(final_sequence) do |callback_sequence, callback|
type == callback.kind ? callback.apply(callback_sequence) : callback_sequence
end
end
end
end
|