has_emails 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/CHANGELOG +8 -0
  2. data/README +32 -71
  3. data/Rakefile +8 -8
  4. data/app/models/email.rb +7 -79
  5. data/app/models/email_address.rb +32 -110
  6. data/db/migrate/001_create_email_addresses.rb +4 -13
  7. data/lib/has_emails/extensions/action_mailer.rb +106 -0
  8. data/lib/has_emails.rb +50 -77
  9. data/test/app_root/app/models/empty +0 -0
  10. data/test/app_root/config/environment.rb +4 -27
  11. data/test/app_root/db/migrate/001_migrate_has_messages_to_version_2.rb +9 -0
  12. data/test/app_root/db/migrate/002_migrate_has_emails_to_version_1.rb +9 -0
  13. data/test/factory.rb +48 -0
  14. data/test/functional/has_emails_test.rb +139 -0
  15. data/test/test_helper.rb +5 -68
  16. data/test/unit/action_mailer_test.rb +57 -0
  17. data/test/unit/email_address_test.rb +100 -152
  18. data/test/unit/email_test.rb +26 -86
  19. metadata +78 -87
  20. data/app/mailers/application_mailer.rb +0 -85
  21. data/app/models/email_recipient.rb +0 -78
  22. data/app/models/email_recipient_build_extension.rb +0 -7
  23. data/db/bootstrap/events.yml +0 -4
  24. data/db/bootstrap/states.yml +0 -9
  25. data/db/migrate/002_add_email_specs.rb +0 -18
  26. data/db/migrate/003_add_email_recipient_specs.rb +0 -18
  27. data/test/app_root/app/models/department.rb +0 -2
  28. data/test/app_root/app/models/user.rb +0 -3
  29. data/test/app_root/db/migrate/001_create_users.rb +0 -11
  30. data/test/app_root/db/migrate/002_create_departments.rb +0 -12
  31. data/test/fixtures/departments.yml +0 -9
  32. data/test/fixtures/email_addresses.yml +0 -32
  33. data/test/fixtures/message_recipients.yml +0 -85
  34. data/test/fixtures/messages.yml +0 -52
  35. data/test/fixtures/state_changes.yml +0 -128
  36. data/test/fixtures/users.yml +0 -11
  37. data/test/unit/application_mailer_test.rb +0 -69
  38. data/test/unit/email_recipient_test.rb +0 -79
  39. data/test/unit/has_emails_test.rb +0 -36
  40. data/test/unit/recipient_extension_test.rb +0 -99
@@ -1,200 +1,148 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
2
 
3
- class EmailAddressTest < Test::Unit::TestCase
4
- fixtures :departments, :users, :email_addresses, :messages, :message_recipients, :state_changes
5
-
6
- def test_should_convert_email_address_using_same_model
7
- e = email_addresses(:bob)
8
- assert_same e, EmailAddress.convert_from(e)
9
- end
10
-
11
- def test_should_convert_string
12
- e = EmailAddress.convert_from('test@email.com')
13
- assert_instance_of EmailAddress, e
14
- assert_equal 'test@email.com', e.spec
15
- end
16
-
17
- def test_should_convert_record_with_email_address_column
18
- department = departments(:marketing)
19
- e = EmailAddress.convert_from(department)
20
- assert_instance_of EmailAddress, e
21
- assert_equal 'marketing@companyxyz.com', e.spec
3
+ class EmailAddressByDefaultTest < Test::Unit::TestCase
4
+ def setup
5
+ @email_address = EmailAddress.new
22
6
  end
23
7
 
24
- def test_should_convert_record_with_email_address_association
25
- user = users(:bob)
26
- class << user
27
- def email_address
28
- EmailAddress.new(:spec => 'test@email.com')
29
- end
30
- end
31
-
32
- e = EmailAddress.convert_from(user)
33
- assert_instance_of EmailAddress, e
34
- assert_equal 'test@email.com', e.spec
35
- end
36
-
37
- def test_should_convert_record_with_email_addresses_association_using_first_email_address
38
- e = EmailAddress.convert_from(users(:bob))
39
- assert_instance_of EmailAddress, e
40
- assert_equal 'bob@bob.com', e.spec
8
+ def test_should_not_have_a_name
9
+ assert @email_address.name.blank?
41
10
  end
42
11
 
43
- def test_should_raise_exception_if_converting_unknown_class_to_email_address
44
- assert_raise(ArgumentError) {EmailAddress.convert_from(1)}
12
+ def test_should_not_have_a_spec
13
+ assert @email_address.name.blank?
45
14
  end
46
-
47
- def test_invalid_spec_should_not_be_valid
48
- assert !EmailAddress.valid?('invalid')
49
- end
50
-
51
- def test_valid_spec_should_be_valid
52
- assert EmailAddress.valid?('valid@valid.com')
53
- end
54
-
55
- def test_should_be_valid
56
- assert_valid email_addresses(:bob)
57
- end
58
-
59
- def test_should_require_spec
60
- assert_invalid email_addresses(:bob), :spec, nil
61
- end
62
-
63
- def test_should_require_unique_spec
64
- assert_invalid email_addresses(:bob).clone, :spec
65
- end
66
-
67
- def test_should_require_minimum_length_for_spec
68
- assert_invalid email_addresses(:bob), :spec, 'ab'
69
- assert_valid email_addresses(:bob), :spec, 'a@a'
70
- end
71
-
72
- def test_should_require_maximum_length_for_spec
73
- assert_invalid email_addresses(:bob), :spec, 'a' * 300 + '@' + 'a' * 20
74
- assert_valid email_addresses(:bob), :spec, 'a' * 300 + '@' + 'a' * 19
15
+ end
16
+
17
+ class EmailAddressTest < Test::Unit::TestCase
18
+ def test_should_be_valid_with_a_set_of_valid_attributes
19
+ email_address = new_email_address
20
+ assert email_address.valid?
75
21
  end
76
22
 
77
- def test_should_require_specific_format_for_spec
78
- assert_invalid email_addresses(:bob), :spec, 'aaaaaaaaaa'
79
- assert_valid email_addresses(:bob), :spec, 'aaa@aaa.com'
23
+ def test_should_require_a_spec
24
+ email_address = new_email_address(:spec => nil)
25
+ assert !email_address.valid?
26
+ assert_equal 3, Array(email_address.errors.on(:spec)).size
80
27
  end
81
28
 
82
- def test_should_have_polymorphic_emailable_association
83
- assert_equal users(:bob), email_addresses(:bob).emailable
29
+ def test_should_require_a_properly_formatted_email
30
+ email_address = new_email_address(:spec => '!@@!@@!')
31
+ assert !email_address.valid?
32
+ assert_equal 1, Array(email_address.errors.on(:spec)).size
84
33
  end
85
34
 
86
- def test_should_have_unsent_emails_association
87
- assert_equal [messages(:unsent_from_bob)], email_addresses(:bob).unsent_emails
35
+ def test_should_not_allow_emails_less_than_3_characters
36
+ email_address = new_email_address(:spec => 'aa')
37
+ assert !email_address.valid?
38
+ assert_equal 2, Array(email_address.errors.on(:spec)).size
39
+
40
+ email_address.spec = 'a@a'
41
+ assert email_address.valid?
88
42
  end
89
43
 
90
- def test_should_have_sent_emails_association
91
- assert_equal [messages(:sent_from_bob), messages(:queued_from_bob)], email_addresses(:bob).sent_emails
44
+ def test_should_not_allow_emails_longer_than_320_characters
45
+ email_address = new_email_address(:spec => 'a' * 314 + '@a.com')
46
+ assert email_address.valid?
47
+
48
+ email_address.spec += 'a'
49
+ assert !email_address.valid?
50
+ assert_equal 1, Array(email_address.errors.on(:spec)).size
92
51
  end
93
52
 
94
- def test_should_have_received_emails_association
95
- assert_equal [messages(:sent_from_bob), messages(:sent_from_mary)], email_addresses(:john).received_emails.map(&:email)
53
+ def test_should_require_a_unique_spec_scoped_by_name
54
+ email_address = create_email_address(:spec => 'john.smith@gmail.com', :name => 'John Smith')
55
+
56
+ second_email_address = new_email_address(:spec => 'john.smith@gmail.com', :name => 'John Smith II')
57
+ assert second_email_address.valid?
58
+
59
+ second_email_address = new_email_address(:spec => 'john.smith@gmail.com', :name => 'John Smith')
60
+ assert !second_email_address.valid?
61
+ assert_equal 1, Array(second_email_address.errors.on(:spec)).size
96
62
  end
97
63
 
98
- def test_initial_state_should_be_unverified
99
- assert_equal :unverified, EmailAddress.new.state.to_sym
64
+ def test_should_not_require_a_name
65
+ email_address = new_email_address(:name => nil)
66
+ assert email_address.valid?
100
67
  end
101
-
102
- def test_should_verify_if_unverified
103
- e = email_addresses(:bob)
104
- assert e.unverified?
105
- assert e.verify!
106
- assert e.verified?
68
+ end
69
+
70
+ class EmailAddressFromAddressTest < Test::Unit::TestCase
71
+ def setup
72
+ @email_address = EmailAddress.new(:address => 'John Smith <john.smith@gmail.com>')
107
73
  end
108
74
 
109
- def test_should_not_verify_if_verified
110
- e = email_addresses(:john)
111
- assert e.verified?
112
- assert !e.verify!
75
+ def test_should_be_valid
76
+ assert @email_address.valid?
113
77
  end
114
78
 
115
- def test_should_create_verification_code_on_create
116
- e = EmailAddress.new(:spec => 'test@me.com', :emailable => users(:bob))
117
- assert_nil e.verification_code
118
- assert e.save!
119
- assert_not_nil e.verification_code
120
- assert_equal 32, e.verification_code.length
79
+ def test_should_find_a_name
80
+ assert_equal 'John Smith', @email_address.name
121
81
  end
122
82
 
123
- def test_should_not_modify_verification_code_on_update
124
- e = email_addresses(:bob)
125
- original_verification_code = e.verification_code
126
- e.spec = 'test@me.com'
127
- assert e.save!
128
- assert_equal original_verification_code, e.verification_code
83
+ def test_should_find_a_spec
84
+ assert_equal 'john.smith@gmail.com', @email_address.spec
129
85
  end
130
-
131
- def test_should_create_code_expiry_on_create
132
- e = EmailAddress.new(:spec => 'test@me.com', :emailable => users(:bob))
133
- assert_nil e.code_expiry
134
- assert e.save!
135
- assert_not_nil e.code_expiry
86
+ end
87
+
88
+ class EmailAddressFromAddressWithoutNameTest < Test::Unit::TestCase
89
+ def setup
90
+ @email_address = EmailAddress.new(:address => 'john.smith@gmail.com')
136
91
  end
137
92
 
138
- def test_should_not_modify_code_expiry_on_update
139
- e = email_addresses(:bob)
140
- original_code_expiry = e.code_expiry
141
- e.spec = 'test@me.com'
142
- assert e.save!
143
- assert_equal original_code_expiry, e.code_expiry
93
+ def test_should_be_valid
94
+ assert @email_address.valid?
144
95
  end
145
96
 
146
- def test_should_not_automatically_parse_local_name_after_find
147
- assert_nil email_addresses(:bob).send(:instance_variable_get, '@local_name')
97
+ def test_should_not_find_a_name
98
+ assert @email_address.name.blank?
148
99
  end
149
100
 
150
- def test_should_not_automatically_parse_domain_after_find
151
- assert_nil email_addresses(:bob).send(:instance_variable_get, '@domain')
101
+ def test_should_find_a_spec
102
+ assert_equal 'john.smith@gmail.com', @email_address.spec
152
103
  end
153
-
154
- def test_should_parse_local_name_when_accessed
155
- assert_equal 'bob', email_addresses(:bob).local_name
104
+ end
105
+
106
+ class EmailAddressAfterBeingCreatedTest < Test::Unit::TestCase
107
+ def setup
108
+ @email_address = create_email_address(:name => 'John Smith', :spec => 'john.smith@gmail.com')
156
109
  end
157
110
 
158
- def test_should_parse_domain_when_accessed
159
- assert_equal 'bob.com', email_addresses(:bob).domain
111
+ def test_should_record_when_it_was_created
112
+ assert_not_nil @email_address.created_at
160
113
  end
161
114
 
162
- def test_should_reset_local_name_and_domain_when_new_spec_is_set
163
- e = email_addresses(:bob)
164
- assert_equal 'bob', e.local_name
165
- assert_equal 'bob.com', e.domain
166
-
167
- e.spec = 'test@me.com'
168
- assert_equal 'test', e.local_name
169
- assert_equal 'me.com', e.domain
115
+ def test_should_record_when_it_was_updated
116
+ assert_not_nil @email_address.updated_at
170
117
  end
171
118
 
172
- def test_name_should_be_blank_by_default
173
- assert_equal '', EmailAddress.new.name
119
+ def test_should_generate_an_address_with_the_name
120
+ assert_equal 'John Smith <john.smith@gmail.com>', @email_address.with_name
174
121
  end
175
-
176
- def test_should_set_name_from_attributes
177
- assert_equal 'bob', EmailAddress.new(:name => 'bob').name
122
+ end
123
+
124
+ class EmailAddressAsAClassTest < Test::Unit::TestCase
125
+ def test_should_be_able_to_split_address_containing_name
126
+ name, spec = EmailAddress.split_address('John Smith <john.smith@gmail.com>')
127
+ assert_equal 'John Smith', name
128
+ assert_equal 'john.smith@gmail.com', spec
178
129
  end
179
130
 
180
- def test_should_return_spec_for_with_name_when_name_is_blank
181
- e = email_addresses(:bob)
182
- assert_equal e.spec, e.with_name
131
+ def test_should_be_able_to_split_address_not_containing_name
132
+ name, spec = EmailAddress.split_address('john.smith@gmail.com')
133
+ assert_nil name
134
+ assert_equal 'john.smith@gmail.com', spec
183
135
  end
184
136
 
185
- def test_should_return_name_and_spec_for_with_name_when_name_is_not_blank
186
- e = email_addresses(:bob)
187
- e.instance_eval do
188
- def name
189
- 'Bob'
190
- end
191
- end
192
-
193
- assert_equal 'Bob <bob@bob.com>', e.with_name
137
+ def test_should_be_able_to_find_an_existing_email_by_address
138
+ email_address = create_email_address(:address => 'John Smith <john.smith@gmail.com>')
139
+ assert_equal email_address, EmailAddress.find_or_create_by_address('John Smith <john.smith@gmail.com>')
194
140
  end
195
141
 
196
- def test_should_use_spec_for_stringification
197
- e = email_addresses(:bob)
198
- assert_equal e.spec, e.to_s
142
+ def test_should_be_able_to_create_from_a_new_address
143
+ email_address = EmailAddress.find_or_create_by_address('John Smith <john.smith@gmail.com>')
144
+ assert !email_address.new_record?
145
+ assert_equal 'John Smith', email_address.name
146
+ assert_equal 'john.smith@gmail.com', email_address.spec
199
147
  end
200
148
  end
@@ -1,89 +1,29 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
2
 
3
- class EmailTest < Test::Unit::TestCase
4
- fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
5
-
6
- def test_should_be_valid
7
- assert_valid messages(:sent_from_bob)
8
- end
9
-
10
- def test_should_require_sender_spec
11
- assert_invalid messages(:sent_from_bob), :sender_spec, nil
12
- end
13
-
14
- def test_should_require_minimum_length_for_sender_spec
15
- assert_invalid messages(:sent_from_bob), :sender_spec, 'ab'
16
- assert_valid messages(:sent_from_bob), :sender_spec, 'a@a'
17
- end
18
-
19
- def test_should_require_maximum_length_for_sender_spec
20
- assert_invalid messages(:sent_from_bob), :sender_spec, 'a' * 300 + '@' + 'a' * 20
21
- assert_valid messages(:sent_from_bob), :sender_spec, 'a' * 300 + '@' + 'a' * 19
22
- end
23
-
24
- def test_should_require_specific_format_for_sender_spec
25
- assert_invalid messages(:sent_from_bob), :sender_spec, 'aaaaaaaaaa'
26
- assert_valid messages(:sent_from_bob), :sender_spec, 'aaa@aaa.com'
27
- end
28
-
29
- def test_to_should_create_email_recipient
30
- assert_instance_of EmailRecipient, messages(:sent_from_bob).to.build
31
- end
32
-
33
- def test_cc_should_create_email_recipient
34
- assert_instance_of EmailRecipient, messages(:sent_from_bob).cc.build
35
- end
36
-
37
- def test_bcc_should_create_email_recipient
38
- assert_instance_of EmailRecipient, messages(:sent_from_bob).bcc.build
39
- end
40
-
41
- def test_sender_should_be_spec_if_arbitrary_email_address_used
42
- assert_equal 'stranger@somewhere.com', messages(:unsent_from_stranger).sender
43
- end
44
-
45
- def test_sender_should_be_model_if_known_email_address_used
46
- assert_equal email_addresses(:bob), messages(:sent_from_bob).sender
47
- end
48
-
49
- def test_should_set_sender_spec_if_sender_is_arbitrary_email_address
50
- email = messages(:unsent_from_stranger)
51
- email.sender = 'stranger@somewhereelse.com'
52
- assert_equal 'stranger@somewhereelse.com', email.sender_spec
53
- assert_nil email.sender_id
54
- assert_nil email.sender_type
55
- end
56
-
57
- def test_should_set_sender_and_sender_spec_if_sender_is_known_email_address
58
- email = messages(:unsent_from_stranger)
59
- email.sender_spec = nil
60
- email.sender = email_addresses(:john)
61
- assert_equal 2, email.sender_id
62
- assert_equal 'EmailAddress', email.sender_type
63
- assert_equal 'john@john.com', email.sender_spec
64
- end
65
-
66
- def test_sender_email_address_should_convert_sender_spec_if_arbitrary_email_address_used
67
- email_address = messages(:unsent_from_stranger).sender_email_address
68
- assert_instance_of EmailAddress, email_address
69
- assert_equal 'stranger@somewhere.com', email_address.spec
70
- end
71
-
72
- def test_sender_email_address_should_use_sender_if_known_email_address_used
73
- email_address = messages(:sent_from_bob).sender_email_address
74
- assert_instance_of EmailAddress, email_address
75
- assert_equal 'bob@bob.com', email_address.spec
76
- end
77
-
78
- def test_reply_should_use_sender_spec_for_sender_if_arbitrary_email_address_used
79
- message = messages(:unsent_from_stranger)
80
- reply = message.reply
81
- assert_equal 'stranger@somewhere.com', reply.sender
82
- end
83
-
84
- def test_forward_should_use_sender_spec_for_sender_if_arbitrary_email_address_used
85
- message = messages(:unsent_from_stranger)
86
- forward = message.forward
87
- assert_equal 'stranger@somewhere.com', forward.sender
3
+ class EmailAfterBeingDeliveredTest < Test::Unit::TestCase
4
+ def setup
5
+ ActionMailer::Base.deliveries = []
6
+
7
+ @email = new_email(
8
+ :subject => 'Hello',
9
+ :body => 'How are you?',
10
+ :sender => create_email_address(:spec => 'webmaster@localhost'),
11
+ :to => create_email_address(:spec => 'partners@localhost'),
12
+ :cc => create_email_address(:spec => 'support@localhost'),
13
+ :bcc => create_email_address(:spec => 'feedback@localhost')
14
+ )
15
+ assert @email.deliver!
16
+ end
17
+
18
+ def test_should_send_mail
19
+ assert ActionMailer::Base.deliveries.any?
20
+
21
+ delivery = ActionMailer::Base.deliveries.first
22
+ assert_equal 'Hello', delivery.subject
23
+ assert_equal 'How are you?', delivery.body
24
+ assert_equal ['webmaster@localhost'], delivery.from
25
+ assert_equal ['partners@localhost'], delivery.to
26
+ assert_equal ['support@localhost'], delivery.cc
27
+ assert_equal ['feedback@localhost'], delivery.bcc
88
28
  end
89
29
  end
metadata CHANGED
@@ -1,113 +1,104 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: has_emails
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.0.1
7
- date: 2007-09-26 00:00:00 -04:00
8
- summary: Adds support for emailing capabilities between ActiveRecord models.
9
- require_paths:
10
- - lib
11
- email: info@pluginaweek.org
12
- homepage: http://www.pluginaweek.org
13
- rubyforge_project:
14
- description:
15
- autorequire: has_emails
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 0.1.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
- - Aaron Pfeifer, Neil Abraham
7
+ - Aaron Pfeifer
8
+ autorequire: has_emails
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-05-05 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: has_messages
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.1.0
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: validates_as_email_address
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.0.2
32
+ version:
33
+ description:
34
+ email: aaron@pluginaweek.org
35
+ executables: []
36
+
37
+ extensions: []
38
+
39
+ extra_rdoc_files: []
40
+
31
41
  files:
32
- - app/mailers
33
42
  - app/models
34
- - app/mailers/application_mailer.rb
35
- - app/models/email_recipient.rb
36
- - app/models/email_recipient_build_extension.rb
37
43
  - app/models/email_address.rb
38
44
  - app/models/email.rb
39
- - db/bootstrap
40
45
  - db/migrate
41
- - db/bootstrap/events.yml
42
- - db/bootstrap/states.yml
43
46
  - db/migrate/001_create_email_addresses.rb
44
- - db/migrate/003_add_email_recipient_specs.rb
45
- - db/migrate/002_add_email_specs.rb
46
47
  - lib/has_emails.rb
47
- - test/test_helper.rb
48
- - test/fixtures
48
+ - lib/has_emails
49
+ - lib/has_emails/extensions
50
+ - lib/has_emails/extensions/action_mailer.rb
51
+ - test/factory.rb
49
52
  - test/app_root
50
- - test/unit
51
- - test/fixtures/users.yml
52
- - test/fixtures/message_recipients.yml
53
- - test/fixtures/state_changes.yml
54
- - test/fixtures/messages.yml
55
- - test/fixtures/departments.yml
56
- - test/fixtures/email_addresses.yml
57
- - test/app_root/config
58
- - test/app_root/app
59
53
  - test/app_root/db
54
+ - test/app_root/db/migrate
55
+ - test/app_root/db/migrate/002_migrate_has_emails_to_version_1.rb
56
+ - test/app_root/db/migrate/001_migrate_has_messages_to_version_2.rb
57
+ - test/app_root/config
60
58
  - test/app_root/config/environment.rb
59
+ - test/app_root/app
61
60
  - test/app_root/app/models
62
- - test/app_root/app/models/user.rb
63
- - test/app_root/app/models/department.rb
64
- - test/app_root/db/migrate
65
- - test/app_root/db/migrate/002_create_departments.rb
66
- - test/app_root/db/migrate/001_create_users.rb
67
- - test/unit/email_test.rb
61
+ - test/app_root/app/models/empty
62
+ - test/functional
63
+ - test/functional/has_emails_test.rb
64
+ - test/test_helper.rb
65
+ - test/unit
68
66
  - test/unit/email_address_test.rb
69
- - test/unit/has_emails_test.rb
70
- - test/unit/email_recipient_test.rb
71
- - test/unit/recipient_extension_test.rb
72
- - test/unit/application_mailer_test.rb
67
+ - test/unit/action_mailer_test.rb
68
+ - test/unit/email_test.rb
73
69
  - CHANGELOG
74
70
  - init.rb
75
71
  - MIT-LICENSE
76
72
  - Rakefile
77
73
  - README
78
- test_files:
79
- - test/unit/email_test.rb
80
- - test/unit/email_address_test.rb
81
- - test/unit/has_emails_test.rb
82
- - test/unit/email_recipient_test.rb
83
- - test/unit/recipient_extension_test.rb
84
- - test/unit/application_mailer_test.rb
74
+ has_rdoc: true
75
+ homepage: http://www.pluginaweek.org
76
+ post_install_message:
85
77
  rdoc_options: []
86
78
 
87
- extra_rdoc_files: []
88
-
89
- executables: []
90
-
91
- extensions: []
92
-
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: "0"
86
+ version:
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: "0"
92
+ version:
93
93
  requirements: []
94
94
 
95
- dependencies:
96
- - !ruby/object:Gem::Dependency
97
- name: has_messages
98
- version_requirement:
99
- version_requirements: !ruby/object:Gem::Version::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 0.0.1
104
- version:
105
- - !ruby/object:Gem::Dependency
106
- name: validates_as_email_address
107
- version_requirement:
108
- version_requirements: !ruby/object:Gem::Version::Requirement
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: 0.0.1
113
- version:
95
+ rubyforge_project:
96
+ rubygems_version: 1.1.0
97
+ signing_key:
98
+ specification_version: 2
99
+ summary: Demonstrates a reference implementation for sending emails with logging and asynchronous support.
100
+ test_files:
101
+ - test/functional/has_emails_test.rb
102
+ - test/unit/email_address_test.rb
103
+ - test/unit/action_mailer_test.rb
104
+ - test/unit/email_test.rb