email_domain_inclusion 1.0.1 → 1.1.0

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: d318ade615cedb1ac5bcf68c0e0eb63db0464c15
4
- data.tar.gz: 08c9ec75e158420cdf33cf57f956c648ed84bf87
3
+ metadata.gz: 6693a7481613ac7e5d8021b5d3aaf682c6f82dac
4
+ data.tar.gz: efb361f0b7a53f03692653c660dc4c90135a1d14
5
5
  SHA512:
6
- metadata.gz: 8102f7ffa3a733cc7722b39bbadb3b82347d414483566eaf8b6baf49b8288e0399921dd61e47cde4965bcaa6094a71992abd5f91b1a9e941e81edbc9a3164b95
7
- data.tar.gz: 1451ed88dc08719036a46a485fa965aa7d49175a48f47fbd7ffb0f328b354abfc05b9e98df8642689e60e0222a5dff77cee9e520e39f8bd1cd4dbcdbcb86c504
6
+ metadata.gz: 0439b71550c1d0f4524a9d8a852ab3add86522d9e95fc2a4cea4ef39ad0457fa07aadda830149345dcc53da72d93fa6711138ad2e81eebf561d11c00d5486ec7
7
+ data.tar.gz: 25135bf01635e1b8635f23d29b6723146b5fb81ac7c425670feb0e341857abfb622390f71ccd9a5bea2b3515f42b0a5593065eeb57beebd1a024ce13500f730e
@@ -1,3 +1,3 @@
1
1
  module EmailDomainInclusion
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -6,10 +6,17 @@ require "email_domain_inclusion/version"
6
6
  class EmailDomainInclusionValidator < ActiveModel::EachValidator
7
7
  def validate_each(record, attribute, value)
8
8
  domains = options[:allowed_domains]
9
- domain = Mail::Address.new(value).try(:domain).try(:downcase)
10
9
  domains = domains.call if domains.respond_to?(:call)
10
+ domain = domain_from_email(value)
11
11
  unless domains.include?(domain)
12
12
  record.errors[attribute] << options[:message] || "domain_not_in_list"
13
13
  end
14
14
  end
15
+
16
+ private
17
+ def domain_from_email(email)
18
+ Mail::Address.new(email).try(:domain).try(:downcase)
19
+ rescue Mail::Field::ParseError
20
+ nil
21
+ end
15
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: email_domain_inclusion
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Fecheyr