# File lib/active_support/callbacks.rb, line 485 def set_callback(name, *filter_list, &block) mapped = nil __update_callbacks(name, filter_list, block) do |chain, type, filters, options| mapped ||= filters.map do |filter| Callback.new(chain, filter, type, options.dup, self) end filters.each do |filter| chain.delete_if {|c| c.matches?(type, filter) } end options[:prepend] ? chain.unshift(*(mapped.reverse)) : chain.push(*mapped) end end