Class: CloudInit::Userdata::MimeMultipart
Constant Summary
collapse
- MATCH_STRING =
'Content-Type: multipart/mixed'.freeze
- MIMETYPES =
%w(multipart/mixed).freeze
VERSION
Instance Attribute Summary collapse
#raw
Class Method Summary
collapse
Instance Method Summary
collapse
parse, register_format, #valid?
Constructor Details
Returns a new instance of MimeMultipart.
12
13
14
15
|
# File 'lib/cloudinit_userdata/formats/mime_multipart.rb', line 12
def initialize(raw)
super
self.formatters = self.class.parse_formatters(raw)
end
|
Instance Attribute Details
Returns the value of attribute formatters.
10
11
12
|
# File 'lib/cloudinit_userdata/formats/mime_multipart.rb', line 10
def formatters
@formatters
end
|
Class Method Details
.match?(value) ⇒ Boolean
25
26
27
|
# File 'lib/cloudinit_userdata/formats/mime_multipart.rb', line 25
def self.match?(value)
value.include?(MATCH_STRING)
end
|
.mimetypes ⇒ Object
29
30
31
|
# File 'lib/cloudinit_userdata/formats/mime_multipart.rb', line 29
def self.mimetypes
MIMETYPES
end
|
33
34
35
36
37
38
39
40
|
# File 'lib/cloudinit_userdata/formats/mime_multipart.rb', line 33
def self.parse_formatters(raw)
Mail.new(raw).parts.map do |part|
mime = part.mime_type
formatter = Userdata.formats.find { |f| f.mimetypes.include?(mime) }
raise InvalidFormat, "Userdata format for mime type #{mime} not found" unless formatter
formatter.new(part.body.raw_source)
end
end
|
Instance Method Details
#empty? ⇒ Boolean
21
22
23
|
# File 'lib/cloudinit_userdata/formats/mime_multipart.rb', line 21
def empty?
formatters.all?(&:empty?)
end
|
#validate ⇒ Object
17
18
19
|
# File 'lib/cloudinit_userdata/formats/mime_multipart.rb', line 17
def validate
formatters.each(&:validate)
end
|