Sha256: 2b0d1ed7ae2aaf914f508a76b2abff49e678f558e1b85b28c70aa0344cf42323

Contents?: true

Size: 833 Bytes

Versions: 113

Compression:

Stored size: 833 Bytes

Contents

# frozen_string_literal: true

require "active_support/callbacks"

module ActionMailbox
  # Defines the callbacks related to processing.
  module Callbacks
    extend  ActiveSupport::Concern
    include ActiveSupport::Callbacks

    TERMINATOR = ->(mailbox, chain) do
      chain.call
      mailbox.finished_processing?
    end

    included do
      define_callbacks :process, terminator: TERMINATOR, skip_after_callbacks_if_terminated: true
    end

    class_methods do
      def before_processing(*methods, &block)
        set_callback(:process, :before, *methods, &block)
      end

      def after_processing(*methods, &block)
        set_callback(:process, :after, *methods, &block)
      end

      def around_processing(*methods, &block)
        set_callback(:process, :around, *methods, &block)
      end
    end
  end
end

Version data entries

113 entries across 109 versions & 9 rubygems

Version Path
actionmailbox-7.0.8.6 lib/action_mailbox/callbacks.rb
actionmailbox-6.1.7.10 lib/action_mailbox/callbacks.rb
actionmailbox-6.1.7.9 lib/action_mailbox/callbacks.rb
actionmailbox-7.0.8.5 lib/action_mailbox/callbacks.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/actionmailbox-7.0.8.4/lib/action_mailbox/callbacks.rb
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/actionmailbox-7.0.5.1/lib/action_mailbox/callbacks.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/actionmailbox-7.0.5.1/lib/action_mailbox/callbacks.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/actionmailbox-7.0.5.1/lib/action_mailbox/callbacks.rb
actionmailbox-7.0.8.4 lib/action_mailbox/callbacks.rb
actionmailbox-6.1.7.8 lib/action_mailbox/callbacks.rb
actionmailbox-7.0.8.1 lib/action_mailbox/callbacks.rb
actionmailbox-6.1.7.7 lib/action_mailbox/callbacks.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/actionmailbox-7.0.3.1/lib/action_mailbox/callbacks.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/actionmailbox-7.0.2.3/lib/action_mailbox/callbacks.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/actionmailbox-6.1.6.1/lib/action_mailbox/callbacks.rb
actionmailbox-7.0.8 lib/action_mailbox/callbacks.rb
actionmailbox-7.0.7.2 lib/action_mailbox/callbacks.rb
actionmailbox-6.1.7.6 lib/action_mailbox/callbacks.rb
actionmailbox-7.0.7.1 lib/action_mailbox/callbacks.rb
actionmailbox-6.1.7.5 lib/action_mailbox/callbacks.rb