Sha256: fdaddbf6df18b2d04e3ffb19849d51ce9df4e1a5498f26a753ea4dbdc68b9d70

Contents?: true

Size: 691 Bytes

Versions: 2

Compression:

Stored size: 691 Bytes

Contents

# frozen_string_literal: true

module ActiveDelivery
  module Lines
    class Mailer < Base
      alias_method :mailer_class, :handler_class

      DEFAULT_RESOLVER = ->(klass) { klass.name&.gsub(/Delivery$/, "Mailer")&.safe_constantize }

      def notify?(method_name)
        return unless mailer_class
        mailer_class.action_methods.include?(method_name.to_s)
      end

      def notify_now(mailer, mid, ...)
        mailer.public_send(mid, ...).deliver_now
      end

      def notify_later(mailer, mid, ...)
        mailer.public_send(mid, ...).deliver_later
      end
    end

    ActiveDelivery::Base.register_line :mailer, Mailer, resolver: Mailer::DEFAULT_RESOLVER
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_delivery-1.0.0 lib/active_delivery/lines/mailer.rb
active_delivery-1.0.0.rc2 lib/active_delivery/lines/mailer.rb