Sha256: 08002577f07b455ecc1aed5544d3815bc17a3f47d36ea6420f8372a430d2d12e

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

module MailForm
  class Notifier < ActionMailer::Base
    self.mailer_name = "mail_form"
    append_view_path File.expand_path('../views', __FILE__)

    def contact(resource)
      if resource.request.nil? && resource.class.mail_appendable.any?
        raise ScriptError, "You set :append values but forgot to give me the request object"
      end

      @resource = @form = resource

      resource.class.mail_attachments.each do |attribute|
        value = resource.send(attribute)
        if value.is_a?(Array)
          value.each { |attachment_file| add_attachment(attachment_file) }
        else
          add_attachment(value)
        end
      end

      headers = resource.headers
      headers[:from]    ||= resource.email
      headers[:subject] ||= resource.class.model_name.human
      mail(headers)
    end

    private

      def add_attachment(attachment_file)
        return unless attachment_file.respond_to?(:read)
        attachments[attachment_file.original_filename] = attachment_file.read
      end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mail_form-1.10.1 lib/mail_form/notifier.rb
mail_form-1.10.0 lib/mail_form/notifier.rb