class ActiveSupport::Callbacks::CallbackChain
:nodoc:#
An Array with a compile method.
def append(*callbacks)
def append(*callbacks) callbacks.each { |c| append_one(c) } end
def append_one(callback)
def append_one(callback) remove_duplicates(callback) push(callback) end
def compile
def compile method = ["value = nil", "halted = false"] callbacks = "value = !halted && (!block_given? || yield)" reverse_each do |callback| callbacks = callback.apply(callbacks) end method << callbacks method << "value" method.join("\n") end
def initialize(name, config)
def initialize(name, config) @name = name @config = { :terminator => "false", :scope => [ :kind ] }.merge!(config) end
def prepend(*callbacks)
def prepend(*callbacks) callbacks.each { |c| prepend_one(c) } end
def prepend_one(callback)
def prepend_one(callback) remove_duplicates(callback) unshift(callback) end
def remove_duplicates(callback)
def remove_duplicates(callback) delete_if { |c| callback.duplicates?(c) } end