Sha256: 8850cf81921a7007a55a884fa228df76c52ee26866601704de50f89a4e7375d0

Contents?: true

Size: 1.75 KB

Versions: 32

Compression:

Stored size: 1.75 KB

Contents

module EmailSpec
  class EmailViewer
    extend Deliveries
    
    def self.save_and_open_all_raw_emails
      filename = "#{RAILS_ROOT}/tmp/email-#{Time.now.to_i}.txt"

      File.open(filename, "w") do |f|
        all_emails.each do |m|
          f.write m.to_s
          f.write "\n" + '='*80 + "\n"
        end
      end

      open_in_text_editor(filename)
    end

    def self.save_and_open_all_html_emails
      all_emails.each_with_index do |m, index|
        if m.multipart? && html_part = m.parts.detect{ |p| p.content_type == 'text/html' }
          filename = tmp_email_filename("-#{index}.html")
          File.open(filename, "w") do |f|
            f.write m.parts[1].body
          end
          open_in_browser(filename)
        end
      end
    end

    def self.save_and_open_all_text_emails
      filename = tmp_email_filename

      File.open(filename, "w") do |f|
        all_emails.each do |m|
          if m.multipart? && text_part = m.parts.detect{ |p| p.content_type == 'text/plain' }
            m.ordered_each{|k,v| f.write "#{k}: #{v}\n" }
            f.write text_part.body
          else
            f.write m.to_s
          end
          f.write "\n" + '='*80 + "\n"
        end
      end

      open_in_text_editor(filename)
    end
  
    def self.save_and_open_email(mail)
      filename = "#{RAILS_ROOT}/tmp/email-#{Time.now.to_i}.txt"

      File.open(filename, "w") do |f|
        f.write mail.to_s
      end

      open_in_text_editor(filename)
    end
    
    def self.open_in_text_editor(filename)
      `mate #{filename}`
    end
    
    def self.open_in_browser(filename)
      `open #{filename}`
    end
    
    def self.tmp_email_filename(extension = '.txt')
      "#{RAILS_ROOT}/tmp/email-#{Time.now.to_i}#{extension}"
    end
  end
end

Version data entries

32 entries across 32 versions & 9 rubygems

Version Path
basiszwo-email_spec-0.1.3 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.0.10 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.0.9 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.1.0 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.1.1 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.1.2 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.1.3 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.1.4 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.2.0 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.2.1 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.3.0 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.3.1 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.3.2 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.3.3 lib/email_spec/email_viewer.rb
bmabey-email_spec-0.3.4 lib/email_spec/email_viewer.rb
craigw-email_spec-0.1.4 lib/email_spec/email_viewer.rb
hectoregm-email_spec-0.1.2 lib/email_spec/email_viewer.rb
hectoregm-email_spec-0.1.3 lib/email_spec/email_viewer.rb
leondu-email_spec-0.1.4 lib/email_spec/email_viewer.rb
rainchen-email_spec-0.1.4 lib/email_spec/email_viewer.rb