| Class | ActiveSupport::Callbacks::CallbackChain |
| In: |
vendor/rails/activesupport/lib/active_support/callbacks.rb
|
| Parent: | Array |
# 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
# 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
# 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
# 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
# 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