Class: MailForm::Notifier

Inherits:
ActionMailer::Base
  • Object
show all
Defined in:
lib/mail_form/notifier.rb

Instance Method Summary collapse

Instance Method Details

#contact(form) ⇒ Object

Raises:

  • (ScriptError)


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
# File 'lib/mail_form/notifier.rb', line 6

def contact(form)
  @from       = get_from_class_and_eval(form, :form_sender)
  @subject    = get_from_class_and_eval(form, :form_subject)
  @recipients = get_from_class_and_eval(form, :form_recipients)
  @template   = get_from_class_and_eval(form, :form_template)

  raise ScriptError, "You forgot to setup #{form.class.name} recipients" if @recipients.blank?
  raise ScriptError, "You set :append values but forgot to give me the request object" if form.request.nil? && !form.class.form_appendable.blank?

  @body['form']    = form
  @body['subject'] = @subject

  @sent_on = Time.now.utc
  @headers = form.class.form_headers
  @content_type = 'text/html'

  form.class.form_attachments.each do |attribute|
    value = form.send(attribute)
    if value.respond_to?(:read)
      attachment value.content_type.to_s do |att|
        att.filename = value.original_filename
        att.body = value.read
      end
    end
  end
end