class Mailgems::DeliveryMethod

Attributes

settings[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/mailgems/delivery_method.rb, line 12
def initialize(options = {})
  options[:host] = "https://www.mailgems.com"
  options[:api_key] ||= Mailgems.configuration.api_key
  options[:sandbox] ||= Mailgems.configuration.sandbox

  raise InvalidOption, "Api Key is required" if options[:api_key].nil?

  self.settings = options
end

Public Instance Methods

deliver!(mail) click to toggle source
# File lib/mailgems/delivery_method.rb, line 22
def deliver!(mail)
  validate_mail!(mail)
  Message.new(mail, settings).send
  Launchy.open("#{settings[:host]}/sandbox") if settings[:sandbox]
end

Private Instance Methods

validate_mail!(mail) click to toggle source
# File lib/mailgems/delivery_method.rb, line 30
def validate_mail!(mail)
  if mail.smtp_envelope_from.nil? || mail.smtp_envelope_from.empty?
    raise ArgumentError, 'SMTP From address may not be blank'
  end

  if mail.smtp_envelope_to.nil? || mail.smtp_envelope_to.empty?
    raise ArgumentError, 'SMTP To address may not be blank'
  end
end