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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1a99ec260f9fa745d734f8c47bfbfefebcd89f63
4
- data.tar.gz: 61f2e8d5180e8cb6aadc633ae0cc4174edd35599
2
+ SHA256:
3
+ metadata.gz: ad4bbc5238fa86bc9d0e786d7d13523e3f531e0d6b3c2b51cf64db6a8123696c
4
+ data.tar.gz: 2cec8fe9d76667ebe1c4d116b603cda391396a02a062d096f5571ff56128a7c9
5
5
  SHA512:
6
- metadata.gz: 94398179f18e209e96159c4f32df1c6ce7cc82702f6653b4b2b9caefbb3040a09d086822ed5e310432cb3d75c1ca8b5b8f864a2370629f6c2d24a3f2b9956af7
7
- data.tar.gz: 0d3c21aed2a5c7ba5b20c8143353fd9f2367ef67c6a30593bf381386e0fd0d7d9513c674776e32f8d5df0367369f194cd14c2c35208d27e2ad2f701569182183
6
+ metadata.gz: ab3c73de010a3ee7a22121c21fe09c701105ca0b400effdec17e619dc1a29ea2a3e51ce6e33d7f5626d47e89d96fbc75ba7cb75354bea49a8ee1deec42bc0972
7
+ data.tar.gz: 18199971b30ed92f7a046b581c6f0f45b6d5702175d6e2c0dcaf96ec7939e19086a5d2b6cb855d84e13f353e124c9c82d68fdcc6ca06e3bb789f16d4d2f93f62
data/.document ADDED
@@ -0,0 +1,4 @@
1
+ README.md
2
+ CHANGELOG.md
3
+ lib/**/*.rb
4
+ LICENSE
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format=documentation
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
- **Simple email validator for Rails 3+**
3
+ [![CI](https://github.com/RISCfuture/email_validation/actions/workflows/ci.yml/badge.svg)](https://github.com/RISCfuture/email_validation/actions/workflows/ci.yml)
4
+ [![Gem Version](https://img.shields.io/gem/v/email_validation.svg)](https://rubygems.org/gems/email_validation)
5
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](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
- About
13
- -----
9
+ | | |
10
+ |:-------------|:---------------------------------|
11
+ | **Author** | Tim Morgan |
12
+ | **License** | Released under the MIT license. |
14
13
 
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.
14
+ ## About
17
15
 
18
- Installation
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
- Add the gem to your project's `Gemfile`:
21
+ ## Installation
22
22
 
23
- ```` ruby
24
- gem 'email_validation'
25
- ````
23
+ Add to your `Gemfile`:
26
24
 
27
- Usage
28
- -----
25
+ ```ruby
26
+ gem "email_validation"
27
+ ```
29
28
 
30
- This gem is an `EachValidator`, and thus is used with the `validates` method:
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
- email: true
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 localization key is `invalid_email`, and can be specified in the localized
41
- YAML file like so:
64
+ The validator also accepts the `Name <addr@host>` form, so values like
65
+ `"Foo Bar <foo@bar.com>"` validate correctly.
42
66
 
43
- ```` yaml
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
- activerecord:
46
- errors:
47
- messages:
48
- invalid_email: Email address is invalid.
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
@@ -1,55 +1,45 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
- # stub: email_validation 1.2.0 ruby lib
6
-
7
- Gem::Specification.new do |s|
8
- s.name = "email_validation"
9
- s.version = "1.2.0"
10
-
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Tim Morgan"]
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"
17
- s.extra_rdoc_files = [
18
- "LICENSE",
19
- "README.md"
20
- ]
21
- s.files = [
22
- "LICENSE",
23
- "README.md",
24
- "email_validation.gemspec",
25
- "lib/email_validation.rb"
26
- ]
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"
30
-
31
- if s.respond_to? :specification_version then
32
- s.specification_version = 4
33
-
34
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
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
- end
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
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "localized_each_validator"
4
+
5
+ class EmailValidator < LocalizedEachValidator
6
+ VERSION = "2.0.0"
7
+ end
@@ -1,4 +1,7 @@
1
- require 'localized_each_validator'
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` | 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. |
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
- # 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
+ # 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
- when :rfc_5322 then RFC5322_REGEX
29
- when :rfc_5322_simple then RFC5322_SIMPLE_REGEX
30
- else BASIC_REGEX
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.+\s+<#{regex}>\z/i
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: 1.2.0
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: 2014-07-09 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: localized_each_validator
13
+ name: activemodel
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - '>='
16
+ - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 1.0.1
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: 1.0.1
25
+ version: '6.1'
27
26
  - !ruby/object:Gem::Dependency
28
- name: jeweler
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: :development
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: yard
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: redcarpet
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: rspec
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 ActiveRecord
84
- 3.0.
85
- email: git@timothymorgan.info
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
- homepage: http://github.com/riscfuture/email_validation
97
- licenses: []
98
- metadata: {}
99
- post_install_message:
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: '0'
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
- rubyforge_project:
115
- rubygems_version: 2.3.0
116
- signing_key:
124
+ rubygems_version: 4.0.11
117
125
  specification_version: 4
118
- summary: Simple email validation in Rails 3
126
+ summary: Simple, localizable email address validator for ActiveModel
119
127
  test_files: []