class PrioritizedCallbacks::CallbackList

Attributes

config[R]

Public Class Methods

new(config, callbacks = []) click to toggle source
Calls superclass method
# File lib/prioritized_callbacks/callback_list.rb, line 5
def initialize(config, callbacks = [])
  @config = config
  super(callbacks)
end

Public Instance Methods

each() { |callback| ... } click to toggle source
# File lib/prioritized_callbacks/callback_list.rb, line 10
def each
  if config[:reverse]
    callbacks = to_a.reverse
    order     = config[:order].reverse
  else
    callbacks = to_a
    order     = config[:order]
  end
  if config[:reverse_after]
    order.each do |priority|
      callbacks.each do |callback|
        yield callback if callback.priority == priority && (callback.kind == :before || callback.kind == :around)
      end
    end
    order.reverse.each do |priority|
      callbacks.each do |callback|
        yield callback if callback.priority == priority && callback.kind == :after
      end
    end
  else
    order.each do |priority|
      callbacks.each do |callback|
        yield callback if callback.priority == priority
      end
    end
  end
end
reverse() click to toggle source
# File lib/prioritized_callbacks/callback_list.rb, line 38
def reverse
  CallbackList.new(config.merge(reverse: true), to_a)
end