instance method define_callbacks

Ruby on Rails 2.3.18

Since v2.2.3

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

define_callbacks(*callbacks)

No documentation comment.

Parameters

callbacks rest
Source
# File activesupport/lib/active_support/callbacks.rb, line 205
      def define_callbacks(*callbacks)
        callbacks.each do |callback|
          class_eval <<-"end_eval"
            def self.#{callback}(*methods, &block)                             # def self.before_save(*methods, &block)
              callbacks = CallbackChain.build(:#{callback}, *methods, &block)  #   callbacks = CallbackChain.build(:before_save, *methods, &block)
              @#{callback}_callbacks ||= CallbackChain.new                     #   @before_save_callbacks ||= CallbackChain.new
              @#{callback}_callbacks.concat callbacks                          #   @before_save_callbacks.concat callbacks
            end                                                                # end
                                                                               #
            def self.#{callback}_callback_chain                                # def self.before_save_callback_chain
              @#{callback}_callbacks ||= CallbackChain.new                     #   @before_save_callbacks ||= CallbackChain.new
                                                                               #
              if superclass.respond_to?(:#{callback}_callback_chain)           #   if superclass.respond_to?(:before_save_callback_chain)
                CallbackChain.new(                                             #     CallbackChain.new(
                  superclass.#{callback}_callback_chain +                      #       superclass.before_save_callback_chain +
                  @#{callback}_callbacks                                       #       @before_save_callbacks
                )                                                              #     )
              else                                                             #   else
                @#{callback}_callbacks                                         #     @before_save_callbacks
              end                                                              #   end
            end                                                                # end
          end_eval
        end
      end

Defined in activesupport/lib/active_support/callbacks.rb line 205 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::Callbacks::ClassMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close