Class ActiveSupport::Callbacks::CallbackChain
In: vendor/rails/activesupport/lib/active_support/callbacks.rb
Parent: Array

Methods

build   delete   find   run   |  

Public Class methods

[Source]

    # File vendor/rails/activesupport/lib/active_support/callbacks.rb, line 80
80:       def self.build(kind, *methods, &block)
81:         methods, options = extract_options(*methods, &block)
82:         methods.map! { |method| Callback.new(kind, method, options) }
83:         new(methods)
84:       end

Public Instance methods

[Source]

     # File vendor/rails/activesupport/lib/active_support/callbacks.rb, line 116
116:       def delete(callback)
117:         super(callback.is_a?(Callback) ? callback : find(callback))
118:       end

[Source]

     # File vendor/rails/activesupport/lib/active_support/callbacks.rb, line 112
112:       def find(callback, &block)
113:         select { |c| c == callback && (!block_given? || yield(c)) }.first
114:       end

[Source]

    # File vendor/rails/activesupport/lib/active_support/callbacks.rb, line 86
86:       def run(object, options = {}, &terminator)
87:         enumerator = options[:enumerator] || :each
88: 
89:         unless block_given?
90:           send(enumerator) { |callback| callback.call(object) }
91:         else
92:           send(enumerator) do |callback|
93:             result = callback.call(object)
94:             break result if terminator.call(result, object)
95:           end
96:         end
97:       end

[Source]

     # File vendor/rails/activesupport/lib/active_support/callbacks.rb, line 99
 99:       def |(chain)
100:         if chain.is_a?(CallbackChain)
101:           chain.each { |callback| self | callback }
102:         else
103:           if (found_callback = find(chain)) && (index = index(chain))
104:             self[index] = chain
105:           else
106:             self << chain
107:           end
108:         end
109:         self
110:       end

[Validate]