Class: DeliveryUncle::EmailRequest

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/delivery_uncle/email_request.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create(mailer, mailer_method, *args) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/models/delivery_uncle/email_request.rb', line 7

def self.create(mailer, mailer_method, *args)
  mail = mailer.send(mailer_method, *args)
  raise 'mail with attachment is not supported yet' if mail.has_attachments? 

  request = DeliveryUncle::EmailRequest.new  
  request.mail_body = encode_mail(mail)
  request.mailer = mailer.to_s
  request.mailer_method = mailer_method
  request.status = :new
  request.mail_type = :deliver
  request.request_from = (caller[1][/`.*'/][1..-2] rescue nil)

  request
end

.encode_mail(mail) ⇒ Object



22
23
24
25
26
# File 'app/models/delivery_uncle/email_request.rb', line 22

def self.encode_mail(mail)
  mail.header[:bcc] ? 
    mail.header[:bcc].do_encode('Bcc') << mail.encoded :
    mail.encoded
end

.mailersObject



44
45
46
# File 'app/models/delivery_uncle/email_request.rb', line 44

def self.mailers
  group(:mailer).order('mailer ASC').map(&:mailer)
end

Instance Method Details

#mailObject



28
29
30
# File 'app/models/delivery_uncle/email_request.rb', line 28

def mail
  @mail ||= ::Mail.new(mail_body)
end

#paused?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'app/models/delivery_uncle/email_request.rb', line 32

def paused?
  status == :paused || status == 'paused'
end

#save_status!(status) ⇒ Object



40
41
42
# File 'app/models/delivery_uncle/email_request.rb', line 40

def save_status!(status)
  update_attribute(:status,status)
end

#sent?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'app/models/delivery_uncle/email_request.rb', line 36

def sent?
  status == :sent || status == 'sent'
end