validate_email 0.1.5 → 0.1.6
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/README.markdown +11 -3
- data/lib/locale/en.yml +4 -0
- data/lib/validate_email.rb +3 -2
- metadata +100 -120
- data/spec/resources/user.rb +0 -7
- data/spec/resources/user_with_ar.rb +0 -5
- data/spec/resources/user_with_ar_legacy.rb +0 -5
- data/spec/resources/user_with_blank.rb +0 -7
- data/spec/resources/user_with_legacy.rb +0 -7
- data/spec/resources/user_with_nil.rb +0 -7
- data/spec/spec_helper.rb +0 -24
- data/spec/validate_email_spec.rb +0 -150
data/README.markdown
CHANGED
@@ -39,8 +39,17 @@ The gem only supports Rails 3 (has dependencies in ActiveModel and ActiveSupport
|
|
39
39
|
|
40
40
|
#### I18n
|
41
41
|
|
42
|
-
The
|
43
|
-
|
42
|
+
The error message will be looked up according to the standard ActiveModel::Errors scheme.
|
43
|
+
For the above Unicorn class this would be:
|
44
|
+
|
45
|
+
* activemodel.errors.models.unicorn.attributes.email_address.email
|
46
|
+
* activemodel.errors.models.unicorn.email
|
47
|
+
* activemodel.errors.messages.email
|
48
|
+
* errors.attributes.email_address.email
|
49
|
+
* errors.messages.email
|
50
|
+
|
51
|
+
A default errors.messages.email of `is not a valid email address` is provided.
|
52
|
+
You can also pass the `:message => "my custom error"` option to your validation to define your own custom message.
|
44
53
|
|
45
54
|
## Authors
|
46
55
|
|
@@ -49,4 +58,3 @@ You can pass the `:message => "my custom error"` option to your validation to de
|
|
49
58
|
|
50
59
|
## License
|
51
60
|
Copyright 2010 by PerfectLine LLC (<http://www.perfectline.co.uk>) and is released under the MIT license.
|
52
|
-
|
data/lib/locale/en.yml
ADDED
data/lib/validate_email.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'active_support/i18n'
|
2
|
+
I18n.load_path << File.dirname(__FILE__) + '/locale/en.yml'
|
1
3
|
require 'active_model'
|
2
4
|
require 'mail'
|
3
5
|
|
@@ -6,12 +8,11 @@ module ActiveModel
|
|
6
8
|
class EmailValidator < ActiveModel::EachValidator
|
7
9
|
|
8
10
|
def initialize(options)
|
9
|
-
options.reverse_merge!(:message =>
|
11
|
+
options.reverse_merge!(:message => :email)
|
10
12
|
super(options)
|
11
13
|
end
|
12
14
|
|
13
15
|
def validate_each(record, attribute, value)
|
14
|
-
return if options[:allow_nil] && value.nil?
|
15
16
|
|
16
17
|
begin
|
17
18
|
mail = Mail::Address.new(value)
|
metadata
CHANGED
@@ -1,169 +1,149 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: validate_email
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 1
|
8
|
-
- 5
|
9
|
-
version: 0.1.5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.6
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Tanel Suurhans
|
13
9
|
- Tarmo Lehtpuu
|
14
10
|
autorequire:
|
15
11
|
bindir: bin
|
16
12
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2012-07-12 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
22
16
|
name: rspec
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
25
18
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
- 0
|
31
|
-
version: "0"
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
32
23
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: diff-lcs
|
36
24
|
prerelease: false
|
37
|
-
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
26
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: diff-lcs
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
46
38
|
version: 1.1.2
|
47
39
|
type: :development
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: active_record
|
51
40
|
prerelease: false
|
52
|
-
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
42
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.1.2
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: active_record
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
61
54
|
version: 3.0.0
|
62
55
|
type: :development
|
63
|
-
version_requirements: *id003
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: sqlite3-ruby
|
66
56
|
prerelease: false
|
67
|
-
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 3.0.0
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: sqlite3-ruby
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
68
66
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
- 0
|
74
|
-
version: "0"
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
75
71
|
type: :development
|
76
|
-
version_requirements: *id004
|
77
|
-
- !ruby/object:Gem::Dependency
|
78
|
-
name: mail
|
79
72
|
prerelease: false
|
80
|
-
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
74
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: mail
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
89
86
|
version: 2.2.5
|
90
87
|
type: :runtime
|
91
|
-
version_requirements: *id005
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
|
-
name: activemodel
|
94
88
|
prerelease: false
|
95
|
-
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
96
90
|
none: false
|
97
|
-
requirements:
|
98
|
-
- -
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 2.2.5
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: activemodel
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '3.0'
|
104
103
|
type: :runtime
|
105
|
-
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.0'
|
106
111
|
description: Library for validating email addresses in Rails 3 models.
|
107
|
-
email:
|
112
|
+
email:
|
108
113
|
- tanel.suurhans@perfectline.ee
|
109
114
|
- tarmo.lehtpuu@perfectline.ee
|
110
115
|
executables: []
|
111
|
-
|
112
116
|
extensions: []
|
113
|
-
|
114
|
-
extra_rdoc_files:
|
117
|
+
extra_rdoc_files:
|
115
118
|
- README.markdown
|
116
|
-
files:
|
119
|
+
files:
|
117
120
|
- README.markdown
|
118
121
|
- init.rb
|
119
122
|
- install.rb
|
123
|
+
- lib/locale/en.yml
|
120
124
|
- lib/validate_email.rb
|
121
|
-
- spec/resources/user.rb
|
122
|
-
- spec/resources/user_with_ar.rb
|
123
|
-
- spec/resources/user_with_ar_legacy.rb
|
124
|
-
- spec/resources/user_with_blank.rb
|
125
|
-
- spec/resources/user_with_legacy.rb
|
126
|
-
- spec/resources/user_with_nil.rb
|
127
|
-
- spec/spec_helper.rb
|
128
|
-
- spec/validate_email_spec.rb
|
129
|
-
has_rdoc: true
|
130
125
|
homepage: http://github.com/perfectline/validates_email/tree/master
|
131
126
|
licenses: []
|
132
|
-
|
133
127
|
post_install_message:
|
134
|
-
rdoc_options:
|
135
|
-
|
136
|
-
require_paths:
|
128
|
+
rdoc_options: []
|
129
|
+
require_paths:
|
137
130
|
- lib
|
138
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
132
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
|
144
|
-
|
145
|
-
version: "0"
|
146
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
138
|
none: false
|
148
|
-
requirements:
|
149
|
-
- -
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
|
152
|
-
- 0
|
153
|
-
version: "0"
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
154
143
|
requirements: []
|
155
|
-
|
156
144
|
rubyforge_project:
|
157
|
-
rubygems_version: 1.
|
145
|
+
rubygems_version: 1.8.24
|
158
146
|
signing_key:
|
159
147
|
specification_version: 3
|
160
148
|
summary: Library for validating email addresses in Rails 3 models.
|
161
|
-
test_files:
|
162
|
-
- spec/resources/user.rb
|
163
|
-
- spec/resources/user_with_ar.rb
|
164
|
-
- spec/resources/user_with_ar_legacy.rb
|
165
|
-
- spec/resources/user_with_blank.rb
|
166
|
-
- spec/resources/user_with_legacy.rb
|
167
|
-
- spec/resources/user_with_nil.rb
|
168
|
-
- spec/spec_helper.rb
|
169
|
-
- spec/validate_email_spec.rb
|
149
|
+
test_files: []
|
data/spec/resources/user.rb
DELETED
data/spec/spec_helper.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
|
2
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/resources')
|
3
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
4
|
-
|
5
|
-
require 'rspec'
|
6
|
-
require 'sqlite3'
|
7
|
-
require 'active_record'
|
8
|
-
require 'active_record/base'
|
9
|
-
require 'active_record/migration'
|
10
|
-
|
11
|
-
ActiveRecord::Migration.verbose = false
|
12
|
-
ActiveRecord::Base.establish_connection(
|
13
|
-
"adapter" => "sqlite3",
|
14
|
-
"database" => ":memory:"
|
15
|
-
)
|
16
|
-
|
17
|
-
require File.join(File.dirname(__FILE__), '..', 'init')
|
18
|
-
|
19
|
-
autoload :User, 'resources/user'
|
20
|
-
autoload :UserWithNil, 'resources/user_with_nil'
|
21
|
-
autoload :UserWithBlank, 'resources/user_with_blank'
|
22
|
-
autoload :UserWithLegacy, 'resources/user_with_legacy'
|
23
|
-
autoload :UserWithAr, 'resources/user_with_ar'
|
24
|
-
autoload :UserWithArLegacy, 'resources/user_with_ar_legacy'
|
data/spec/validate_email_spec.rb
DELETED
@@ -1,150 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Email validation" do
|
4
|
-
|
5
|
-
before(:all) do
|
6
|
-
ActiveRecord::Schema.define(:version => 1) do
|
7
|
-
|
8
|
-
create_table :users, :force => true do |t|
|
9
|
-
t.column :email_address, :string
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
after(:all) do
|
16
|
-
ActiveRecord::Base.connection.drop_table(:users)
|
17
|
-
end
|
18
|
-
|
19
|
-
context "with regular validator" do
|
20
|
-
before do
|
21
|
-
@user = User.new
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should not allow nil as email" do
|
25
|
-
@user.email_address = nil
|
26
|
-
@user.should_not be_valid
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should not allow blank as email" do
|
30
|
-
@user.email_address = ""
|
31
|
-
@user.should_not be_valid
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should not allow an email without domain extension" do
|
35
|
-
@user.email_address = "user@example"
|
36
|
-
@user.should_not be_valid
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should not allow an email without @" do
|
40
|
-
@user.email_address = "user"
|
41
|
-
@user.should_not be_valid
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should not allow an email without prefix" do
|
45
|
-
@user.email_address = "@example.com"
|
46
|
-
@user.should_not be_valid
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should not allow an email without domain" do
|
50
|
-
@user.email_address = "user@.com"
|
51
|
-
@user.should_not be_valid
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should accept a valid email address" do
|
55
|
-
@user.email_address = "user@example.com"
|
56
|
-
@user.should be_valid
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context "with allow nil" do
|
61
|
-
before do
|
62
|
-
@user = UserWithNil.new
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should allow nil as email" do
|
66
|
-
@user.email_address = nil
|
67
|
-
@user.should be_valid
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should not allow blank as email" do
|
71
|
-
@user.email_address = ""
|
72
|
-
@user.should_not be_valid
|
73
|
-
end
|
74
|
-
|
75
|
-
it "shoild allow a valid email address" do
|
76
|
-
@user.email_address = "user@example.com"
|
77
|
-
@user.should be_valid
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
context "with allow blank" do
|
82
|
-
before do
|
83
|
-
@user = UserWithBlank.new
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should allow nil as email" do
|
87
|
-
@user.email_address = nil
|
88
|
-
@user.should be_valid
|
89
|
-
end
|
90
|
-
|
91
|
-
it "should allow blank as email" do
|
92
|
-
@user.email_address = ""
|
93
|
-
@user.should be_valid
|
94
|
-
end
|
95
|
-
|
96
|
-
it "should allow a valid email address" do
|
97
|
-
@user.email_address = "user@example.com"
|
98
|
-
@user.should be_valid
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
context "with legacy syntax" do
|
103
|
-
before do
|
104
|
-
@user = UserWithLegacy.new
|
105
|
-
end
|
106
|
-
|
107
|
-
it "should allow nil as email" do
|
108
|
-
@user.email_address = nil
|
109
|
-
@user.should be_valid
|
110
|
-
end
|
111
|
-
|
112
|
-
it "should allow blank as email" do
|
113
|
-
@user.email_address = ""
|
114
|
-
@user.should be_valid
|
115
|
-
end
|
116
|
-
|
117
|
-
it "should allow a valid email address" do
|
118
|
-
@user.email_address = "user@example.com"
|
119
|
-
@user.should be_valid
|
120
|
-
end
|
121
|
-
|
122
|
-
it "should not allow invalid email" do
|
123
|
-
@user.email_address = "random"
|
124
|
-
@user.should_not be_valid
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
context "with ActiveRecord" do
|
129
|
-
before do
|
130
|
-
@user = UserWithAr.new
|
131
|
-
end
|
132
|
-
|
133
|
-
it "should not allow invalid email" do
|
134
|
-
@user.email_address = ""
|
135
|
-
@user.should_not be_valid
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
context "with ActiveRecord and legacy syntax" do
|
140
|
-
before do
|
141
|
-
@user = UserWithArLegacy.new
|
142
|
-
end
|
143
|
-
|
144
|
-
it "should not allow invalid email" do
|
145
|
-
@user.email_address = ""
|
146
|
-
@user.should_not be_valid
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
end
|