Sha256: 79472809389e3d870dfaed9e7898a312c1bf7384a8a8d496cef694218b15b738

Contents?: true

Size: 1.21 KB

Versions: 7

Compression:

Stored size: 1.21 KB

Contents

module Emailer

  class LoggerSmtpFacade < MockSmtpFacade

    def initialize(settings = {})
      @logger_settings = settings.clone
      @logger_settings.keys.each do |key|
        raise ArgumentError.new("invalid option, {"+key.to_s+" => "+@logger_settings[key].to_s+"}") unless 
        [:log_file, :use].include? key
      end
      raise ArgumentError.new(":log_file location is missing") unless @logger_settings[:log_file]
      settings.clear
      super
    end

    def open
      if  @logger_settings[:use]
        @logger_settings[:use].open do 
          super
        end
      else
        super
      end
    end

    # And save, don't send, write to a singel file
    def send_mail(options)
      super
      
      @logger_settings[:use].send_mail options if @logger_settings[:use]

      File.open(@logger_settings[:log_file],File::WRONLY|File::APPEND|File::CREAT) do |f|

        f.print "email.add {\n"
        options.each do |option|
          f.print "\t:"+option.first.to_s+" => \""+option.last.to_s+"\"\n" unless option.first == :body
        end
        f.print "\t:sent_at => \""+Time.now.to_s+"\"\n"
        f.print "\t:body => \""+options[:body].to_s+"\"\n"
        f.print "}\n"
      end
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
bjornblomqvist-emailer-0.1.11 lib/emailer/logger_smtp_facade.rb
bjornblomqvist-emailer-0.1.12 lib/emailer/logger_smtp_facade.rb
bjornblomqvist-emailer-0.1.13 lib/emailer/logger_smtp_facade.rb
bjornblomqvist-emailer-0.1.15 lib/emailer/logger_smtp_facade.rb
bjornblomqvist-emailer-0.1.6 lib/emailer/logger_smtp_facade.rb
bjornblomqvist-emailer-0.1.7 lib/emailer/logger_smtp_facade.rb
bjornblomqvist-emailer-0.1.9 lib/emailer/logger_smtp_facade.rb