Class: Mail::Gpg::SignedPart

Inherits:
Part
  • Object
show all
Defined in:
lib/mail/gpg/signed_part.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build(cleartext_mail) ⇒ Object



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
# File 'lib/mail/gpg/signed_part.rb', line 9

def self.build(cleartext_mail)
  new do
    if cleartext_mail.multipart?
      if cleartext_mail.content_type =~ /^(multipart[^;]+)/
        # preserve multipart/alternative etc
        content_type $1
      else
        content_type 'multipart/mixed'
      end
      cleartext_mail.body.parts.each do |p|
        add_part Mail::Gpg::SignedPart.build(p)
      end
    else
      content_type cleartext_mail.content_type
      if disposition = cleartext_mail.content_disposition
        content_disposition disposition
      end
      if id = cleartext_mail.header['Content-ID']
        content_id id
      end

      # brute force approach to avoid messed up line endings that break
      # signatures with Mail 2.7
      body Mail::Encodings::Base64.encode cleartext_mail.body.to_s
      body.encoding = 'base64'
    end
  end
end

Instance Method Details

#sign(options) ⇒ Object



38
39
40
# File 'lib/mail/gpg/signed_part.rb', line 38

def sign(options)
  SignPart.new(self, options)
end