Sha256: 45053ce5c11d843744a87f47cd7dff340eecd9e56162b35dda3e96434e50193c

Contents?: true

Size: 1.25 KB

Versions: 15

Compression:

Stored size: 1.25 KB

Contents

module EmailSpec
  module TestDeliveries
    def all_emails
      ActionMailer::Base.deliveries
    end
    
    def last_email_sent
      ActionMailer::Base.deliveries.last || raise("No email has been sent!")
    end

    def reset_mailer
      ActionMailer::Base.deliveries.clear
    end
    
    def mailbox_for(address)
      address = AddressConverter.instance.convert(address)
      ActionMailer::Base.deliveries.select { |m| m.to.include?(address) }
    end
  end
  
  module ARMailerDeliveries
    def all_emails
      Email.all.map{ |email| parse_to_tmail(email) }
    end
    
    def last_email_sent
      if email = Email.last
        TMail::Mail.parse(email.mail)
      else
        raise("No email has been sent!")
      end
    end

    def reset_mailer
      Email.delete_all
    end
    
    def mailbox_for(address)
      address = AddressConverter.instance.convert(address)
      Email.all.select { |email| email.to.include?(address) }.map{ |email| parse_to_tmail(email) }
    end
    
    def parse_to_tmail(email)
      TMail::Mail.parse(email.mail)
    end    
  end
  
  module Deliveries
    if ActionMailer::Base.delivery_method == :activerecord
      include EmailSpec::ARMailerDeliveries
    else
      include EmailSpec::TestDeliveries
    end    
  end
end

Version data entries

15 entries across 15 versions & 7 rubygems

Version Path
basiszwo-email_spec-0.1.3 lib/email_spec/deliveries.rb
bmabey-email_spec-0.0.10 lib/email_spec/deliveries.rb
bmabey-email_spec-0.0.9 lib/email_spec/deliveries.rb
bmabey-email_spec-0.1.0 lib/email_spec/deliveries.rb
bmabey-email_spec-0.1.1 lib/email_spec/deliveries.rb
bmabey-email_spec-0.1.2 lib/email_spec/deliveries.rb
bmabey-email_spec-0.1.3 lib/email_spec/deliveries.rb
bmabey-email_spec-0.1.4 lib/email_spec/deliveries.rb
bmabey-email_spec-0.2.0 lib/email_spec/deliveries.rb
craigw-email_spec-0.1.4 lib/email_spec/deliveries.rb
hectoregm-email_spec-0.1.2 lib/email_spec/deliveries.rb
hectoregm-email_spec-0.1.3 lib/email_spec/deliveries.rb
leondu-email_spec-0.1.4 lib/email_spec/deliveries.rb
rainchen-email_spec-0.1.4 lib/email_spec/deliveries.rb
email_spec-0.2.0 lib/email_spec/deliveries.rb