module SnipSnap::ActionMailerExtension

Public Class Methods

registered(app) click to toggle source
# File lib/snipsnap/extensions/action_mailer.rb, line 20
def self.registered(app)
  ActionMailer::Base.class_eval do
    helper do
      def url_for(path)
        url_root = ENV.fetch("URL_ROOT", "")
        [url_root, path].join
      end
    end
  end

  app.configure do
    ActionMailer::Base.tap do |config|
      config.delivery_method        = :smtp
      config.view_paths             = app.root
      config.raise_delivery_errors  = true
      config.smtp_settings          = {
        :authentication       => :plain,
        :enable_starttls_auto => true,
        :port                 => 25,
        :address              => ENV["EMAIL_ADDRESS"] || "smtp.sendgrid.net",
        :domain               => ENV["EMAIL_DOMAIN"],
        :user_name            => ENV["EMAIL_USER_NAME"],
        :password             => ENV["EMAIL_PASSWORD"]
      }
    end
  end

  app.configure :development do
    require 'letter_opener'

    ActionMailer::Base.tap do |config|
      config.add_delivery_method :letter_opener,
        LetterOpener::DeliveryMethod,
        location: app.root + "/tmp/letter_opener"
      config.delivery_method = :letter_opener
    end
  end

  app.configure :test do
    config.delivery_method = :test
  end
end

Public Instance Methods

url_for(path) click to toggle source
# File lib/snipsnap/extensions/action_mailer.rb, line 23
def url_for(path)
  url_root = ENV.fetch("URL_ROOT", "")
  [url_root, path].join
end