email_address 0.1.16 → 0.2.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.
@@ -1,22 +1,20 @@
1
- # encoding: UTF-8
2
- require_relative '../test_helper'
1
+ require_relative "../test_helper"
3
2
 
4
3
  class TestLocal < MiniTest::Test
5
-
6
4
  def test_valid_standard
7
5
  [ # Via https://en.wikipedia.org/wiki/Email_address
8
- %Q{prettyandsimple},
9
- %Q{very.common},
10
- %Q{disposable.style.email.with+symbol},
11
- %Q{other.email-with-dash},
12
- %Q{"much.more unusual"},
13
- %Q{"(comment)very.unusual.@.unusual.com"},
14
- %Q{#!$%&'*+-/=?^_`{}|~},
15
- %Q{" "},
16
- %Q{"very.(),:;<>[]\\".VERY.\\"very@\\ \\"very\\".unusual"},
17
- %Q{"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"},
18
- %Q{token." ".token},
19
- %Q{abc."defghi".xyz},
6
+ %(prettyandsimple),
7
+ %(very.common),
8
+ %(disposable.style.email.with+symbol),
9
+ %(other.email-with-dash),
10
+ %("much.more unusual"),
11
+ %{"(comment)very.unusual.@.unusual.com"},
12
+ %(#!$%&'*+-/=?^_`{}|~),
13
+ %(" "),
14
+ %{"very.(),:;<>[]\\".VERY.\\"very@\\ \\"very\\".unusual"},
15
+ %{"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"},
16
+ %(token." ".token),
17
+ %(abc."defghi".xyz)
20
18
  ].each do |local|
21
19
  assert EmailAddress::Local.new(local, local_fix: false).standard?, local
22
20
  end
@@ -24,15 +22,15 @@ class TestLocal < MiniTest::Test
24
22
 
25
23
  def test_invalid_standard
26
24
  [ # Via https://en.wikipedia.org/wiki/Email_address
27
- %Q{A@b@c},
28
- %Q{a"b(c)d,e:f;g<h>i[j\k]l},
29
- %Q{just"not"right},
30
- %Q{this is"not\allowed},
31
- %Q{this\ still\"not\\allowed},
32
- %Q{john..doe},
33
- %Q{ invalid},
34
- %Q{invalid },
35
- %Q{abc"defghi"xyz},
25
+ %(A@b@c),
26
+ %{a"b(c)d,e:f;g<h>i[j\k]l},
27
+ %(just"not"right),
28
+ %(this is"not\allowed),
29
+ %(this\ still\"not\\allowed),
30
+ %(john..doe),
31
+ %( invalid),
32
+ %(invalid ),
33
+ %(abc"defghi"xyz)
36
34
  ].each do |local|
37
35
  assert_equal false, EmailAddress::Local.new(local, local_fix: false).standard?, local
38
36
  end
@@ -46,22 +44,21 @@ class TestLocal < MiniTest::Test
46
44
  end
47
45
 
48
46
  def test_unicode
49
- assert ! EmailAddress::Local.new("üñîçøðé1", local_encoding: :ascii).standard?, "not üñîçøðé1"
47
+ assert !EmailAddress::Local.new("üñîçøðé1", local_encoding: :ascii).standard?, "not üñîçøðé1"
50
48
  assert EmailAddress::Local.new("üñîçøðé2", local_encoding: :unicode).standard?, "üñîçøðé2"
51
49
  assert EmailAddress::Local.new("test", local_encoding: :unicode).valid?, "unicode should include ascii"
52
- assert ! EmailAddress::Local.new("üñîçøðé3").valid?, "üñîçøðé3 valid"
50
+ assert !EmailAddress::Local.new("üñîçøðé3").valid?, "üñîçøðé3 valid"
53
51
  end
54
52
 
55
-
56
53
  def test_valid_conventional
57
- %w( first.last first First+Tag o'brien).each do |local|
54
+ %w[first.last first First+Tag o'brien].each do |local|
58
55
  assert EmailAddress::Local.new(local).conventional?, local
59
56
  end
60
57
  end
61
58
 
62
59
  def test_invalid_conventional
63
- (%w( first;.last +leading trailing+ o%brien) + ["first space"]).each do |local|
64
- assert ! EmailAddress::Local.new(local, local_fix:false).conventional?, local
60
+ (%w[first;.last +leading trailing+ o%brien] + ["first space"]).each do |local|
61
+ assert !EmailAddress::Local.new(local, local_fix: false).conventional?, local
65
62
  end
66
63
  end
67
64
 
@@ -72,8 +69,8 @@ class TestLocal < MiniTest::Test
72
69
 
73
70
  def test_format
74
71
  assert_equal :conventional, EmailAddress::Local.new("can1").format?
75
- assert_equal :standard, EmailAddress::Local.new(%Q{"can1"}).format?
76
- assert_equal "can1", EmailAddress::Local.new(%Q{"can1(commment)"}).format(:conventional)
72
+ assert_equal :standard, EmailAddress::Local.new(%("can1")).format?
73
+ assert_equal "can1", EmailAddress::Local.new(%{"can1(commment)"}).format(:conventional)
77
74
  end
78
75
 
79
76
  def test_redacted
@@ -84,9 +81,9 @@ class TestLocal < MiniTest::Test
84
81
 
85
82
  def test_matches
86
83
  a = EmailAddress.new("User+tag@gmail.com")
87
- assert_equal false, a.matches?('user')
88
- assert_equal false, a.matches?('user@')
89
- assert_equal 'user*@', a.matches?('user*@')
84
+ assert_equal false, a.matches?("user")
85
+ assert_equal false, a.matches?("user@")
86
+ assert_equal "user*@", a.matches?("user*@")
90
87
  end
91
88
 
92
89
  def test_munge
@@ -105,4 +102,7 @@ class TestLocal < MiniTest::Test
105
102
  assert EmailAddress.valid?("username_____@gmail.com")
106
103
  end
107
104
 
105
+ def test_tag_punctuation
106
+ assert EmailAddress.valid?("first.last+foo.bar@gmail.com")
107
+ end
108
108
  end
@@ -1,14 +1,11 @@
1
- #encoding: utf-8
2
- require_relative '../test_helper'
1
+ require_relative "../test_helper"
3
2
 
4
3
  class TestRewriter < Minitest::Test
5
-
6
4
  def test_srs
7
- ea= "first.LAST+tag@gmail.com"
5
+ ea = "first.LAST+tag@gmail.com"
8
6
  e = EmailAddress.new(ea)
9
7
  s = e.srs("example.com")
10
8
  assert s.match(EmailAddress::Address::SRS_FORMAT_REGEX)
11
9
  assert EmailAddress.new(s).to_s == e.to_s
12
10
  end
13
-
14
11
  end
@@ -0,0 +1,53 @@
1
+ require_relative "test_helper"
2
+
3
+ class TestAliasing < MiniTest::Test
4
+ def setup
5
+ Object.send(:const_set, :EmailAddressValidator, EmailAddress)
6
+ Object.send(:remove_const, :EmailAddress)
7
+ end
8
+
9
+ def test_email_address_not_defined
10
+ assert_nil defined?(EmailAddress)
11
+ assert_nil defined?(EmailAddress::Address)
12
+ assert_nil defined?(EmailAddress::Config)
13
+ assert_nil defined?(EmailAddress::Exchanger)
14
+ assert_nil defined?(EmailAddress::Host)
15
+ assert_nil defined?(EmailAddress::Local)
16
+ assert_nil defined?(EmailAddress::Rewriter)
17
+ end
18
+
19
+ def test_alias_defined
20
+ assert_equal defined?(EmailAddressValidator), "constant"
21
+ assert_equal defined?(EmailAddressValidator::Address), "constant"
22
+ assert_equal defined?(EmailAddressValidator::Config), "constant"
23
+ assert_equal defined?(EmailAddressValidator::Exchanger), "constant"
24
+ assert_equal defined?(EmailAddressValidator::Host), "constant"
25
+ assert_equal defined?(EmailAddressValidator::Local), "constant"
26
+ assert_equal defined?(EmailAddressValidator::Rewriter), "constant"
27
+ end
28
+
29
+ def test_alias_class_methods
30
+ assert_equal true, EmailAddressValidator.valid?("user@yahoo.com")
31
+ end
32
+
33
+ def test_alias_host_methods
34
+ assert_equal true, EmailAddressValidator::Host.new("yahoo.com").valid?
35
+ end
36
+
37
+ def test_alias_address_methods
38
+ assert_equal true, EmailAddressValidator::Address.new("user@yahoo.com").valid?
39
+ end
40
+
41
+ def test_alias_config_methods
42
+ assert Hash, EmailAddressValidator::Config.new.to_h
43
+ end
44
+
45
+ def test_alias_local_methods
46
+ assert_equal true, EmailAddressValidator::Local.new("user").valid?
47
+ end
48
+
49
+ def teardown
50
+ Object.send(:const_set, :EmailAddress, EmailAddressValidator)
51
+ Object.send(:remove_const, :EmailAddressValidator)
52
+ end
53
+ end
@@ -1,44 +1,41 @@
1
- # encoding: UTF-8
2
- require_relative 'test_helper'
1
+ require_relative "test_helper"
3
2
 
4
3
  class TestEmailAddress < MiniTest::Test
5
-
6
4
  def test_new
7
- a = EmailAddress.new('user@example.com')
8
- assert_equal 'user', a.local.to_s
9
- assert_equal 'example.com', a.host.to_s
5
+ a = EmailAddress.new("user@example.com")
6
+ assert_equal "user", a.local.to_s
7
+ assert_equal "example.com", a.host.to_s
10
8
  end
11
9
 
12
10
  def test_canonical
13
- assert_equal "firstlast@gmail.com", EmailAddress.canonical('First.Last+TAG@gmail.com')
14
- a = EmailAddress.new_canonical('First.Last+TAG@gmail.com')
15
- assert_equal 'firstlast', a.local.to_s
11
+ assert_equal "firstlast@gmail.com", EmailAddress.canonical("First.Last+TAG@gmail.com")
12
+ a = EmailAddress.new_canonical("First.Last+TAG@gmail.com")
13
+ assert_equal "firstlast", a.local.to_s
16
14
  end
17
15
 
18
16
  def test_normal
19
- assert_equal 'user+tag@gmail.com', EmailAddress.normal('USER+TAG@GMAIL.com')
17
+ assert_equal "user+tag@gmail.com", EmailAddress.normal("USER+TAG@GMAIL.com")
20
18
  end
21
19
 
22
20
  def test_valid
23
- assert_equal true, EmailAddress.valid?('user@yahoo.com')
24
- assert_equal true, EmailAddress.valid?('a@yahoo.com')
21
+ assert_equal true, EmailAddress.valid?("user@yahoo.com")
22
+ assert_equal true, EmailAddress.valid?("a@yahoo.com")
25
23
  end
26
24
 
27
25
  def test_matches
28
- assert_equal 'yahoo.', EmailAddress.matches?('user@yahoo.com', 'yahoo.')
26
+ assert_equal "yahoo.", EmailAddress.matches?("user@yahoo.com", "yahoo.")
29
27
  end
30
28
 
31
29
  def test_reference
32
- assert_equal 'dfeafc750cecde54f9a4775f5713bf01', EmailAddress.reference('user@yahoo.com')
30
+ assert_equal "dfeafc750cecde54f9a4775f5713bf01", EmailAddress.reference("user@yahoo.com")
33
31
  end
34
32
 
35
33
  def test_redact
36
- assert_equal '{e037b6c476357f34f92b8f35b25d179a4f573f1e}@yahoo.com', EmailAddress.redact('user@yahoo.com')
34
+ assert_equal "{e037b6c476357f34f92b8f35b25d179a4f573f1e}@yahoo.com", EmailAddress.redact("user@yahoo.com")
37
35
  end
38
36
 
39
37
  def test_cases
40
- %w( miles.o'brien@yahoo.com first.last@gmail.com a-b.c_d+e@f.gx
41
- ).each do |address|
38
+ %w[miles.o'brien@yahoo.com first.last@gmail.com a-b.c_d+e@f.gx].each do |address|
42
39
  assert EmailAddress.valid?(address, host_validation: :syntax), "valid?(#{address})"
43
40
  end
44
41
  end
@@ -47,5 +44,4 @@ class TestEmailAddress < MiniTest::Test
47
44
  assert_equal "", EmailAddress.normal("")
48
45
  assert_equal "", EmailAddress.normal(" ")
49
46
  end
50
-
51
47
  end
data/test/test_helper.rb CHANGED
@@ -1,11 +1,12 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
2
2
 
3
- require 'simplecov'
3
+ require "pry"
4
+ require "simplecov"
4
5
  SimpleCov.start
5
6
 
6
- require 'active_record'
7
- require 'rubygems'
8
- require 'minitest/autorun'
9
- require 'minitest/unit'
10
- require 'minitest/pride'
11
- require 'email_address'
7
+ require "active_record"
8
+ require "rubygems"
9
+ require "minitest/autorun"
10
+ require "minitest/unit"
11
+ require "minitest/pride"
12
+ require "email_address"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: email_address
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allen Fair
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-31 00:00:00.000000000 Z
11
+ date: 2021-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 5.2.4
61
+ version: 6.1.4
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 5.2.4
68
+ version: 6.1.4
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,13 +95,13 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: simpleidn
98
+ name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
- type: :runtime
104
+ type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
@@ -109,25 +109,33 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: netaddr
112
+ name: standard
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 2.0.4
118
- - - "<"
117
+ version: 1.1.1
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
119
123
  - !ruby/object:Gem::Version
120
- version: '3'
124
+ version: 1.1.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: simpleidn
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
121
132
  type: :runtime
122
133
  prerelease: false
123
134
  version_requirements: !ruby/object:Gem::Requirement
124
135
  requirements:
125
136
  - - ">="
126
137
  - !ruby/object:Gem::Version
127
- version: 2.0.4
128
- - - "<"
129
- - !ruby/object:Gem::Version
130
- version: '3'
138
+ version: '0'
131
139
  description: The EmailAddress Gem to work with and validate email addresses.
132
140
  email:
133
141
  - allen.fair@gmail.com
@@ -135,8 +143,8 @@ executables: []
135
143
  extensions: []
136
144
  extra_rdoc_files: []
137
145
  files:
146
+ - ".github/workflows/ci.yml"
138
147
  - ".gitignore"
139
- - ".travis.yml"
140
148
  - Gemfile
141
149
  - LICENSE.txt
142
150
  - README.md
@@ -162,13 +170,14 @@ files:
162
170
  - test/email_address/test_host.rb
163
171
  - test/email_address/test_local.rb
164
172
  - test/email_address/test_rewriter.rb
173
+ - test/test_aliasing.rb
165
174
  - test/test_email_address.rb
166
175
  - test/test_helper.rb
167
176
  homepage: https://github.com/afair/email_address
168
177
  licenses:
169
178
  - MIT
170
179
  metadata: {}
171
- post_install_message:
180
+ post_install_message:
172
181
  rdoc_options: []
173
182
  require_paths:
174
183
  - lib
@@ -176,15 +185,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
185
  requirements:
177
186
  - - ">="
178
187
  - !ruby/object:Gem::Version
179
- version: '0'
188
+ version: '2.5'
189
+ - - "<"
190
+ - !ruby/object:Gem::Version
191
+ version: '4'
180
192
  required_rubygems_version: !ruby/object:Gem::Requirement
181
193
  requirements:
182
194
  - - ">="
183
195
  - !ruby/object:Gem::Version
184
196
  version: '0'
185
197
  requirements: []
186
- rubygems_version: 3.0.6
187
- signing_key:
198
+ rubygems_version: 3.2.15
199
+ signing_key:
188
200
  specification_version: 4
189
201
  summary: This gem provides a ruby language library for working with and validating
190
202
  email addresses. By default, it validates against conventional usage, the format
@@ -199,5 +211,6 @@ test_files:
199
211
  - test/email_address/test_host.rb
200
212
  - test/email_address/test_local.rb
201
213
  - test/email_address/test_rewriter.rb
214
+ - test/test_aliasing.rb
202
215
  - test/test_email_address.rb
203
216
  - test/test_helper.rb
data/.travis.yml DELETED
@@ -1,9 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.7.0
4
- - 2.3.0
5
- - jruby-9.2.9.0
6
-
7
- addons:
8
- code_climate:
9
- repo_token: 729b2d0e2cc94f63b7da91042da0b6d77bbe30c2024dba04881f46caf702636f