email_address 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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