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.
- data/CHANGELOG +8 -0
- data/README +32 -71
- data/Rakefile +8 -8
- data/app/models/email.rb +7 -79
- data/app/models/email_address.rb +32 -110
- data/db/migrate/001_create_email_addresses.rb +4 -13
- data/lib/has_emails/extensions/action_mailer.rb +106 -0
- data/lib/has_emails.rb +50 -77
- data/test/app_root/app/models/empty +0 -0
- data/test/app_root/config/environment.rb +4 -27
- data/test/app_root/db/migrate/001_migrate_has_messages_to_version_2.rb +9 -0
- data/test/app_root/db/migrate/002_migrate_has_emails_to_version_1.rb +9 -0
- data/test/factory.rb +48 -0
- data/test/functional/has_emails_test.rb +139 -0
- data/test/test_helper.rb +5 -68
- data/test/unit/action_mailer_test.rb +57 -0
- data/test/unit/email_address_test.rb +100 -152
- data/test/unit/email_test.rb +26 -86
- metadata +78 -87
- data/app/mailers/application_mailer.rb +0 -85
- data/app/models/email_recipient.rb +0 -78
- data/app/models/email_recipient_build_extension.rb +0 -7
- data/db/bootstrap/events.yml +0 -4
- data/db/bootstrap/states.yml +0 -9
- data/db/migrate/002_add_email_specs.rb +0 -18
- data/db/migrate/003_add_email_recipient_specs.rb +0 -18
- data/test/app_root/app/models/department.rb +0 -2
- data/test/app_root/app/models/user.rb +0 -3
- data/test/app_root/db/migrate/001_create_users.rb +0 -11
- data/test/app_root/db/migrate/002_create_departments.rb +0 -12
- data/test/fixtures/departments.yml +0 -9
- data/test/fixtures/email_addresses.yml +0 -32
- data/test/fixtures/message_recipients.yml +0 -85
- data/test/fixtures/messages.yml +0 -52
- data/test/fixtures/state_changes.yml +0 -128
- data/test/fixtures/users.yml +0 -11
- data/test/unit/application_mailer_test.rb +0 -69
- data/test/unit/email_recipient_test.rb +0 -79
- data/test/unit/has_emails_test.rb +0 -36
- 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
|
4
|
-
|
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
|
25
|
-
|
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
|
44
|
-
|
12
|
+
def test_should_not_have_a_spec
|
13
|
+
assert @email_address.name.blank?
|
45
14
|
end
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
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
|
78
|
-
|
79
|
-
|
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
|
83
|
-
|
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
|
87
|
-
|
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
|
91
|
-
|
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
|
95
|
-
|
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
|
99
|
-
|
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
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
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
|
110
|
-
|
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
|
116
|
-
|
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
|
124
|
-
|
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
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
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
|
139
|
-
|
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
|
147
|
-
|
97
|
+
def test_should_not_find_a_name
|
98
|
+
assert @email_address.name.blank?
|
148
99
|
end
|
149
100
|
|
150
|
-
def
|
151
|
-
|
101
|
+
def test_should_find_a_spec
|
102
|
+
assert_equal 'john.smith@gmail.com', @email_address.spec
|
152
103
|
end
|
153
|
-
|
154
|
-
|
155
|
-
|
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
|
159
|
-
|
111
|
+
def test_should_record_when_it_was_created
|
112
|
+
assert_not_nil @email_address.created_at
|
160
113
|
end
|
161
114
|
|
162
|
-
def
|
163
|
-
|
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
|
173
|
-
assert_equal '',
|
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
|
-
|
177
|
-
|
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
|
181
|
-
|
182
|
-
|
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
|
186
|
-
|
187
|
-
|
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
|
197
|
-
|
198
|
-
|
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
|
data/test/unit/email_test.rb
CHANGED
@@ -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
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
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
|
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
|
-
-
|
48
|
-
-
|
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/
|
63
|
-
- test/
|
64
|
-
- test/
|
65
|
-
- test/
|
66
|
-
- test/
|
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/
|
70
|
-
- test/unit/
|
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
|
-
|
79
|
-
|
80
|
-
|
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
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
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
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
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
|