Sha256: a6f6512d0c3d407136853a4009a054dcc693e0b2446bfb4cadd229822fc6792d

Contents?: true

Size: 815 Bytes

Versions: 3

Compression:

Stored size: 815 Bytes

Contents

require 'fileutils'

module Culerity
  module PersistentDelivery

    DELIVERIES_PATH =
      File.join(RAILS_ROOT, 'tmp', 'action_mailer_acceptance_deliveries.cache')

    def self.included(base)
      base.class_eval do
        def self.deliveries
          return [] unless File.exist?(DELIVERIES_PATH)
          File.open(DELIVERIES_PATH,'r') do |f| 
            Marshal.load(f)
          end
        end 
      
        def self.clear_deliveries
          FileUtils.rm_f DELIVERIES_PATH
        end
      end
    end

    def perform_delivery_persistent(mail)
      deliveries = self.class.deliveries << mail
      File.open(DELIVERIES_PATH,'w') do |f|
        f << Marshal.dump(deliveries)
      end
    end
  end
end

ActionMailer::Base.send :include, Culerity::PersistentDelivery if defined?(ActionMailer)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
culerity-0.2.15 lib/culerity/persistent_delivery.rb
culerity-0.2.14 lib/culerity/persistent_delivery.rb
culerity-0.2.13 lib/culerity/persistent_delivery.rb