email_validation 1.2.0 → 2.0.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 +5 -5
- data/.document +4 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +38 -0
- data/README.md +75 -33
- data/Rakefile +14 -0
- data/email_validation.gemspec +42 -52
- data/lib/email_validation/version.rb +7 -0
- data/lib/email_validation.rb +24 -14
- metadata +54 -46
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: ad4bbc5238fa86bc9d0e786d7d13523e3f531e0d6b3c2b51cf64db6a8123696c
|
|
4
|
+
data.tar.gz: 2cec8fe9d76667ebe1c4d116b603cda391396a02a062d096f5571ff56128a7c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ab3c73de010a3ee7a22121c21fe09c701105ca0b400effdec17e619dc1a29ea2a3e51ce6e33d7f5626d47e89d96fbc75ba7cb75354bea49a8ee1deec42bc0972
|
|
7
|
+
data.tar.gz: 18199971b30ed92f7a046b581c6f0f45b6d5702175d6e2c0dcaf96ec7939e19086a5d2b6cb855d84e13f353e124c9c82d68fdcc6ca06e3bb789f16d4d2f93f62
|
data/.document
ADDED
data/.rspec
ADDED
data/.ruby-gemset
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
lev
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruby-4.0.3
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented here. This project adheres to
|
|
4
|
+
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
5
|
+
|
|
6
|
+
## [2.0.0] - 2026-05-14
|
|
7
|
+
|
|
8
|
+
### Breaking
|
|
9
|
+
|
|
10
|
+
- Minimum Ruby version is now **3.1**.
|
|
11
|
+
- Minimum `activemodel` version is now **6.1**.
|
|
12
|
+
- Depends on `localized_each_validator >= 2.0`.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- The `"Name <addr@host>"` form previously accepted whitespace-only names
|
|
17
|
+
(e.g. `" <foo@bar.com>"` would validate). The regex now requires at least
|
|
18
|
+
one non-whitespace character before the angle-bracketed address.
|
|
19
|
+
- The full RFC 5322 regex (`:format => :rfc5322`) had a corrupted byte range
|
|
20
|
+
in its IP-literal/quoted-pair clause: `[\x21-\x5a\x53-\x7f]` has been
|
|
21
|
+
corrected to `[\x21-\x5a\x5c-\x7f]` to match the canonical Cal Henderson
|
|
22
|
+
source. The original typo caused the character class to over-accept bytes
|
|
23
|
+
in the `0x53..0x5b` range that should have been excluded.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- Packaging rewritten by hand; the jeweler/juwelier-generated gemspec is gone.
|
|
28
|
+
- Version constant now lives in `lib/email_validation/version.rb`.
|
|
29
|
+
- `README.md` rewritten: removed Rails 3 framing, dropped the stale version
|
|
30
|
+
banner, documented every option (including the previously-undocumented
|
|
31
|
+
`:allow_blank`), and updated the i18n example to the activemodel-friendly
|
|
32
|
+
`errors.messages.invalid_email` key.
|
|
33
|
+
- CI moved from Travis to GitHub Actions, matrixing Ruby 3.1-3.4 against
|
|
34
|
+
activemodel 7.0-8.0.
|
|
35
|
+
|
|
36
|
+
## [1.2.1] and earlier
|
|
37
|
+
|
|
38
|
+
See the git history.
|
data/README.md
CHANGED
|
@@ -1,49 +1,91 @@
|
|
|
1
|
-
email_validation
|
|
2
|
-
================
|
|
1
|
+
# email_validation
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
[](https://github.com/RISCfuture/email_validation/actions/workflows/ci.yml)
|
|
4
|
+
[](https://rubygems.org/gems/email_validation)
|
|
5
|
+
[](LICENSE)
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|:------------|:--------------------------------|
|
|
8
|
-
| **Author** | Tim Morgan |
|
|
9
|
-
| **Version** | 1.1.1 (Jul 19, 2011) |
|
|
10
|
-
| **License** | Released under the MIT license. |
|
|
7
|
+
A simple, localizable email-address validator for any ActiveModel-based class.
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
| | |
|
|
10
|
+
|:-------------|:---------------------------------|
|
|
11
|
+
| **Author** | Tim Morgan |
|
|
12
|
+
| **License** | Released under the MIT license. |
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
ActiveRecord models in Rails 3.0+. It supports localized error messages.
|
|
14
|
+
## About
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
`email_validation` adds an `EachValidator` for email addresses. It works with
|
|
17
|
+
any class that includes `ActiveModel::Validations` (ActiveRecord models, plain
|
|
18
|
+
Ruby objects with `include ActiveModel::Model`, etc.) and supports localized
|
|
19
|
+
error messages out of the box.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
## Installation
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
gem 'email_validation'
|
|
25
|
-
````
|
|
23
|
+
Add to your `Gemfile`:
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
```ruby
|
|
26
|
+
gem "email_validation"
|
|
27
|
+
```
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
Then `bundle install`.
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
```ruby
|
|
34
|
+
class User
|
|
35
|
+
include ActiveModel::Model
|
|
36
|
+
include ActiveModel::Validations
|
|
37
|
+
|
|
38
|
+
attr_accessor :email_address
|
|
31
39
|
|
|
32
|
-
```` ruby
|
|
33
|
-
class User < ActiveRecord::Base
|
|
34
40
|
validates :email_address,
|
|
35
41
|
presence: true,
|
|
36
|
-
|
|
42
|
+
email: true
|
|
37
43
|
end
|
|
38
|
-
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Options
|
|
47
|
+
|
|
48
|
+
| Option | Description |
|
|
49
|
+
|:---------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
50
|
+
| `:format` | Which regex to validate against. Defaults to a loose regex that accepts most real-world addresses. Pass `:rfc5322` for the full RFC 5322 regex, or `:rfc5322_simple` for a simplified variant that rejects common typos (quoted local parts, IP-literal domains, etc.). |
|
|
51
|
+
| `:message` | A custom error message to use when validation fails. |
|
|
52
|
+
| `:allow_nil` | If `true`, `nil` values pass validation (inherited from `LocalizedEachValidator`). |
|
|
53
|
+
| `:allow_blank` | If `true`, blank values pass validation (inherited from `LocalizedEachValidator`). |
|
|
54
|
+
|
|
55
|
+
Examples:
|
|
56
|
+
|
|
57
|
+
```ruby
|
|
58
|
+
validates :email_address, email: true
|
|
59
|
+
validates :email_address, email: { format: :rfc5322 }
|
|
60
|
+
validates :email_address, email: { allow_blank: true }
|
|
61
|
+
validates :email_address, email: { message: "doesn't look like an email" }
|
|
62
|
+
```
|
|
39
63
|
|
|
40
|
-
The
|
|
41
|
-
|
|
64
|
+
The validator also accepts the `Name <addr@host>` form, so values like
|
|
65
|
+
`"Foo Bar <foo@bar.com>"` validate correctly.
|
|
42
66
|
|
|
43
|
-
|
|
67
|
+
## Localization
|
|
68
|
+
|
|
69
|
+
The error message key is `invalid_email`. Add a translation to your locale
|
|
70
|
+
files under `errors.messages`:
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
44
73
|
en:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
74
|
+
errors:
|
|
75
|
+
messages:
|
|
76
|
+
invalid_email: "Email address is invalid."
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
You can also nest it under `activerecord.errors.messages` (or any of the other
|
|
80
|
+
ActiveModel error-message lookup paths) if you prefer per-model granularity.
|
|
81
|
+
|
|
82
|
+
## Development
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
bin/setup
|
|
86
|
+
bundle exec rspec
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
MIT. See [LICENSE](LICENSE).
|
data/Rakefile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "bundler/gem_tasks"
|
|
4
|
+
require "rspec/core/rake_task"
|
|
5
|
+
|
|
6
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
7
|
+
|
|
8
|
+
begin
|
|
9
|
+
require "standard/rake"
|
|
10
|
+
rescue LoadError
|
|
11
|
+
# standard is optional in CI matrix runs
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
task default: :spec
|
data/email_validation.gemspec
CHANGED
|
@@ -1,55 +1,45 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
#
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
s.add_runtime_dependency(%q<localized_each_validator>, [">= 1.0.1"])
|
|
36
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
|
37
|
-
s.add_development_dependency(%q<yard>, [">= 0"])
|
|
38
|
-
s.add_development_dependency(%q<redcarpet>, [">= 0"])
|
|
39
|
-
s.add_development_dependency(%q<rspec>, [">= 0"])
|
|
40
|
-
else
|
|
41
|
-
s.add_dependency(%q<localized_each_validator>, [">= 1.0.1"])
|
|
42
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
43
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
|
44
|
-
s.add_dependency(%q<redcarpet>, [">= 0"])
|
|
45
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Read VERSION directly without requiring `email_validation/version`, which
|
|
4
|
+
# itself requires `localized_each_validator` — a runtime dep that may not yet
|
|
5
|
+
# be installed when this gemspec is first evaluated.
|
|
6
|
+
version = File.read(File.expand_path("lib/email_validation/version.rb", __dir__))
|
|
7
|
+
.match(/VERSION\s*=\s*["']([^"']+)["']/)[1]
|
|
8
|
+
|
|
9
|
+
Gem::Specification.new do |spec|
|
|
10
|
+
spec.name = "email_validation"
|
|
11
|
+
spec.version = version
|
|
12
|
+
spec.authors = ["Tim Morgan"]
|
|
13
|
+
spec.email = ["git@timothymorgan.info"]
|
|
14
|
+
|
|
15
|
+
spec.summary = "Simple, localizable email address validator for ActiveModel"
|
|
16
|
+
spec.description = "A simple, localizable EachValidator for email address fields. " \
|
|
17
|
+
"Drop in to any ActiveModel-based class and use `validates :foo, email: true`."
|
|
18
|
+
spec.homepage = "https://github.com/RISCfuture/email_validation"
|
|
19
|
+
spec.license = "MIT"
|
|
20
|
+
|
|
21
|
+
spec.required_ruby_version = ">= 3.1"
|
|
22
|
+
|
|
23
|
+
spec.metadata = {
|
|
24
|
+
"homepage_uri" => spec.homepage,
|
|
25
|
+
"source_code_uri" => "#{spec.homepage}/tree/master",
|
|
26
|
+
"changelog_uri" => "#{spec.homepage}/blob/master/CHANGELOG.md",
|
|
27
|
+
"bug_tracker_uri" => "#{spec.homepage}/issues",
|
|
28
|
+
"rubygems_mfa_required" => "true"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
spec.files = Dir.chdir(__dir__) do
|
|
32
|
+
`git ls-files -z`.split("\x0").select { |f| File.exist?(f) }.reject do |f|
|
|
33
|
+
(File.expand_path(f) == __FILE__) ||
|
|
34
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git .github .idea Gemfile])
|
|
46
35
|
end
|
|
47
|
-
else
|
|
48
|
-
s.add_dependency(%q<localized_each_validator>, [">= 1.0.1"])
|
|
49
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
50
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
|
51
|
-
s.add_dependency(%q<redcarpet>, [">= 0"])
|
|
52
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
|
53
36
|
end
|
|
54
|
-
|
|
37
|
+
spec.require_paths = ["lib"]
|
|
55
38
|
|
|
39
|
+
spec.add_dependency "activemodel", ">= 6.1"
|
|
40
|
+
spec.add_dependency "localized_each_validator", ">= 2.0"
|
|
41
|
+
|
|
42
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
|
43
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
|
44
|
+
spec.add_development_dependency "standard", ">= 1.0"
|
|
45
|
+
end
|
data/lib/email_validation.rb
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "localized_each_validator"
|
|
4
|
+
require "email_validation/version"
|
|
2
5
|
|
|
3
6
|
# Validates email addresses. Uses the `invalid_email` error message key.
|
|
4
7
|
#
|
|
@@ -8,27 +11,34 @@ require 'localized_each_validator'
|
|
|
8
11
|
# Options
|
|
9
12
|
# -------
|
|
10
13
|
#
|
|
11
|
-
# |
|
|
12
|
-
#
|
|
13
|
-
# | `:format`
|
|
14
|
-
# | `:message`
|
|
15
|
-
# | `:allow_nil`
|
|
14
|
+
# | | |
|
|
15
|
+
# |:---------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
16
|
+
# | `:format` | By default, uses a simple email regex that matches most email addresses. If `:rfc5322`, uses a full RFC 5322 email regex that will match common typos as well. If `:rfc5322_simple`, uses a simplified version of the previous regex to ignore some common typos. |
|
|
17
|
+
# | `:message` | A custom message to use if the email is invalid. |
|
|
18
|
+
# | `:allow_nil` | If true, `nil` values are allowed (inherited from {LocalizedEachValidator}). |
|
|
19
|
+
# | `:allow_blank` | If true, blank values are allowed (inherited from {LocalizedEachValidator}). |
|
|
16
20
|
|
|
17
21
|
class EmailValidator < LocalizedEachValidator
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
# Full RFC 5322 regex (Cal Henderson). Matches the vast majority of valid email
|
|
23
|
+
# addresses including quoted local parts and IP-literal domains.
|
|
24
|
+
RFC5322_REGEX = %r{(?:[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\x5c-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])}i.freeze
|
|
25
|
+
|
|
26
|
+
# Simplified RFC 5322 regex - rejects common typos like quoted local parts and
|
|
27
|
+
# IP-literal domains, but otherwise follows RFC 5322 closely.
|
|
28
|
+
RFC5322_SIMPLE_REGEX = %r{[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.freeze
|
|
29
|
+
|
|
30
|
+
# A loose regex that catches the most common email address formats.
|
|
31
|
+
BASIC_REGEX = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/i.freeze
|
|
22
32
|
|
|
23
33
|
error_key :invalid_email
|
|
24
34
|
|
|
25
35
|
# @private
|
|
26
36
|
def valid?(_, _, value)
|
|
27
37
|
regex = case options[:format]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
38
|
+
when :rfc5322 then RFC5322_REGEX
|
|
39
|
+
when :rfc5322_simple then RFC5322_SIMPLE_REGEX
|
|
40
|
+
else BASIC_REGEX
|
|
31
41
|
end
|
|
32
|
-
value =~ /\A#{regex}\z/i || value =~ /\A
|
|
42
|
+
(value =~ /\A#{regex}\z/i || value =~ /\A\S.*?\s+<#{regex}>\z/i) != nil
|
|
33
43
|
end
|
|
34
44
|
end
|
metadata
CHANGED
|
@@ -1,119 +1,127 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: email_validation
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tim Morgan
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
13
|
+
name: activemodel
|
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
|
16
15
|
requirements:
|
|
17
|
-
- -
|
|
16
|
+
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
18
|
+
version: '6.1'
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
|
-
- -
|
|
23
|
+
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
25
|
+
version: '6.1'
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
27
|
+
name: localized_each_validator
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
|
-
- -
|
|
30
|
+
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
34
|
-
type: :
|
|
32
|
+
version: '2.0'
|
|
33
|
+
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
|
-
- -
|
|
37
|
+
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
39
|
+
version: '2.0'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
41
|
+
name: rake
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
|
-
- -
|
|
44
|
+
- - "~>"
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
46
|
+
version: '13.0'
|
|
48
47
|
type: :development
|
|
49
48
|
prerelease: false
|
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
50
|
requirements:
|
|
52
|
-
- -
|
|
51
|
+
- - "~>"
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
53
|
+
version: '13.0'
|
|
55
54
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
55
|
+
name: rspec
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
|
-
- -
|
|
58
|
+
- - "~>"
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0'
|
|
60
|
+
version: '3.0'
|
|
62
61
|
type: :development
|
|
63
62
|
prerelease: false
|
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
64
|
requirements:
|
|
66
|
-
- -
|
|
65
|
+
- - "~>"
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0'
|
|
67
|
+
version: '3.0'
|
|
69
68
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
69
|
+
name: standard
|
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
|
72
71
|
requirements:
|
|
73
|
-
- -
|
|
72
|
+
- - ">="
|
|
74
73
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
74
|
+
version: '1.0'
|
|
76
75
|
type: :development
|
|
77
76
|
prerelease: false
|
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
78
|
requirements:
|
|
80
|
-
- -
|
|
79
|
+
- - ">="
|
|
81
80
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
83
|
-
description: A simple, localizable EachValidator for email address fields in
|
|
84
|
-
|
|
85
|
-
email:
|
|
81
|
+
version: '1.0'
|
|
82
|
+
description: 'A simple, localizable EachValidator for email address fields. Drop in
|
|
83
|
+
to any ActiveModel-based class and use `validates :foo, email: true`.'
|
|
84
|
+
email:
|
|
85
|
+
- git@timothymorgan.info
|
|
86
86
|
executables: []
|
|
87
87
|
extensions: []
|
|
88
|
-
extra_rdoc_files:
|
|
89
|
-
- LICENSE
|
|
90
|
-
- README.md
|
|
88
|
+
extra_rdoc_files: []
|
|
91
89
|
files:
|
|
90
|
+
- ".document"
|
|
91
|
+
- ".rspec"
|
|
92
|
+
- ".ruby-gemset"
|
|
93
|
+
- ".ruby-version"
|
|
94
|
+
- CHANGELOG.md
|
|
92
95
|
- LICENSE
|
|
93
96
|
- README.md
|
|
97
|
+
- Rakefile
|
|
94
98
|
- email_validation.gemspec
|
|
95
99
|
- lib/email_validation.rb
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
+
- lib/email_validation/version.rb
|
|
101
|
+
homepage: https://github.com/RISCfuture/email_validation
|
|
102
|
+
licenses:
|
|
103
|
+
- MIT
|
|
104
|
+
metadata:
|
|
105
|
+
homepage_uri: https://github.com/RISCfuture/email_validation
|
|
106
|
+
source_code_uri: https://github.com/RISCfuture/email_validation/tree/master
|
|
107
|
+
changelog_uri: https://github.com/RISCfuture/email_validation/blob/master/CHANGELOG.md
|
|
108
|
+
bug_tracker_uri: https://github.com/RISCfuture/email_validation/issues
|
|
109
|
+
rubygems_mfa_required: 'true'
|
|
100
110
|
rdoc_options: []
|
|
101
111
|
require_paths:
|
|
102
112
|
- lib
|
|
103
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
114
|
requirements:
|
|
105
|
-
- -
|
|
115
|
+
- - ">="
|
|
106
116
|
- !ruby/object:Gem::Version
|
|
107
|
-
version: '
|
|
117
|
+
version: '3.1'
|
|
108
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
119
|
requirements:
|
|
110
|
-
- -
|
|
120
|
+
- - ">="
|
|
111
121
|
- !ruby/object:Gem::Version
|
|
112
122
|
version: '0'
|
|
113
123
|
requirements: []
|
|
114
|
-
|
|
115
|
-
rubygems_version: 2.3.0
|
|
116
|
-
signing_key:
|
|
124
|
+
rubygems_version: 4.0.11
|
|
117
125
|
specification_version: 4
|
|
118
|
-
summary: Simple email
|
|
126
|
+
summary: Simple, localizable email address validator for ActiveModel
|
|
119
127
|
test_files: []
|