email_address 0.1.4 → 0.1.5

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
2
  SHA1:
3
- metadata.gz: 86863c7db99499852dc1d4176ecef8a8a372124c
4
- data.tar.gz: e646a1808a0ca57048be6bcdb945c3621cfd053c
3
+ metadata.gz: f2dd7c65f4932e46e3a03d92c5c28d23862bb679
4
+ data.tar.gz: cd81d66ddb341143ac160351d99623823e2d1e20
5
5
  SHA512:
6
- metadata.gz: 51c31c52963534e41a74cb87ead583be88ddaa08e630fd3ebe8540acbf015d50d63418893ac84f540b39067db00ab37d0a0de17a20604a3ae6dd3dafe93c42cf
7
- data.tar.gz: d356139bb7776f3dc82449f6b27240dd99ec7fe4ab704d2be0177bce9dc7b8a71924944b0340742eb050a85c4b1aa2b28786f1a13e882f48e818bfa906680472
6
+ metadata.gz: fcd8720fd24322f9b8a0f9959ef308e8281a5f2a5969d3b4679639dc99e769fa95b90a6d376e03edd6bc8812f5c27bdefb9595a4315bfcd84718a90a2573ec51
7
+ data.tar.gz: 17aeaf30ccd3ce8ca29b17f129821960e60148b10d91d3d33778e67cb554947f107961610c81c4cb05c0f38d12c67c50eca32a83d09d576da61e175653bac4be
@@ -21,11 +21,15 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency "rake"
22
22
  spec.add_development_dependency "minitest", "~> 5.8.3"
23
23
  spec.add_development_dependency "bundler", "~> 1.3"
24
- spec.add_development_dependency "activerecord", "~> 5.1.3" if RUBY_PLATFORM != 'java'
25
- spec.add_development_dependency "activerecord", "~> 4.2.5" if RUBY_PLATFORM == 'java'
26
- spec.add_development_dependency "sqlite3" if RUBY_PLATFORM != 'java'
27
- spec.add_development_dependency "activerecord-jdbcsqlite3-adapter" if RUBY_PLATFORM == 'java'
24
+ if RUBY_PLATFORM == 'java'
25
+ spec.add_development_dependency "activerecord", "= 4.2.5"
26
+ spec.add_development_dependency "activerecord-jdbcsqlite3-adapter", '=1.3.19'
27
+ else
28
+ spec.add_development_dependency "activerecord", "~> 5.1.3"
29
+ spec.add_development_dependency "sqlite3"
30
+ end
28
31
  spec.add_development_dependency "codeclimate-test-reporter"
32
+
29
33
  spec.add_dependency "simpleidn"
30
34
  spec.add_dependency "netaddr"
31
35
  end
@@ -107,6 +107,7 @@ module EmailAddress
107
107
  host_validation: :mx || :a || :connect,
108
108
  host_size: 1..253,
109
109
  host_allow_ip: false,
110
+ host_remove_spaces: false,
110
111
 
111
112
  address_validation: :parts, # :parts, :smtp, Proc
112
113
  address_size: 3..254,
@@ -49,7 +49,11 @@ module EmailAddress
49
49
  ress = dns.getresources(@host, Resolv::DNS::Resource::IN::MX)
50
50
  records = ress.map do |r|
51
51
  begin
52
- [r.exchange.to_s, IPSocket::getaddress(r.exchange.to_s), r.preference]
52
+ if r.exchange.to_s > " "
53
+ [r.exchange.to_s, IPSocket::getaddress(r.exchange.to_s), r.preference]
54
+ else
55
+ nil
56
+ end
53
57
  rescue SocketError # not found, but could also mean network not work or it could mean one record doesn't resolve an address
54
58
  nil
55
59
  end
@@ -143,7 +143,10 @@ module EmailAddress
143
143
  end
144
144
 
145
145
  def host_name=(name)
146
- @host_name = name = name.strip.downcase.gsub(' ', '').gsub(/\(.*\)/, '')
146
+ @host_name = name = name.strip.downcase
147
+ if @config[:host_remove_spaces]
148
+ @host_name = @host_name.gsub(' ', '')
149
+ end
147
150
  if host_name =~ /[^[:ascii:]]/
148
151
  @dns_name = ::SimpleIDN.to_ascii(self.host_name)
149
152
  else
@@ -91,9 +91,10 @@ module EmailAddress
91
91
  # Quoted Token can also have: SPACE \" \\ ( ) , : ; < > @ [ \ ] .
92
92
  STANDARD_LOCAL_WITHIN = /
93
93
  (?: [\p{L}\p{N}\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~\(\)]+
94
- | \" (?: \\[\" \\] | [\x20 \! \x23-\x5B \x5D-\x7E \p{L} \p{N}] )+ \" )
94
+ | \" (?: \\[\" \\] | [\x20-\x21\x23-\x2F\x3A-\x40\x5B\x5D-\x60\x7B-\x7E\p{L}\p{N}] )+ \" )
95
95
  (?: \. (?: [\p{L}\p{N}\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~\(\)]+
96
- | \" (?: \\[\" \\] | [\x20 \! \x23-\x5B \x5D-\x7E \p{L} \p{N}] )+ \" ) )* /x
96
+ | \" (?: \\[\" \\] | [\x20-\x21\x23-\x2F\x3A-\x40\x5B\x5D-\x60\x7B-\x7E\p{L}\p{N}] )+ \" ) )* /x
97
+
97
98
  STANDARD_LOCAL_REGEX = /\A #{STANDARD_LOCAL_WITHIN} \z/x
98
99
 
99
100
  REDACTED_REGEX = /\A \{ [0-9a-f]{40} \} \z/x # {sha1}
@@ -1,3 +1,3 @@
1
1
  module EmailAddress
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -104,9 +104,11 @@ class TestHost < MiniTest::Test
104
104
 
105
105
  def test_yahoo_bad_tld
106
106
  assert ! EmailAddress.valid?('test@yahoo.badtld')
107
+ assert ! EmailAddress.valid?('test@yahoo.wtf') # Registered, but MX IP = 0.0.0.0
107
108
  end
108
109
 
109
110
  def test_bad_formats
110
- #assert EmailAddress::Host.new('example.com:w').registration_name
111
+ assert ! EmailAddress::Host.new('ya hoo.com').valid?
112
+ assert EmailAddress::Host.new('ya hoo.com', host_remove_spaces:true).valid?
111
113
  end
112
114
  end
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.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allen Fair
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-03 00:00:00.000000000 Z
11
+ date: 2017-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake