Sha256: 032aeba75f2b69764edca983994227fdec2cbaf47a47d0ea0946fba1ee80a08c

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

require "rake_mailer/version"
require 'rubygems'
require 'action_mailer'
require "rake_mailer/mail_it"
require 'fileutils'

module RakeMailer
  class FileWriter
    def initialize(emails = nil)
      @rake_mailer_constants = YAML.load_file("#{Rails.root}/config/rake_mailer.yml")[Rails.env]
      @from = @rake_mailer_constants['from']
      @emails = emails || @rake_mailer_constants['emails']
      @subject = "[Rake Mailer] Report for #{Rake.application.top_level_tasks.first}"
      config_file_path = @rake_mailer_constants['file_path']
      if (config_file_path.nil? || (config_file_path.is_a? String))
        @filename = Time.now.to_i.to_s + "_#{Rake.application.top_level_tasks.first}" + '.txt'
        FileUtils::mkdir_p(config_file_path || 'tmp/rake_mailer')
        @file_location = File.join(Rails.root, (config_file_path || 'tmp/rake_mailer'), @filename)
        @file = open(@file_location, 'w')
      else
        puts 'ERROR: gem rake_mailer => configuration file is incorrect'
      end
    end

    def file_writer(line)
      @file.write(line)
      @file.write("\n")
    end

    def close
      @file.close
      send_email
    end

    private
    def send_email
      if @from.present? && @emails.present? && ((@from.is_a? String) || (@from.is_a? Array)) && ((@emails.is_a? String) || (@emails.is_a? Array))
        RakeMailer::MailIt.custom_text_email(@from, @emails, @file_location, @filename, @subject).deliver_now
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rake_mailer-1.0.2 lib/rake_mailer.rb