module PrioritizedCallbacks::ActiveModel::CallbacksPatch

Public Instance Methods

_define_after_model_callback(klass, callback) click to toggle source
# File lib/prioritized_callbacks/active_model/callbacks_patch.rb, line 38
def _define_after_model_callback(klass, callback)
  klass.define_singleton_method("after_#{callback}") do |*args, **options, &block|
    options.assert_valid_keys(:if, :unless, :prepend, :priority)
    options[:prepend] = true
    conditional       = ::ActiveSupport::Callbacks::Conditionals::Value.new { |v|
      v != false
    }
    options[:if]      = Array(options[:if]) + [conditional]
    set_callback(:"#{callback}", :after, *args, options, &block)
  end
end
_define_around_model_callback(klass, callback) click to toggle source
# File lib/prioritized_callbacks/active_model/callbacks_patch.rb, line 31
def _define_around_model_callback(klass, callback)
  klass.define_singleton_method("around_#{callback}") do |*args, **options, &block|
    options.assert_valid_keys(:if, :unless, :prepend, :priority)
    set_callback(:"#{callback}", :around, *args, options, &block)
  end
end
_define_before_model_callback(klass, callback) click to toggle source
# File lib/prioritized_callbacks/active_model/callbacks_patch.rb, line 24
def _define_before_model_callback(klass, callback)
  klass.define_singleton_method("before_#{callback}") do |*args, **options, &block|
    options.assert_valid_keys(:if, :unless, :prepend, :priority)
    set_callback(:"#{callback}", :before, *args, options, &block)
  end
end
define_model_callbacks(*callbacks) click to toggle source
Calls superclass method
# File lib/prioritized_callbacks/active_model/callbacks_patch.rb, line 5
def define_model_callbacks(*callbacks)
  options = callbacks.extract_options!
  options[:reverse_after] = true

  super *callbacks, options

  callbacks.each do |callback|
    define_singleton_method "set_#{callback}_order" do |*args|
      set_callbacks_order(callback, args)
    end
    define_singleton_method "append_#{callback}_order" do |*args, **options|
      append_callbacks_order(callback, args, options)
    end
  end
end