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