email_validator 1.3.0 → 1.4.0
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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +4 -1
- data/Gemfile +1 -1
- data/README.md +46 -0
- data/email_validator.gemspec +7 -6
- data/lib/email_validator.rb +1 -1
- data/spec/email_validator_spec.rb +3 -2
- metadata +32 -27
- data/Gemfile.lock +0 -36
- data/README.rdoc +0 -31
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4d15cdeca6720498d1bdd8dc2d3a07db1cafb8c5
|
4
|
+
data.tar.gz: bf391b40bf7e65cbd21c73e438fb30cf8d8ecac7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f6da0bd3866fb08aa5083853d8f67c392d328fa7590d641dc970025e6b5ece0d56b07be73e9edb8c9cd7d12af9c130f319e8553ffe59e46cb8c61563167cf058
|
7
|
+
data.tar.gz: 295f35413dcb7b7eaef6ce56856ca8aa9651bad8c6cf65c6b3196de049630385e6cc5efdb4b49a170d203e96ad4605e4164556898e23768cf0dc6a84910b9524
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
[](http://travis-ci.org/balexand/email_validator)
|
2
|
+
|
3
|
+
## Usage
|
4
|
+
|
5
|
+
Add to your Gemfile:
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
gem 'email_validator'
|
9
|
+
```
|
10
|
+
|
11
|
+
Run:
|
12
|
+
|
13
|
+
```
|
14
|
+
bundle install
|
15
|
+
```
|
16
|
+
|
17
|
+
Then add the following to your model:
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
validates :my_email_attribute, :email => true
|
21
|
+
```
|
22
|
+
|
23
|
+
## Strict mode
|
24
|
+
|
25
|
+
In order to have stricter validation (according to http://www.remote.org/jochen/mail/info/chars.html) enable strict mode. You can do this globally by adding the following to your Gemfile:
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
gem 'email_validator', :require => 'email_validator/strict'
|
29
|
+
```
|
30
|
+
|
31
|
+
Or you can do this in a specific `validates` call:
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
validates :my_email_attribute, :email => {:strict_mode => true}
|
35
|
+
```
|
36
|
+
|
37
|
+
## Thread safety
|
38
|
+
|
39
|
+
This gem is thread safe, with one caveat: `EmailValidator.default_options` must be configured before use in a multi-threaded environment. If you configure `default_options` in a Rails initializer file, then you're good to go since initializers are run before worker threads are spawned.
|
40
|
+
|
41
|
+
## Credit
|
42
|
+
|
43
|
+
Based on http://thelucid.com/2010/01/08/sexy-validation-in-edge-rails-rails-3
|
44
|
+
|
45
|
+
Regular Expression based on http://fightingforalostcause.net/misc/2006/compare-email-regex.php tests.
|
46
|
+
|
data/email_validator.gemspec
CHANGED
@@ -1,20 +1,21 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{email_validator}
|
3
|
-
s.version = "1.
|
3
|
+
s.version = "1.4.0"
|
4
4
|
s.authors = ["Brian Alexander"]
|
5
|
-
s.
|
6
|
-
s.description = %q{An email validator for Rails 3. See homepage for details: http://github.com/balexand/email_validator}
|
5
|
+
s.description = %q{An email validator for Rails 3+. See homepage for details: http://github.com/balexand/email_validator}
|
7
6
|
s.email = %q{balexand@gmail.com}
|
8
7
|
s.extra_rdoc_files = [
|
9
8
|
"LICENSE",
|
10
|
-
"README.rdoc"
|
11
9
|
]
|
12
10
|
s.files = `git ls-files`.split("\n")
|
13
11
|
s.test_files = `git ls-files -- {spec}/*`.split("\n")
|
14
|
-
|
12
|
+
|
13
|
+
s.homepage = %q{https://github.com/balexand/email_validator}
|
15
14
|
s.require_paths = %w(lib)
|
16
|
-
s.summary = %q{An email validator for Rails 3
|
15
|
+
s.summary = %q{An email validator for Rails 3+.}
|
16
|
+
|
17
17
|
s.add_dependency("activemodel", ">= 0")
|
18
|
+
|
18
19
|
s.add_development_dependency("rake")
|
19
20
|
s.add_development_dependency("rspec", ">= 0")
|
20
21
|
end
|
data/lib/email_validator.rb
CHANGED
@@ -9,7 +9,7 @@ class EmailValidator < ActiveModel::EachValidator
|
|
9
9
|
def validate_each(record, attribute, value)
|
10
10
|
options = @@default_options.merge(self.options)
|
11
11
|
name_validation = options[:strict_mode] ? "-a-z0-9+._" : "^@\\s"
|
12
|
-
unless value =~
|
12
|
+
unless value =~ /\A\s*([#{name_validation}]{1,64})@((?:[-a-z0-9]+\.)+[a-z]{2,})\s*\z/i
|
13
13
|
record.errors.add(attribute, options[:message] || :invalid)
|
14
14
|
end
|
15
15
|
end
|
@@ -84,7 +84,8 @@ describe EmailValidator do
|
|
84
84
|
"invalid-ip@127.0.0.1.26",
|
85
85
|
"another-invalid-ip@127.0.0.256",
|
86
86
|
"IP-and-port@127.0.0.1:25",
|
87
|
-
"the-local-part-is-invalid-if-it-is-longer-than-sixty-four-characters@sld.net"
|
87
|
+
"the-local-part-is-invalid-if-it-is-longer-than-sixty-four-characters@sld.net",
|
88
|
+
"user@example.com\n<script>alert('hello')</script>"
|
88
89
|
].each do |email|
|
89
90
|
|
90
91
|
it "#{email.inspect} should not be valid" do
|
@@ -163,4 +164,4 @@ describe EmailValidator do
|
|
163
164
|
end
|
164
165
|
end
|
165
166
|
end
|
166
|
-
end
|
167
|
+
end
|
metadata
CHANGED
@@ -1,92 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: email_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.4.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brian Alexander
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-03-29 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activemodel
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rake
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: rspec
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - '>='
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
47
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: 'An email validator for Rails 3+. See homepage for details: http://github.com/balexand/email_validator'
|
48
56
|
email: balexand@gmail.com
|
49
57
|
executables: []
|
50
58
|
extensions: []
|
51
59
|
extra_rdoc_files:
|
52
60
|
- LICENSE
|
53
|
-
- README.rdoc
|
54
61
|
files:
|
55
62
|
- .document
|
56
63
|
- .gitignore
|
57
64
|
- .travis.yml
|
58
65
|
- Gemfile
|
59
|
-
- Gemfile.lock
|
60
66
|
- LICENSE
|
61
|
-
- README.
|
67
|
+
- README.md
|
62
68
|
- Rakefile
|
63
69
|
- email_validator.gemspec
|
64
70
|
- lib/email_validator.rb
|
65
71
|
- lib/email_validator/strict.rb
|
66
72
|
- spec/email_validator_spec.rb
|
67
73
|
- spec/spec_helper.rb
|
68
|
-
homepage:
|
74
|
+
homepage: https://github.com/balexand/email_validator
|
69
75
|
licenses: []
|
76
|
+
metadata: {}
|
70
77
|
post_install_message:
|
71
78
|
rdoc_options: []
|
72
79
|
require_paths:
|
73
80
|
- lib
|
74
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
82
|
requirements:
|
77
|
-
- -
|
83
|
+
- - '>='
|
78
84
|
- !ruby/object:Gem::Version
|
79
85
|
version: '0'
|
80
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
87
|
requirements:
|
83
|
-
- -
|
88
|
+
- - '>='
|
84
89
|
- !ruby/object:Gem::Version
|
85
90
|
version: '0'
|
86
91
|
requirements: []
|
87
92
|
rubyforge_project:
|
88
|
-
rubygems_version:
|
93
|
+
rubygems_version: 2.0.0
|
89
94
|
signing_key:
|
90
|
-
specification_version:
|
91
|
-
summary: An email validator for Rails 3
|
95
|
+
specification_version: 4
|
96
|
+
summary: An email validator for Rails 3+.
|
92
97
|
test_files: []
|
data/Gemfile.lock
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
email_validator (1.2.4)
|
5
|
-
activemodel
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: http://rubygems.org/
|
9
|
-
specs:
|
10
|
-
activemodel (3.1.3)
|
11
|
-
activesupport (= 3.1.3)
|
12
|
-
builder (~> 3.0.0)
|
13
|
-
i18n (~> 0.6)
|
14
|
-
activesupport (3.1.3)
|
15
|
-
multi_json (~> 1.0)
|
16
|
-
builder (3.0.0)
|
17
|
-
diff-lcs (1.1.3)
|
18
|
-
i18n (0.6.0)
|
19
|
-
multi_json (1.0.4)
|
20
|
-
rake (0.9.2.2)
|
21
|
-
rspec (2.7.0)
|
22
|
-
rspec-core (~> 2.7.0)
|
23
|
-
rspec-expectations (~> 2.7.0)
|
24
|
-
rspec-mocks (~> 2.7.0)
|
25
|
-
rspec-core (2.7.1)
|
26
|
-
rspec-expectations (2.7.0)
|
27
|
-
diff-lcs (~> 1.1.2)
|
28
|
-
rspec-mocks (2.7.0)
|
29
|
-
|
30
|
-
PLATFORMS
|
31
|
-
ruby
|
32
|
-
|
33
|
-
DEPENDENCIES
|
34
|
-
email_validator!
|
35
|
-
rake
|
36
|
-
rspec
|
data/README.rdoc
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
{<img src="https://secure.travis-ci.org/balexand/email_validator.png" />}[http://travis-ci.org/balexand/email_validator]
|
2
|
-
|
3
|
-
== Usage
|
4
|
-
|
5
|
-
Add to your Gemfile:
|
6
|
-
|
7
|
-
gem 'email_validator'
|
8
|
-
|
9
|
-
Run:
|
10
|
-
|
11
|
-
bundle install
|
12
|
-
|
13
|
-
Then add the following to your model:
|
14
|
-
|
15
|
-
validates :my_email_attribute, :email => true
|
16
|
-
|
17
|
-
== Strict mode
|
18
|
-
|
19
|
-
In order to have stricter validation (according to http://www.remote.org/jochen/mail/info/chars.html) enable strict mode. You can do this globally by adding the following to your Gemfile:
|
20
|
-
|
21
|
-
gem 'email_validator', :require => 'email_validator/strict'
|
22
|
-
|
23
|
-
Or you can do this in a specific `validates` call:
|
24
|
-
|
25
|
-
validates :my_email_attribute, :email => {:strict_mode => true}
|
26
|
-
|
27
|
-
== Credit
|
28
|
-
|
29
|
-
Based on http://thelucid.com/2010/01/08/sexy-validation-in-edge-rails-rails-3
|
30
|
-
Regular Expression based on http://fightingforalostcause.net/misc/2006/compare-email-regex.php tests.
|
31
|
-
|