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