module MongoMapper::Plugins::EmbeddedCallbacks::ClassMethods

Public Instance Methods

define_callbacks(*args) click to toggle source
Calls superclass method
# File lib/mongo_mapper/plugins/embedded_callbacks.rb, line 22
def define_callbacks(*args)
  embedded_callbacks_on if @embedded_callbacks_status.nil?
  super
end
embedded_callbacks_off() click to toggle source
# File lib/mongo_mapper/plugins/embedded_callbacks.rb, line 31
def embedded_callbacks_off
  @embedded_callbacks_status = false
end
embedded_callbacks_off?() click to toggle source
# File lib/mongo_mapper/plugins/embedded_callbacks.rb, line 39
def embedded_callbacks_off?
  !@embedded_callbacks_status
end
embedded_callbacks_on() click to toggle source
# File lib/mongo_mapper/plugins/embedded_callbacks.rb, line 27
def embedded_callbacks_on
  @embedded_callbacks_status = true
end
embedded_callbacks_on?() click to toggle source
# File lib/mongo_mapper/plugins/embedded_callbacks.rb, line 35
def embedded_callbacks_on?
  !!@embedded_callbacks_status
end
proxy_callbacks(definition) click to toggle source
# File lib/mongo_mapper/plugins/embedded_callbacks.rb, line 43
        def proxy_callbacks(definition)
          definition.each do |prefix, suffixes|
            suffixes.each do |suffix|
              callback = "%s_%s" % [prefix, suffix]

              class_eval <<-CALLBACK, __FILE__, __LINE__ + 1
                class << self
                  alias_method :__original_#{callback}, :#{callback}

                  def #{callback}(*args, **options, &block)
                    embedded_callbacks_on if @embedded_callbacks_status.nil?
                    __original_#{callback}(*args, **options, &block)
                  end
                end
              CALLBACK
            end
          end
        end