email_validation 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1a99ec260f9fa745d734f8c47bfbfefebcd89f63
4
+ data.tar.gz: 61f2e8d5180e8cb6aadc633ae0cc4174edd35599
5
+ SHA512:
6
+ metadata.gz: 94398179f18e209e96159c4f32df1c6ce7cc82702f6653b4b2b9caefbb3040a09d086822ed5e310432cb3d75c1ca8b5b8f864a2370629f6c2d24a3f2b9956af7
7
+ data.tar.gz: 0d3c21aed2a5c7ba5b20c8143353fd9f2367ef67c6a30593bf381386e0fd0d7d9513c674776e32f8d5df0367369f194cd14c2c35208d27e2ad2f701569182183
data/README.md ADDED
@@ -0,0 +1,49 @@
1
+ email_validation
2
+ ================
3
+
4
+ **Simple email validator for Rails 3+**
5
+
6
+ | | |
7
+ |:------------|:--------------------------------|
8
+ | **Author** | Tim Morgan |
9
+ | **Version** | 1.1.1 (Jul 19, 2011) |
10
+ | **License** | Released under the MIT license. |
11
+
12
+ About
13
+ -----
14
+
15
+ This gem adds a very simple email address format validator to be used with
16
+ ActiveRecord models in Rails 3.0+. It supports localized error messages.
17
+
18
+ Installation
19
+ ------------
20
+
21
+ Add the gem to your project's `Gemfile`:
22
+
23
+ ```` ruby
24
+ gem 'email_validation'
25
+ ````
26
+
27
+ Usage
28
+ -----
29
+
30
+ This gem is an `EachValidator`, and thus is used with the `validates` method:
31
+
32
+ ```` ruby
33
+ class User < ActiveRecord::Base
34
+ validates :email_address,
35
+ presence: true,
36
+ email: true
37
+ end
38
+ ````
39
+
40
+ The localization key is `invalid_email`, and can be specified in the localized
41
+ YAML file like so:
42
+
43
+ ```` yaml
44
+ en:
45
+ activerecord:
46
+ errors:
47
+ messages:
48
+ invalid_email: Email address is invalid.
49
+ ````
@@ -2,60 +2,53 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: email_validation 1.2.0 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
- s.name = %q{email_validation}
8
- s.version = "1.1.1"
8
+ s.name = "email_validation"
9
+ s.version = "1.2.0"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Tim Morgan"]
12
- s.date = %q{2011-07-19}
13
- s.description = %q{A simple, localizable EachValidator for email address fields in ActiveRecord 3.0.}
14
- s.email = %q{git@timothymorgan.info}
14
+ s.date = "2014-07-09"
15
+ s.description = "A simple, localizable EachValidator for email address fields in ActiveRecord 3.0."
16
+ s.email = "git@timothymorgan.info"
15
17
  s.extra_rdoc_files = [
16
18
  "LICENSE",
17
- "README.textile"
19
+ "README.md"
18
20
  ]
19
21
  s.files = [
20
- ".document",
21
- ".rspec",
22
- "Gemfile",
23
- "Gemfile.lock",
24
22
  "LICENSE",
25
- "README.textile",
26
- "Rakefile",
27
- "VERSION",
23
+ "README.md",
28
24
  "email_validation.gemspec",
29
- "lib/email_validation.rb",
30
- "spec/email_validator_spec.rb",
31
- "spec/spec_helper.rb"
25
+ "lib/email_validation.rb"
32
26
  ]
33
- s.homepage = %q{http://github.com/riscfuture/email_validation}
34
- s.require_paths = ["lib"]
35
- s.rubygems_version = %q{1.6.2}
36
- s.summary = %q{Simple email validation in Rails 3}
27
+ s.homepage = "http://github.com/riscfuture/email_validation"
28
+ s.rubygems_version = "2.3.0"
29
+ s.summary = "Simple email validation in Rails 3"
37
30
 
38
31
  if s.respond_to? :specification_version then
39
- s.specification_version = 3
32
+ s.specification_version = 4
40
33
 
41
34
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
35
  s.add_runtime_dependency(%q<localized_each_validator>, [">= 1.0.1"])
43
36
  s.add_development_dependency(%q<jeweler>, [">= 0"])
44
37
  s.add_development_dependency(%q<yard>, [">= 0"])
45
- s.add_development_dependency(%q<RedCloth>, [">= 0"])
38
+ s.add_development_dependency(%q<redcarpet>, [">= 0"])
46
39
  s.add_development_dependency(%q<rspec>, [">= 0"])
47
40
  else
48
41
  s.add_dependency(%q<localized_each_validator>, [">= 1.0.1"])
49
42
  s.add_dependency(%q<jeweler>, [">= 0"])
50
43
  s.add_dependency(%q<yard>, [">= 0"])
51
- s.add_dependency(%q<RedCloth>, [">= 0"])
44
+ s.add_dependency(%q<redcarpet>, [">= 0"])
52
45
  s.add_dependency(%q<rspec>, [">= 0"])
53
46
  end
54
47
  else
55
48
  s.add_dependency(%q<localized_each_validator>, [">= 1.0.1"])
56
49
  s.add_dependency(%q<jeweler>, [">= 0"])
57
50
  s.add_dependency(%q<yard>, [">= 0"])
58
- s.add_dependency(%q<RedCloth>, [">= 0"])
51
+ s.add_dependency(%q<redcarpet>, [">= 0"])
59
52
  s.add_dependency(%q<rspec>, [">= 0"])
60
53
  end
61
54
  end
@@ -1,23 +1,34 @@
1
1
  require 'localized_each_validator'
2
2
 
3
- # Validates email addresses. Uses the @invalid_email@ error message key.
3
+ # Validates email addresses. Uses the `invalid_email` error message key.
4
4
  #
5
5
  # @example
6
6
  # validates :email_address, email: true
7
7
  #
8
- # h2. Options
8
+ # Options
9
+ # -------
9
10
  #
10
- # | @:message@ | A custom message to use if the email is invalid. |
11
- # | @:allow_nil@ | If true, @nil@ values are allowed. |
11
+ # | | |
12
+ # |:-------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
13
+ # | `:format` | By default, uses a simple email regex that matches most email addresses. If `:rfc_5322`, uses a full RFC 5322 email regex that will match common typos as well. If `:rfc_5322_simple`, uses a simplified version of the previous regex to ignore some common typos. |
14
+ # | `:message` | A custom message to use if the email is invalid. |
15
+ # | `:allow_nil` | If true, `nil` values are allowed. |
12
16
 
13
17
  class EmailValidator < LocalizedEachValidator
14
- # Regular expression describing valid emails
15
- EMAIL_REGEX = "[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}"
16
-
18
+ # Regular expression describing valid emails.
19
+ RFC5322_REGEX = /(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i
20
+ RFC5322_SIMPLE_REGEX = /[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i
21
+ BASIC_REGEX = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i
22
+
17
23
  error_key :invalid_email
18
24
 
19
25
  # @private
20
26
  def valid?(_, _, value)
21
- value =~ /^#{EMAIL_REGEX}$/i || value =~ /^.+\s+<#{EMAIL_REGEX}>$/i
27
+ regex = case options[:format]
28
+ when :rfc_5322 then RFC5322_REGEX
29
+ when :rfc_5322_simple then RFC5322_SIMPLE_REGEX
30
+ else BASIC_REGEX
31
+ end
32
+ value =~ /\A#{regex}\z/i || value =~ /\A.+\s+<#{regex}>\z/i
22
33
  end
23
34
  end
metadata CHANGED
@@ -1,72 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: email_validation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
5
- prerelease:
4
+ version: 1.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tim Morgan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2011-07-19 00:00:00.000000000 -07:00
13
- default_executable:
11
+ date: 2014-07-09 00:00:00.000000000 Z
14
12
  dependencies:
15
13
  - !ruby/object:Gem::Dependency
16
14
  name: localized_each_validator
17
- requirement: &2172903080 !ruby/object:Gem::Requirement
18
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
19
16
  requirements:
20
- - - ! '>='
17
+ - - '>='
21
18
  - !ruby/object:Gem::Version
22
19
  version: 1.0.1
23
20
  type: :runtime
24
21
  prerelease: false
25
- version_requirements: *2172903080
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.1
26
27
  - !ruby/object:Gem::Dependency
27
28
  name: jeweler
28
- requirement: &2172902500 !ruby/object:Gem::Requirement
29
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *2172902500
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
37
41
  - !ruby/object:Gem::Dependency
38
42
  name: yard
39
- requirement: &2172901900 !ruby/object:Gem::Requirement
40
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
41
44
  requirements:
42
- - - ! '>='
45
+ - - '>='
43
46
  - !ruby/object:Gem::Version
44
47
  version: '0'
45
48
  type: :development
46
49
  prerelease: false
47
- version_requirements: *2172901900
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
48
55
  - !ruby/object:Gem::Dependency
49
- name: RedCloth
50
- requirement: &2172901320 !ruby/object:Gem::Requirement
51
- none: false
56
+ name: redcarpet
57
+ requirement: !ruby/object:Gem::Requirement
52
58
  requirements:
53
- - - ! '>='
59
+ - - '>='
54
60
  - !ruby/object:Gem::Version
55
61
  version: '0'
56
62
  type: :development
57
63
  prerelease: false
58
- version_requirements: *2172901320
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
59
69
  - !ruby/object:Gem::Dependency
60
70
  name: rspec
61
- requirement: &2172900800 !ruby/object:Gem::Requirement
62
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
63
72
  requirements:
64
- - - ! '>='
73
+ - - '>='
65
74
  - !ruby/object:Gem::Version
66
75
  version: '0'
67
76
  type: :development
68
77
  prerelease: false
69
- version_requirements: *2172900800
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
70
83
  description: A simple, localizable EachValidator for email address fields in ActiveRecord
71
84
  3.0.
72
85
  email: git@timothymorgan.info
@@ -74,46 +87,33 @@ executables: []
74
87
  extensions: []
75
88
  extra_rdoc_files:
76
89
  - LICENSE
77
- - README.textile
90
+ - README.md
78
91
  files:
79
- - .document
80
- - .rspec
81
- - Gemfile
82
- - Gemfile.lock
83
92
  - LICENSE
84
- - README.textile
85
- - Rakefile
86
- - VERSION
93
+ - README.md
87
94
  - email_validation.gemspec
88
95
  - lib/email_validation.rb
89
- - spec/email_validator_spec.rb
90
- - spec/spec_helper.rb
91
- has_rdoc: true
92
96
  homepage: http://github.com/riscfuture/email_validation
93
97
  licenses: []
98
+ metadata: {}
94
99
  post_install_message:
95
100
  rdoc_options: []
96
101
  require_paths:
97
102
  - lib
98
103
  required_ruby_version: !ruby/object:Gem::Requirement
99
- none: false
100
104
  requirements:
101
- - - ! '>='
105
+ - - '>='
102
106
  - !ruby/object:Gem::Version
103
107
  version: '0'
104
- segments:
105
- - 0
106
- hash: 3535036998513228201
107
108
  required_rubygems_version: !ruby/object:Gem::Requirement
108
- none: false
109
109
  requirements:
110
- - - ! '>='
110
+ - - '>='
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  requirements: []
114
114
  rubyforge_project:
115
- rubygems_version: 1.6.2
115
+ rubygems_version: 2.3.0
116
116
  signing_key:
117
- specification_version: 3
117
+ specification_version: 4
118
118
  summary: Simple email validation in Rails 3
119
119
  test_files: []
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/.rspec DELETED
@@ -1 +0,0 @@
1
- -cfs
data/Gemfile DELETED
@@ -1,10 +0,0 @@
1
- source :rubygems
2
-
3
- gem 'localized_each_validator', '>= 1.0.1'
4
-
5
- group :development do
6
- gem 'jeweler'
7
- gem 'yard'
8
- gem 'RedCloth', require: 'redcloth'
9
- gem 'rspec'
10
- end
data/Gemfile.lock DELETED
@@ -1,47 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- RedCloth (4.2.7)
5
- activemodel (3.0.9)
6
- activesupport (= 3.0.9)
7
- builder (~> 2.1.2)
8
- i18n (~> 0.5.0)
9
- activerecord (3.0.9)
10
- activemodel (= 3.0.9)
11
- activesupport (= 3.0.9)
12
- arel (~> 2.0.10)
13
- tzinfo (~> 0.3.23)
14
- activesupport (3.0.9)
15
- arel (2.0.10)
16
- builder (2.1.2)
17
- diff-lcs (1.1.2)
18
- git (1.2.5)
19
- i18n (0.5.0)
20
- jeweler (1.6.4)
21
- bundler (~> 1.0)
22
- git (>= 1.2.5)
23
- rake
24
- localized_each_validator (1.0.1)
25
- activerecord (>= 3.0)
26
- activesupport (>= 3.0)
27
- rake (0.9.2)
28
- rspec (2.6.0)
29
- rspec-core (~> 2.6.0)
30
- rspec-expectations (~> 2.6.0)
31
- rspec-mocks (~> 2.6.0)
32
- rspec-core (2.6.4)
33
- rspec-expectations (2.6.0)
34
- diff-lcs (~> 1.1.2)
35
- rspec-mocks (2.6.0)
36
- tzinfo (0.3.29)
37
- yard (0.7.2)
38
-
39
- PLATFORMS
40
- ruby
41
-
42
- DEPENDENCIES
43
- RedCloth
44
- jeweler
45
- localized_each_validator (>= 1.0.1)
46
- rspec
47
- yard
data/README.textile DELETED
@@ -1,39 +0,0 @@
1
- h1. email_validation -- Simple email validator for Rails 3
2
-
3
- | *Author* | Tim Morgan |
4
- | *Version* | 1.1.1 (Jul 19, 2011) |
5
- | *License* | Released under the MIT license. |
6
-
7
- h2. About
8
-
9
- This gem adds a very simple email address format validator to be used with ActiveRecord models in Rails 3.0. It supports localized error messages.
10
-
11
- h2. Installation
12
-
13
- Add the gem to your project's @Gemfile@:
14
-
15
- <pre><code>
16
- gem 'email_validation'
17
- </code></pre>
18
-
19
- h2. Usage
20
-
21
- This gem is an @EachValidator@, and thus is used with the @validates@ method:
22
-
23
- <pre><code>
24
- class User < ActiveRecord::Base
25
- validates :email_address,
26
- presence: true,
27
- email: true
28
- end
29
- </code></pre>
30
-
31
- The localization key is @invalid_email@, and can be specified in the localized YAML file like so:
32
-
33
- <pre><code>
34
- en:
35
- activerecord:
36
- errors:
37
- messages:
38
- invalid_email: Email address is invalid.
39
- </code></pre>
data/Rakefile DELETED
@@ -1,37 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'rake'
11
-
12
- require 'jeweler'
13
- Jeweler::Tasks.new do |gem|
14
- gem.name = "email_validation"
15
- gem.summary = %Q{Simple email validation in Rails 3}
16
- gem.description = %Q{A simple, localizable EachValidator for email address fields in ActiveRecord 3.0.}
17
- gem.email = "git@timothymorgan.info"
18
- gem.homepage = "http://github.com/riscfuture/email_validation"
19
- gem.authors = [ "Tim Morgan" ]
20
- end
21
- Jeweler::RubygemsDotOrgTasks.new
22
-
23
- require 'yard'
24
- YARD::Rake::YardocTask.new('doc') do |doc|
25
- doc.options << "-m" << "textile"
26
- doc.options << "--protected"
27
- doc.options << "-r" << "README.textile"
28
- doc.options << "-o" << "doc"
29
- doc.options << "--title" << "email_validation Documentation".inspect
30
-
31
- doc.files = [ 'lib/*_validator.rb', 'README.textile' ]
32
- end
33
-
34
- require 'rspec/core/rake_task'
35
- RSpec::Core::RakeTask.new
36
-
37
- task(default: :spec)
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.1.1
@@ -1,30 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe EmailValidator do
4
- before :each do
5
- @validator = EmailValidator.new({ attributes: [ :foo, :bar ] })
6
- end
7
-
8
- it "should validate an email address" do
9
- @validator.valid?(nil, nil, 'foo@bar.com').should be_true
10
- end
11
-
12
- it "should validate a name and email pair" do
13
- @validator.valid?(nil, nil, 'Foo Bar <foo@bar.com>').should be_true
14
- end
15
-
16
- it "should not validate an improper email address" do
17
- @validator.valid?(nil, nil, 'foo@bar').should be_false
18
- @validator.valid?(nil, nil, 'fo oo@bar.com').should be_false
19
- @validator.valid?(nil, nil, 'foo@bar@bar.com').should be_false
20
- @validator.valid?(nil, nil, 'foo@.com').should be_false
21
- end
22
-
23
- it "should not validate an improper name and email pair" do
24
- @validator.valid?(nil, nil, 'Foo Bar <foo@bar>').should be_false
25
- @validator.valid?(nil, nil, 'Foo Bar <fo oo@bar.com>').should be_false
26
- @validator.valid?(nil, nil, 'Foo Bar <foo@bar@bar.com>').should be_false
27
- @validator.valid?(nil, nil, 'Foo Bar <foo@.com>').should be_false
28
- @validator.valid?(nil, nil, '<foo@bar.com> Foo Bar').should be_false
29
- end
30
- end
data/spec/spec_helper.rb DELETED
@@ -1,10 +0,0 @@
1
- Bundler.require :default, :test
2
-
3
- $LOAD_PATH.unshift(File.dirname(__FILE__))
4
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
-
6
- require 'email_validation'
7
-
8
- RSpec.configure do |c|
9
- c.mock_with :rspec
10
- end