Sha256: 9db3a803bcef04450867ede5619191ad2d363790ba9cb4169fb2350d20e614d6

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

module ActiveWrapper
  class Mail
    
    attr_reader :base, :env, :config
    
    def initialize(options)
      @base = options[:base]
      @env = options[:env].to_s
      
      path = "#{base}/config/mail.yml"
      
      if @env == 'test'
        ActionMailer::Base.delivery_method = :test
      elsif File.exists?(path)
        @config = YAML::load(File.open(path))
        if @config && @config = @config[@env]
          
          @config = @config.to_options
          @config[:imap] = @config[:imap].to_options if @config[:imap]
          @config[:smtp] = @config[:smtp].to_options if @config[:smtp]
          if @config[:smtp]
            ActionMailer::Base.delivery_method = :smtp
            ActionMailer::Base.smtp_settings = @config[:smtp]
          end
        end
      end
    end
    
    def deliver(options)
      Mailer.deliver_email(options)
    end
    
    class Mailer < ActionMailer::Base
      def email(options)
        from        options[:from]
        recipients  options[:to]
        subject     options[:subject]
        body        options[:body]
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
winton-active_wrapper-0.1.3 lib/active_wrapper/mail.rb
winton-active_wrapper-0.1.4 lib/active_wrapper/mail.rb
winton-active_wrapper-0.1.5 lib/active_wrapper/mail.rb