has_emails 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/{CHANGELOG → CHANGELOG.rdoc} +8 -15
 - data/{README → README.rdoc} +14 -14
 - data/Rakefile +46 -38
 - data/test/factory.rb +27 -21
 - data/test/functional/has_emails_test.rb +10 -10
 - data/test/unit/email_test.rb +1 -1
 - metadata +8 -8
 - /data/{MIT-LICENSE → LICENSE} +0 -0
 
| 
         @@ -1,35 +1,28 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            == master
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            == 0.1.2 / 2008-06-29
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            * Add compatibility with has_messages 0.1.2
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            == 0.1.1 / 2008-06-22
         
     | 
| 
       4 
8 
     | 
    
         | 
| 
       5 
9 
     | 
    
         
             
            * Remove log files from gems
         
     | 
| 
       6 
10 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 11 
     | 
    
         
            +
            == 0.1.0 / 2008-05-05
         
     | 
| 
       8 
12 
     | 
    
         | 
| 
       9 
13 
     | 
    
         
             
            * Update to latest has_messages api
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
14 
     | 
    
         
             
            * Simplify by removing support for models other than EmailAddresses in Emails
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
15 
     | 
    
         
             
            * Updated documentation
         
     | 
| 
       14 
16 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
      
 17 
     | 
    
         
            +
            == 0.0.1 / 2007-09-26
         
     | 
| 
       16 
18 
     | 
    
         | 
| 
       17 
19 
     | 
    
         
             
            * Refactor has_email_address/has_email_addresses so that new associations for unsent/sent emails isn't created for has_email_address
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
20 
     | 
    
         
             
            * Add state changes fixtures for tests
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
21 
     | 
    
         
             
            * Add tests for ApplicationMailer
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
22 
     | 
    
         
             
            * Add support for tracking the original email address for senders/recipients even if the email address changes on the associated model (i.e. EmailAddress/User/etc.)
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
23 
     | 
    
         
             
            * Support converting models with an email_address/email_addresses association
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
24 
     | 
    
         
             
            * Allow the sender of emails to be an arbitrary string email address
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
25 
     | 
    
         
             
            * Add documentation
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
26 
     | 
    
         
             
            * Move test fixtures out of the test application root directory
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
27 
     | 
    
         
             
            * Convert dos newlines to unix newlines
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
28 
     | 
    
         
             
            * Update against latest changes to has_messages
         
     | 
    
        data/{README → README.rdoc}
    RENAMED
    
    | 
         @@ -5,21 +5,21 @@ logging and asynchronous support. 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            == Resources
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
            Wiki
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
            * http://wiki.pluginaweek.org/Has_emails
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
8 
     | 
    
         
             
            API
         
     | 
| 
       13 
9 
     | 
    
         | 
| 
       14 
10 
     | 
    
         
             
            * http://api.pluginaweek.org/has_emails
         
     | 
| 
       15 
11 
     | 
    
         | 
| 
      
 12 
     | 
    
         
            +
            Bugs
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            * http://pluginaweek.lighthouseapp.com/projects/13272-has_emails
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
       16 
16 
     | 
    
         
             
            Development
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            * http:// 
     | 
| 
      
 18 
     | 
    
         
            +
            * http://github.com/pluginaweek/has_emails
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
            Source
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
            *  
     | 
| 
      
 22 
     | 
    
         
            +
            * git://github.com/pluginaweek/has_emails.git
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
            == Description
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
         @@ -51,19 +51,19 @@ In addition to queueing emails, you can build them directly like so: 
     | 
|
| 
       51 
51 
     | 
    
         
             
              email.to EmailAddress.find(456)
         
     | 
| 
       52 
52 
     | 
    
         
             
              email.subject = 'Hey!'
         
     | 
| 
       53 
53 
     | 
    
         
             
              email.body = 'Does anyone want to go out tonight?'
         
     | 
| 
       54 
     | 
    
         
            -
              email.deliver 
     | 
| 
      
 54 
     | 
    
         
            +
              email.deliver
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
       56 
56 
     | 
    
         
             
            === Replying to emails
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
       58 
58 
     | 
    
         
             
              reply = email.reply_to_all
         
     | 
| 
       59 
59 
     | 
    
         
             
              reply.body = "I'd love to go out!"
         
     | 
| 
       60 
     | 
    
         
            -
              reply.deliver 
     | 
| 
      
 60 
     | 
    
         
            +
              reply.deliver
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
62 
     | 
    
         
             
            === Forwarding emails
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
              forward = email.forward
         
     | 
| 
       65 
65 
     | 
    
         
             
              forward.body = 'Interested?'
         
     | 
| 
       66 
     | 
    
         
            -
              forward.deliver 
     | 
| 
      
 66 
     | 
    
         
            +
              forward.deliver
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
       68 
68 
     | 
    
         
             
            === Processing email asynchronously
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
         @@ -76,13 +76,13 @@ To process queued emails, you need an external cron job that checks and sends 
     | 
|
| 
       76 
76 
     | 
    
         
             
            them like so:
         
     | 
| 
       77 
77 
     | 
    
         | 
| 
       78 
78 
     | 
    
         
             
              Email.with_state('queued').each do |email|
         
     | 
| 
       79 
     | 
    
         
            -
                email.deliver 
     | 
| 
      
 79 
     | 
    
         
            +
                email.deliver
         
     | 
| 
       80 
80 
     | 
    
         
             
              end
         
     | 
| 
       81 
81 
     | 
    
         | 
| 
       82 
82 
     | 
    
         
             
            == Testing
         
     | 
| 
       83 
83 
     | 
    
         | 
| 
       84 
84 
     | 
    
         
             
            Before you can run any tests, the following gem must be installed:
         
     | 
| 
       85 
     | 
    
         
            -
            * plugin_test_helper[http:// 
     | 
| 
      
 85 
     | 
    
         
            +
            * plugin_test_helper[http://github.com/pluginaweek/plugin_test_helper]
         
     | 
| 
       86 
86 
     | 
    
         | 
| 
       87 
87 
     | 
    
         
             
            To run against a specific version of Rails:
         
     | 
| 
       88 
88 
     | 
    
         | 
| 
         @@ -91,6 +91,6 @@ To run against a specific version of Rails: 
     | 
|
| 
       91 
91 
     | 
    
         
             
            == Dependencies
         
     | 
| 
       92 
92 
     | 
    
         | 
| 
       93 
93 
     | 
    
         
             
            * Rails 2.1 or later
         
     | 
| 
       94 
     | 
    
         
            -
            * plugins_plus[http:// 
     | 
| 
       95 
     | 
    
         
            -
            * has_messages[http:// 
     | 
| 
       96 
     | 
    
         
            -
            * state_machine[http:// 
     | 
| 
      
 94 
     | 
    
         
            +
            * plugins_plus[http://github.com/pluginaweek/plugins_plus]
         
     | 
| 
      
 95 
     | 
    
         
            +
            * has_messages[http://github.com/pluginaweek/has_messages]
         
     | 
| 
      
 96 
     | 
    
         
            +
            * state_machine[http://github.com/pluginaweek/state_machine]
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -3,48 +3,56 @@ require 'rake/rdoctask' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'rake/gempackagetask'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'rake/contrib/sshpublisher'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 6 
     | 
    
         
            +
            spec = Gem::Specification.new do |s|
         
     | 
| 
      
 7 
     | 
    
         
            +
              s.name              = 'has_emails'
         
     | 
| 
      
 8 
     | 
    
         
            +
              s.version           = '0.1.2'
         
     | 
| 
      
 9 
     | 
    
         
            +
              s.platform          = Gem::Platform::RUBY
         
     | 
| 
      
 10 
     | 
    
         
            +
              s.summary           = 'Demonstrates a reference implementation for sending emails with logging and asynchronous support.'
         
     | 
| 
      
 11 
     | 
    
         
            +
              
         
     | 
| 
      
 12 
     | 
    
         
            +
              s.files             = FileList['{app,db,lib,test}/**/*'].to_a - FileList['test/app_root/log/*'].to_a + %w(CHANGELOG.rdoc init.rb LICENSE Rakefile README.rdoc)
         
     | 
| 
      
 13 
     | 
    
         
            +
              s.require_path      = 'lib'
         
     | 
| 
      
 14 
     | 
    
         
            +
              s.has_rdoc          = true
         
     | 
| 
      
 15 
     | 
    
         
            +
              s.test_files        = Dir['test/**/*_test.rb']
         
     | 
| 
      
 16 
     | 
    
         
            +
              s.add_dependency    'has_messages', '>= 0.1.2'
         
     | 
| 
      
 17 
     | 
    
         
            +
              s.add_dependency    'validates_as_email_address', '>= 0.0.2'
         
     | 
| 
      
 18 
     | 
    
         
            +
              
         
     | 
| 
      
 19 
     | 
    
         
            +
              s.author            = 'Aaron Pfeifer'
         
     | 
| 
      
 20 
     | 
    
         
            +
              s.email             = 'aaron@pluginaweek.org'
         
     | 
| 
      
 21 
     | 
    
         
            +
              s.homepage          = 'http://www.pluginaweek.org'
         
     | 
| 
      
 22 
     | 
    
         
            +
              s.rubyforge_project = 'pluginaweek'
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
      
 24 
     | 
    
         
            +
              
         
     | 
| 
      
 25 
     | 
    
         
            +
            desc 'Default: run all tests.'
         
     | 
| 
       12 
26 
     | 
    
         
             
            task :default => :test
         
     | 
| 
       13 
27 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
            desc  
     | 
| 
      
 28 
     | 
    
         
            +
            desc "Test the #{spec.name} plugin."
         
     | 
| 
       15 
29 
     | 
    
         
             
            Rake::TestTask.new(:test) do |t|
         
     | 
| 
       16 
30 
     | 
    
         
             
              t.libs << 'lib'
         
     | 
| 
       17 
     | 
    
         
            -
              t. 
     | 
| 
      
 31 
     | 
    
         
            +
              t.test_files = spec.test_files
         
     | 
| 
       18 
32 
     | 
    
         
             
              t.verbose = true
         
     | 
| 
       19 
33 
     | 
    
         
             
            end
         
     | 
| 
       20 
34 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 35 
     | 
    
         
            +
            begin
         
     | 
| 
      
 36 
     | 
    
         
            +
              require 'rcov/rcovtask'
         
     | 
| 
      
 37 
     | 
    
         
            +
              namespace :test do
         
     | 
| 
      
 38 
     | 
    
         
            +
                desc "Test the #{spec.name} plugin with Rcov."
         
     | 
| 
      
 39 
     | 
    
         
            +
                Rcov::RcovTask.new(:rcov) do |t|
         
     | 
| 
      
 40 
     | 
    
         
            +
                  t.libs << 'lib'
         
     | 
| 
      
 41 
     | 
    
         
            +
                  t.test_files = spec.test_files
         
     | 
| 
      
 42 
     | 
    
         
            +
                  t.rcov_opts << '--exclude="^(?!lib/|app/)"'
         
     | 
| 
      
 43 
     | 
    
         
            +
                  t.verbose = true
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 47 
     | 
    
         
            +
            end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            desc "Generate documentation for the #{spec.name} plugin."
         
     | 
| 
       22 
50 
     | 
    
         
             
            Rake::RDocTask.new(:rdoc) do |rdoc|
         
     | 
| 
       23 
51 
     | 
    
         
             
              rdoc.rdoc_dir = 'rdoc'
         
     | 
| 
       24 
     | 
    
         
            -
              rdoc.title    =  
     | 
| 
      
 52 
     | 
    
         
            +
              rdoc.title    = spec.name
         
     | 
| 
       25 
53 
     | 
    
         
             
              rdoc.template = '../rdoc_template.rb'
         
     | 
| 
       26 
54 
     | 
    
         
             
              rdoc.options << '--line-numbers' << '--inline-source'
         
     | 
| 
       27 
     | 
    
         
            -
              rdoc.rdoc_files.include('README')
         
     | 
| 
       28 
     | 
    
         
            -
              rdoc.rdoc_files.include('lib/**/*.rb')
         
     | 
| 
       29 
     | 
    
         
            -
            end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
            spec = Gem::Specification.new do |s|
         
     | 
| 
       32 
     | 
    
         
            -
              s.name            = PKG_NAME
         
     | 
| 
       33 
     | 
    
         
            -
              s.version         = PKG_VERSION
         
     | 
| 
       34 
     | 
    
         
            -
              s.platform        = Gem::Platform::RUBY
         
     | 
| 
       35 
     | 
    
         
            -
              s.summary         = 'Demonstrates a reference implementation for sending emails with logging and asynchronous support.'
         
     | 
| 
       36 
     | 
    
         
            -
              
         
     | 
| 
       37 
     | 
    
         
            -
              s.files           = FileList['{app,db,lib,test}/**/*'].to_a - FileList['test/app_root/log/*'].to_a + %w(CHANGELOG init.rb MIT-LICENSE Rakefile README)
         
     | 
| 
       38 
     | 
    
         
            -
              s.require_path    = 'lib'
         
     | 
| 
       39 
     | 
    
         
            -
              s.autorequire     = 'has_emails'
         
     | 
| 
       40 
     | 
    
         
            -
              s.has_rdoc        = true
         
     | 
| 
       41 
     | 
    
         
            -
              s.test_files      = Dir['test/**/*_test.rb']
         
     | 
| 
       42 
     | 
    
         
            -
              s.add_dependency  'has_messages', '>= 0.1.0'
         
     | 
| 
       43 
     | 
    
         
            -
              s.add_dependency  'validates_as_email_address', '>= 0.0.2'
         
     | 
| 
       44 
     | 
    
         
            -
              
         
     | 
| 
       45 
     | 
    
         
            -
              s.author          = 'Aaron Pfeifer'
         
     | 
| 
       46 
     | 
    
         
            -
              s.email           = 'aaron@pluginaweek.org'
         
     | 
| 
       47 
     | 
    
         
            -
              s.homepage        = 'http://www.pluginaweek.org'
         
     | 
| 
      
 55 
     | 
    
         
            +
              rdoc.rdoc_files.include('README.rdoc', 'CHANGELOG.rdoc', 'LICENSE', 'lib/**/*.rb', 'app/**/*.rb')
         
     | 
| 
       48 
56 
     | 
    
         
             
            end
         
     | 
| 
       49 
57 
     | 
    
         | 
| 
       50 
58 
     | 
    
         
             
            Rake::GemPackageTask.new(spec) do |p|
         
     | 
| 
         @@ -53,14 +61,14 @@ Rake::GemPackageTask.new(spec) do |p| 
     | 
|
| 
       53 
61 
     | 
    
         
             
              p.need_zip = true
         
     | 
| 
       54 
62 
     | 
    
         
             
            end
         
     | 
| 
       55 
63 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
            desc 'Publish the beta gem'
         
     | 
| 
      
 64 
     | 
    
         
            +
            desc 'Publish the beta gem.'
         
     | 
| 
       57 
65 
     | 
    
         
             
            task :pgem => [:package] do
         
     | 
| 
       58 
     | 
    
         
            -
              Rake::SshFilePublisher.new('aaron@pluginaweek.org', '/home/aaron/gems.pluginaweek.org/public/gems', 'pkg', "#{ 
     | 
| 
      
 66 
     | 
    
         
            +
              Rake::SshFilePublisher.new('aaron@pluginaweek.org', '/home/aaron/gems.pluginaweek.org/public/gems', 'pkg', "#{spec.name}-#{spec.version}.gem").upload
         
     | 
| 
       59 
67 
     | 
    
         
             
            end
         
     | 
| 
       60 
68 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
            desc 'Publish the API documentation'
         
     | 
| 
      
 69 
     | 
    
         
            +
            desc 'Publish the API documentation.'
         
     | 
| 
       62 
70 
     | 
    
         
             
            task :pdoc => [:rdoc] do
         
     | 
| 
       63 
     | 
    
         
            -
              Rake::SshDirPublisher.new('aaron@pluginaweek.org', "/home/aaron/api.pluginaweek.org/public/#{ 
     | 
| 
      
 71 
     | 
    
         
            +
              Rake::SshDirPublisher.new('aaron@pluginaweek.org', "/home/aaron/api.pluginaweek.org/public/#{spec.name}", 'rdoc').upload
         
     | 
| 
       64 
72 
     | 
    
         
             
            end
         
     | 
| 
       65 
73 
     | 
    
         | 
| 
       66 
74 
     | 
    
         
             
            desc 'Publish the API docs and gem'
         
     | 
| 
         @@ -73,10 +81,10 @@ task :release => [:gem, :package] do 
     | 
|
| 
       73 
81 
     | 
    
         
             
              ruby_forge = RubyForge.new.configure
         
     | 
| 
       74 
82 
     | 
    
         
             
              ruby_forge.login
         
     | 
| 
       75 
83 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
              %w( 
     | 
| 
       77 
     | 
    
         
            -
                file = "pkg/#{ 
     | 
| 
      
 84 
     | 
    
         
            +
              %w(gem tgz zip).each do |ext|
         
     | 
| 
      
 85 
     | 
    
         
            +
                file = "pkg/#{spec.name}-#{spec.version}.#{ext}"
         
     | 
| 
       78 
86 
     | 
    
         
             
                puts "Releasing #{File.basename(file)}..."
         
     | 
| 
       79 
87 
     | 
    
         | 
| 
       80 
     | 
    
         
            -
                ruby_forge.add_release( 
     | 
| 
      
 88 
     | 
    
         
            +
                ruby_forge.add_release(spec.rubyforge_project, spec.name, spec.version, file)
         
     | 
| 
       81 
89 
     | 
    
         
             
              end
         
     | 
| 
       82 
90 
     | 
    
         
             
            end
         
     | 
    
        data/test/factory.rb
    CHANGED
    
    | 
         @@ -1,26 +1,32 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Factory
         
     | 
| 
       2 
     | 
    
         
            -
              # Build actions for the  
     | 
| 
       3 
     | 
    
         
            -
              def self.build( 
     | 
| 
       4 
     | 
    
         
            -
                name =  
     | 
| 
       5 
     | 
    
         
            -
                define_method("#{name}_attributes", block)
         
     | 
| 
      
 2 
     | 
    
         
            +
              # Build actions for the model
         
     | 
| 
      
 3 
     | 
    
         
            +
              def self.build(model, &block)
         
     | 
| 
      
 4 
     | 
    
         
            +
                name = model.to_s.underscore
         
     | 
| 
       6 
5 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
                 
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 6 
     | 
    
         
            +
                define_method("#{name}_attributes", block)
         
     | 
| 
      
 7 
     | 
    
         
            +
                define_method("valid_#{name}_attributes") {|*args| valid_attributes_for(model, *args)}
         
     | 
| 
      
 8 
     | 
    
         
            +
                define_method("new_#{name}")              {|*args| new_record(model, *args)}
         
     | 
| 
      
 9 
     | 
    
         
            +
                define_method("create_#{name}")           {|*args| create_record(model, *args)}
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
              
         
     | 
| 
      
 12 
     | 
    
         
            +
              # Get valid attributes for the model
         
     | 
| 
      
 13 
     | 
    
         
            +
              def valid_attributes_for(model, attributes = {})
         
     | 
| 
      
 14 
     | 
    
         
            +
                name = model.to_s.underscore
         
     | 
| 
      
 15 
     | 
    
         
            +
                send("#{name}_attributes", attributes)
         
     | 
| 
      
 16 
     | 
    
         
            +
                attributes
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
              
         
     | 
| 
      
 19 
     | 
    
         
            +
              # Build an unsaved record
         
     | 
| 
      
 20 
     | 
    
         
            +
              def new_record(model, *args)
         
     | 
| 
      
 21 
     | 
    
         
            +
                model.new(valid_attributes_for(model, *args))
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
              
         
     | 
| 
      
 24 
     | 
    
         
            +
              # Build and save/reload a record
         
     | 
| 
      
 25 
     | 
    
         
            +
              def create_record(model, *args)
         
     | 
| 
      
 26 
     | 
    
         
            +
                record = new_record(model, *args)
         
     | 
| 
      
 27 
     | 
    
         
            +
                record.save!
         
     | 
| 
      
 28 
     | 
    
         
            +
                record.reload
         
     | 
| 
      
 29 
     | 
    
         
            +
                record
         
     | 
| 
       24 
30 
     | 
    
         
             
              end
         
     | 
| 
       25 
31 
     | 
    
         | 
| 
       26 
32 
     | 
    
         
             
              build Email do |attributes|
         
     | 
| 
         @@ -36,7 +36,7 @@ class EmailAddresFunctionalsTest < Test::Unit::TestCase 
     | 
|
| 
       36 
36 
     | 
    
         
             
              def test_should_be_able_to_send_new_emails
         
     | 
| 
       37 
37 
     | 
    
         
             
                email = @email_address.emails.build
         
     | 
| 
       38 
38 
     | 
    
         
             
                email.to create_email_address(:spec => 'jane.smith@gmail.com')
         
     | 
| 
       39 
     | 
    
         
            -
                assert email.deliver 
     | 
| 
      
 39 
     | 
    
         
            +
                assert email.deliver
         
     | 
| 
       40 
40 
     | 
    
         
             
              end
         
     | 
| 
       41 
41 
     | 
    
         
             
            end
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
         @@ -44,7 +44,7 @@ class EmailAddressWithUnsentEmails < Test::Unit::TestCase 
     | 
|
| 
       44 
44 
     | 
    
         
             
              def setup
         
     | 
| 
       45 
45 
     | 
    
         
             
                @email_address = create_email_address
         
     | 
| 
       46 
46 
     | 
    
         
             
                @sent_email = create_email(:sender => @email_address, :to => create_email_address(:spec => 'jane.smith@gmail.com'))
         
     | 
| 
       47 
     | 
    
         
            -
                @sent_email.deliver 
     | 
| 
      
 47 
     | 
    
         
            +
                @sent_email.deliver
         
     | 
| 
       48 
48 
     | 
    
         
             
                @first_draft = create_email(:sender => @email_address)
         
     | 
| 
       49 
49 
     | 
    
         
             
                @second_draft = create_email(:sender => @email_address)
         
     | 
| 
       50 
50 
     | 
    
         
             
              end
         
     | 
| 
         @@ -65,10 +65,10 @@ class EmailAddressWithSentEmails < Test::Unit::TestCase 
     | 
|
| 
       65 
65 
     | 
    
         
             
                @draft = create_email(:sender => @email_address)
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
67 
     | 
    
         
             
                @first_sent_email = create_email(:sender => @email_address, :to => @to)
         
     | 
| 
       68 
     | 
    
         
            -
                @first_sent_email.deliver 
     | 
| 
      
 68 
     | 
    
         
            +
                @first_sent_email.deliver
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
       70 
70 
     | 
    
         
             
                @second_sent_email = create_email(:sender => @email_address, :to => @to)
         
     | 
| 
       71 
     | 
    
         
            -
                @second_sent_email.deliver 
     | 
| 
      
 71 
     | 
    
         
            +
                @second_sent_email.deliver
         
     | 
| 
       72 
72 
     | 
    
         
             
              end
         
     | 
| 
       73 
73 
     | 
    
         | 
| 
       74 
74 
     | 
    
         
             
              def test_should_have_sent_emails
         
     | 
| 
         @@ -88,10 +88,10 @@ class EmailAddressWithReceivedEmails < Test::Unit::TestCase 
     | 
|
| 
       88 
88 
     | 
    
         
             
                @unsent_email = create_email(:sender => @sender, :to => @email_address)
         
     | 
| 
       89 
89 
     | 
    
         | 
| 
       90 
90 
     | 
    
         
             
                @first_sent_email = create_email(:sender => @sender, :to => @email_address)
         
     | 
| 
       91 
     | 
    
         
            -
                @first_sent_email.deliver 
     | 
| 
      
 91 
     | 
    
         
            +
                @first_sent_email.deliver
         
     | 
| 
       92 
92 
     | 
    
         | 
| 
       93 
93 
     | 
    
         
             
                @second_sent_email = create_email(:sender => @sender, :to => @email_address)
         
     | 
| 
       94 
     | 
    
         
            -
                @second_sent_email.deliver 
     | 
| 
      
 94 
     | 
    
         
            +
                @second_sent_email.deliver
         
     | 
| 
       95 
95 
     | 
    
         
             
              end
         
     | 
| 
       96 
96 
     | 
    
         | 
| 
       97 
97 
     | 
    
         
             
              def test_should_have_received_emails
         
     | 
| 
         @@ -109,16 +109,16 @@ class EmailAddressWithHiddenEmailsTest < Test::Unit::TestCase 
     | 
|
| 
       109 
109 
     | 
    
         
             
                @unsent_email = create_email(:sender => @email_address)
         
     | 
| 
       110 
110 
     | 
    
         | 
| 
       111 
111 
     | 
    
         
             
                hidden_sent_email = create_email(:sender => @email_address, :to => @friend)
         
     | 
| 
       112 
     | 
    
         
            -
                hidden_sent_email.deliver 
     | 
| 
      
 112 
     | 
    
         
            +
                hidden_sent_email.deliver
         
     | 
| 
       113 
113 
     | 
    
         
             
                hidden_sent_email.hide!
         
     | 
| 
       114 
114 
     | 
    
         
             
                @sent_email = create_email(:sender => @email_address, :to => @friend)
         
     | 
| 
       115 
     | 
    
         
            -
                @sent_email.deliver 
     | 
| 
      
 115 
     | 
    
         
            +
                @sent_email.deliver
         
     | 
| 
       116 
116 
     | 
    
         | 
| 
       117 
117 
     | 
    
         
             
                hidden_received_email = create_email(:sender => @friend, :to => @email_address)
         
     | 
| 
       118 
     | 
    
         
            -
                hidden_received_email.deliver 
     | 
| 
      
 118 
     | 
    
         
            +
                hidden_received_email.deliver
         
     | 
| 
       119 
119 
     | 
    
         
             
                hidden_received_email.recipients.first.hide!
         
     | 
| 
       120 
120 
     | 
    
         
             
                @received_email = create_email(:sender => @friend, :to => @email_address)
         
     | 
| 
       121 
     | 
    
         
            -
                @received_email.deliver 
     | 
| 
      
 121 
     | 
    
         
            +
                @received_email.deliver
         
     | 
| 
       122 
122 
     | 
    
         
             
              end
         
     | 
| 
       123 
123 
     | 
    
         | 
| 
       124 
124 
     | 
    
         
             
              def test_should_not_include_hidden_emails_in_emails
         
     | 
    
        data/test/unit/email_test.rb
    CHANGED
    
    | 
         @@ -12,7 +12,7 @@ class EmailAfterBeingDeliveredTest < Test::Unit::TestCase 
     | 
|
| 
       12 
12 
     | 
    
         
             
                  :cc => create_email_address(:spec => 'support@localhost'),
         
     | 
| 
       13 
13 
     | 
    
         
             
                  :bcc => create_email_address(:spec => 'feedback@localhost')
         
     | 
| 
       14 
14 
     | 
    
         
             
                )
         
     | 
| 
       15 
     | 
    
         
            -
                assert @email.deliver 
     | 
| 
      
 15 
     | 
    
         
            +
                assert @email.deliver
         
     | 
| 
       16 
16 
     | 
    
         
             
              end
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
              def test_should_send_mail
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: has_emails
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Aaron Pfeifer
         
     | 
| 
       8 
     | 
    
         
            -
            autorequire:  
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2008-06- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2008-06-29 00:00:00 -04:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -19,7 +19,7 @@ dependencies: 
     | 
|
| 
       19 
19 
     | 
    
         
             
                requirements: 
         
     | 
| 
       20 
20 
     | 
    
         
             
                - - ">="
         
     | 
| 
       21 
21 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       22 
     | 
    
         
            -
                    version: 0.1. 
     | 
| 
      
 22 
     | 
    
         
            +
                    version: 0.1.2
         
     | 
| 
       23 
23 
     | 
    
         
             
                version: 
         
     | 
| 
       24 
24 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       25 
25 
     | 
    
         
             
              name: validates_as_email_address
         
     | 
| 
         @@ -67,11 +67,11 @@ files: 
     | 
|
| 
       67 
67 
     | 
    
         
             
            - test/unit/email_address_test.rb
         
     | 
| 
       68 
68 
     | 
    
         
             
            - test/unit/action_mailer_test.rb
         
     | 
| 
       69 
69 
     | 
    
         
             
            - test/unit/email_test.rb
         
     | 
| 
       70 
     | 
    
         
            -
            - CHANGELOG
         
     | 
| 
      
 70 
     | 
    
         
            +
            - CHANGELOG.rdoc
         
     | 
| 
       71 
71 
     | 
    
         
             
            - init.rb
         
     | 
| 
       72 
     | 
    
         
            -
            -  
     | 
| 
      
 72 
     | 
    
         
            +
            - LICENSE
         
     | 
| 
       73 
73 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       74 
     | 
    
         
            -
            - README
         
     | 
| 
      
 74 
     | 
    
         
            +
            - README.rdoc
         
     | 
| 
       75 
75 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       76 
76 
     | 
    
         
             
            homepage: http://www.pluginaweek.org
         
     | 
| 
       77 
77 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
         @@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       93 
93 
     | 
    
         
             
              version: 
         
     | 
| 
       94 
94 
     | 
    
         
             
            requirements: []
         
     | 
| 
       95 
95 
     | 
    
         | 
| 
       96 
     | 
    
         
            -
            rubyforge_project: 
         
     | 
| 
      
 96 
     | 
    
         
            +
            rubyforge_project: pluginaweek
         
     | 
| 
       97 
97 
     | 
    
         
             
            rubygems_version: 1.1.1
         
     | 
| 
       98 
98 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       99 
99 
     | 
    
         
             
            specification_version: 2
         
     | 
    
        /data/{MIT-LICENSE → LICENSE}
    RENAMED
    
    | 
         
            File without changes
         
     |