email_domain_inclusion 1.0.1 → 1.1.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
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