Class: SpecViews::MailMessageExtractor

Inherits:
Object
  • Object
show all
Defined in:
app/models/spec_views/mail_message_extractor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mail, expected_status:) ⇒ MailMessageExtractor

Returns a new instance of MailMessageExtractor.



7
8
9
10
11
12
13
# File 'app/models/spec_views/mail_message_extractor.rb', line 7

def initialize(mail, expected_status:)
  @mail = mail
  @body = extract_body(mail)
  return if body.present?

  @failure_message = 'Failed to find mail part'
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



5
6
7
# File 'app/models/spec_views/mail_message_extractor.rb', line 5

def body
  @body
end

#failure_messageObject (readonly)

Returns the value of attribute failure_message.



5
6
7
# File 'app/models/spec_views/mail_message_extractor.rb', line 5

def failure_message
  @failure_message
end

#mailObject (readonly)

Returns the value of attribute mail.



5
6
7
# File 'app/models/spec_views/mail_message_extractor.rb', line 5

def mail
  @mail
end

Instance Method Details

#extract_body(part) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'app/models/spec_views/mail_message_extractor.rb', line 19

def extract_body(part)
  return part.raw_source if part.respond_to?(:raw_source) && part.raw_source.present?
  return extract_body(part.body) if part.respond_to?(:body)
  return part if part.is_a?(String)

  return if !part.respond_to?(:parts) && nil

  part.parts.map do |inner_part|
    extract_body(inner_part)
  end.compact.first
end

#extractor_failure?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'app/models/spec_views/mail_message_extractor.rb', line 15

def extractor_failure?
  failure_message.present?
end