has_emails 0.0.1

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.
@@ -0,0 +1,200 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
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
22
+ end
23
+
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
41
+ end
42
+
43
+ def test_should_raise_exception_if_converting_unknown_class_to_email_address
44
+ assert_raise(ArgumentError) {EmailAddress.convert_from(1)}
45
+ 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
75
+ end
76
+
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'
80
+ end
81
+
82
+ def test_should_have_polymorphic_emailable_association
83
+ assert_equal users(:bob), email_addresses(:bob).emailable
84
+ end
85
+
86
+ def test_should_have_unsent_emails_association
87
+ assert_equal [messages(:unsent_from_bob)], email_addresses(:bob).unsent_emails
88
+ end
89
+
90
+ def test_should_have_sent_emails_association
91
+ assert_equal [messages(:sent_from_bob), messages(:queued_from_bob)], email_addresses(:bob).sent_emails
92
+ end
93
+
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)
96
+ end
97
+
98
+ def test_initial_state_should_be_unverified
99
+ assert_equal :unverified, EmailAddress.new.state.to_sym
100
+ 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?
107
+ end
108
+
109
+ def test_should_not_verify_if_verified
110
+ e = email_addresses(:john)
111
+ assert e.verified?
112
+ assert !e.verify!
113
+ end
114
+
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
121
+ end
122
+
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
129
+ 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
136
+ end
137
+
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
144
+ end
145
+
146
+ def test_should_not_automatically_parse_local_name_after_find
147
+ assert_nil email_addresses(:bob).send(:instance_variable_get, '@local_name')
148
+ end
149
+
150
+ def test_should_not_automatically_parse_domain_after_find
151
+ assert_nil email_addresses(:bob).send(:instance_variable_get, '@domain')
152
+ end
153
+
154
+ def test_should_parse_local_name_when_accessed
155
+ assert_equal 'bob', email_addresses(:bob).local_name
156
+ end
157
+
158
+ def test_should_parse_domain_when_accessed
159
+ assert_equal 'bob.com', email_addresses(:bob).domain
160
+ end
161
+
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
170
+ end
171
+
172
+ def test_name_should_be_blank_by_default
173
+ assert_equal '', EmailAddress.new.name
174
+ end
175
+
176
+ def test_should_set_name_from_attributes
177
+ assert_equal 'bob', EmailAddress.new(:name => 'bob').name
178
+ end
179
+
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
183
+ end
184
+
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
194
+ end
195
+
196
+ def test_should_use_spec_for_stringification
197
+ e = email_addresses(:bob)
198
+ assert_equal e.spec, e.to_s
199
+ end
200
+ end
@@ -0,0 +1,79 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class EmailRecipientTest < Test::Unit::TestCase
4
+ fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
5
+
6
+ def test_recipient_with_email_address_should_be_valid
7
+ assert_valid message_recipients(:bob_to_john)
8
+ end
9
+
10
+ def test_recipient_with_receiver_spec_should_be_valid
11
+ assert_valid message_recipients(:bob_to_random)
12
+ end
13
+
14
+ def test_recipient_with_email_address_attribute_should_be_valid
15
+ assert_valid message_recipients(:bob_to_marketing)
16
+ end
17
+
18
+ def test_should_require_receiver_spec
19
+ assert_invalid message_recipients(:bob_to_random), :receiver_spec, nil
20
+ end
21
+
22
+ def test_should_require_minimum_length_for_receiver_spec
23
+ assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'ab'
24
+ assert_valid message_recipients(:bob_to_random), :receiver_spec, 'a@a'
25
+ end
26
+
27
+ def test_should_require_maximum_length_for_receiver_spec
28
+ assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'a' * 300 + '@' + 'a' * 20
29
+ assert_valid message_recipients(:bob_to_random), :receiver_spec, 'a' * 300 + '@' + 'a' * 19
30
+ end
31
+
32
+ def test_should_require_specific_format_for_receiver_spec
33
+ assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'aaaaaaaaaa'
34
+ assert_valid message_recipients(:bob_to_random), :receiver_spec, 'aaa@aaa.com'
35
+ end
36
+
37
+ def test_email_getter_should_be_same_as_message_getter
38
+ r = message_recipients(:bob_to_john)
39
+ assert_equal r.email, r.message
40
+ end
41
+
42
+ def test_email_setter_should_be_same_as_message_setter
43
+ r = message_recipients(:bob_to_john)
44
+ r.email = messages(:sent_from_mary)
45
+ assert_equal r.email, r.message
46
+ end
47
+
48
+ def test_email_id_getter_should_be_same_as_message_id_getter
49
+ r = message_recipients(:bob_to_john)
50
+ assert_equal r.email_id, r.message_id
51
+ end
52
+
53
+ def test_email_id_setter_should_be_same_as_message_id_setter
54
+ r = message_recipients(:bob_to_john)
55
+ r.email_id = messages(:sent_from_mary).id
56
+ assert_equal r.email_id, r.message_id
57
+ end
58
+
59
+ def test_receiver_should_be_receiver_spec_if_string_recipient
60
+ assert_equal 'random@random.com', message_recipients(:bob_to_random).receiver
61
+ end
62
+
63
+ def test_receiver_should_be_model_if_not_string_recipient
64
+ assert_equal email_addresses(:john), message_recipients(:bob_to_john).receiver
65
+ end
66
+
67
+ def test_should_set_receiver_spec_if_receiver_is_string
68
+ r = EmailRecipient.new
69
+ r.receiver = 'test@me.com'
70
+ assert_equal 'test@me.com', r.receiver_spec
71
+ end
72
+
73
+ def test_should_set_receiver_and_receiver_spec_if_receiver_is_not_string
74
+ r = EmailRecipient.new
75
+ r.receiver = email_addresses(:john)
76
+ assert_equal 'john@john.com', r.receiver_spec
77
+ assert_equal email_addresses(:john), r.receiver
78
+ end
79
+ end
@@ -0,0 +1,89 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
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
88
+ end
89
+ end
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class HasEmailsTest < Test::Unit::TestCase
4
+ fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
5
+
6
+ def test_should_generate_received_association
7
+ assert_equal [messages(:sent_from_bob), messages(:sent_from_mary)], users(:john).received_emails.map(&:email)
8
+ end
9
+
10
+ def test_should_generate_unsent_association
11
+ assert_equal [messages(:unsent_from_bob)], users(:bob).unsent_emails
12
+ end
13
+
14
+ def test_should_generate_sent_association
15
+ assert_equal [messages(:sent_from_bob), messages(:queued_from_bob)], users(:bob).sent_emails
16
+ end
17
+
18
+ def test_should_generate_inbox
19
+ assert_instance_of MessageBox, users(:bob).email_box
20
+ end
21
+
22
+ def test_inbox_should_contain_received_messages
23
+ u = users(:bob)
24
+ assert_equal u.received_emails, u.email_box.inbox
25
+ end
26
+
27
+ def test_inbox_should_contain_unsent_messages
28
+ u = users(:bob)
29
+ assert_equal u.unsent_emails, u.email_box.unsent
30
+ end
31
+
32
+ def test_inbox_should_contain_sent_messages
33
+ u = users(:bob)
34
+ assert_equal u.sent_emails, u.email_box.sent
35
+ end
36
+ end
@@ -0,0 +1,99 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class RecipientExtensionTest < Test::Unit::TestCase
4
+ fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
5
+
6
+ def setup
7
+ @email = messages(:unsent_from_bob)
8
+ end
9
+
10
+ def test_should_input_string
11
+ @email.to << 'test@me.com'
12
+ assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
13
+ end
14
+
15
+ def test_should_input_receiver
16
+ @email.to << email_addresses(:bob)
17
+ assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
18
+ end
19
+
20
+ def test_should_input_message_recipients
21
+ @email.to << EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to')
22
+ assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
23
+ end
24
+
25
+ def test_should_push_string
26
+ @email.to.push('test@me.com')
27
+ assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
28
+ end
29
+
30
+ def test_should_push_receiver
31
+ @email.to.push(email_addresses(:bob))
32
+ assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
33
+ end
34
+
35
+ def test_should_push_message_recipients
36
+ @email.to.push(EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to'))
37
+ assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
38
+ end
39
+
40
+ def test_should_concat_string
41
+ @email.to.concat(['test@me.com'])
42
+ assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
43
+ end
44
+
45
+ def test_should_concat_receiver
46
+ @email.to.concat([email_addresses(:bob)])
47
+ assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
48
+ end
49
+
50
+ def test_should_concat_message_recipients
51
+ @email.to.concat([EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to')])
52
+ assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
53
+ end
54
+
55
+ def test_should_delete_string
56
+ @email.to.delete('john@john.com')
57
+ assert_equal [], @email.to_receivers
58
+ end
59
+
60
+ def test_should_delete_receiver
61
+ @email.to.delete(email_addresses(:john))
62
+ assert_equal [], @email.to_receivers
63
+ end
64
+
65
+ def test_should_delete_message_recipients
66
+ @email.to.delete(@email.to.first)
67
+ assert_equal [], @email.to
68
+ end
69
+
70
+ def test_should_replace_string
71
+ @email.to.replace(['bob@bob.com'])
72
+ assert_equal ['bob@bob.com'], @email.to.map(&:email_address).map(&:to_s)
73
+ end
74
+
75
+ def test_should_replace_receiver
76
+ @email.to.replace([email_addresses(:bob)])
77
+ assert_equal [email_addresses(:bob)], @email.to_receivers
78
+ end
79
+
80
+ def test_should_replace_message_recipients
81
+ @email.to.replace([])
82
+ assert_equal [], @email.to_receivers
83
+ end
84
+
85
+ def test_should_set_kind_for_to_recipients
86
+ @email.to << users(:bob)
87
+ assert_equal 'to', @email.to.last.kind
88
+ end
89
+
90
+ def test_should_set_kind_for_cc_recipients
91
+ @email.cc << users(:bob)
92
+ assert_equal 'cc', @email.cc.last.kind
93
+ end
94
+
95
+ def test_should_set_kind_for_bcc_recipients
96
+ @email.bcc << users(:bob)
97
+ assert_equal 'bcc', @email.bcc.last.kind
98
+ end
99
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
4
+ name: has_emails
5
+ 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:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Aaron Pfeifer, Neil Abraham
31
+ files:
32
+ - app/mailers
33
+ - app/models
34
+ - app/mailers/application_mailer.rb
35
+ - app/models/email_recipient.rb
36
+ - app/models/email_recipient_build_extension.rb
37
+ - app/models/email_address.rb
38
+ - app/models/email.rb
39
+ - db/bootstrap
40
+ - db/migrate
41
+ - db/bootstrap/events.yml
42
+ - db/bootstrap/states.yml
43
+ - 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
+ - lib/has_emails.rb
47
+ - test/test_helper.rb
48
+ - test/fixtures
49
+ - 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
+ - test/app_root/db
60
+ - test/app_root/config/environment.rb
61
+ - 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
68
+ - 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
73
+ - CHANGELOG
74
+ - init.rb
75
+ - MIT-LICENSE
76
+ - Rakefile
77
+ - 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
85
+ rdoc_options: []
86
+
87
+ extra_rdoc_files: []
88
+
89
+ executables: []
90
+
91
+ extensions: []
92
+
93
+ requirements: []
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: