File: action_mailer_base_patch.rb

package info (click to toggle)
ruby-mail-gpg 0.4.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 328 kB
  • sloc: ruby: 2,289; makefile: 6
file content (41 lines) | stat: -rw-r--r-- 890 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
require 'action_mailer/base'

module Mail
  module Gpg
    module Rails

      module ActionMailerPatch

        def self.apply
          unless ActionMailer::Base < InstanceMethods
            ActionMailer::Base.prepend InstanceMethods
            ActionMailer::Base.singleton_class.prepend ClassMethods
          end
        end

        module InstanceMethods
          def mail(headers = {}, &block)
            headers = headers.dup
            gpg_options = headers.delete :gpg
            super(headers, &block).tap do |m|
              if gpg_options
                m.gpg gpg_options
              end
            end
          end
        end

        module ClassMethods
          def deliver_mail(mail, &block)
            super(mail) do
              Mail::Gpg::DeliveryHandler.deliver_mail mail, &block
            end
          end
        end

      end

    end
  end
end