common_validators 1.1.0 → 1.1.1

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: d988741f639f92a4b78583e01e4be5c63ad55bd1
4
- data.tar.gz: bd01cb9d66ad674994afa62b96465033fff88608
3
+ metadata.gz: 0636e8954956dd555d02f51f19635b2837a8eb37
4
+ data.tar.gz: 76d1469d5b1fd38aa4a41cd54901da7871e25165
5
5
  SHA512:
6
- metadata.gz: 7ba5d948547f2052aa1b1a7ef5895c1fc993a20be7bcd4234288f924c2b326806ee80e01e597aa8158762297c5977af46bac9f472d955c652f310eb286549578
7
- data.tar.gz: 527d1f8d6d86eccdfc1f7385e42cea26a98b1a3be8bf5a5b6951483f5b3dfdb3eb2ae0f9cc169d8989945cdc0a1484e20bea2f3a22885eb5e10f04ffa2d2b2f4
6
+ metadata.gz: 2efed94056579becd591685b04de708414585507165422ef7c7720b60d3f1b40bf0e87fa190cd281f61bf581cc965e55194f814c4742e87757a1cb186c46a7b7
7
+ data.tar.gz: e9e4cefad3b2617d1e39ea4c070a199648152d15a8333505ad12825ea5ab12c2645d2a5c6bd52713d738c03dae5e82281ced8c4c109acc9908f743c4de01373c
data/Guardfile CHANGED
@@ -5,6 +5,6 @@ guard :minitest do
5
5
  watch(%r{^test/.+_test\.rb$})
6
6
  watch('test/test_helper.rb') { "test" }
7
7
 
8
- watch(%r{^app/models/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
9
- watch(%r{^app/validators/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
8
+ watch(%r{^app/models/(.+)\.rb$}) { |m| "test/models/#{m[1]}_test.rb" }
9
+ watch(%r{^app/validators/(.+)\.rb$}) { |m| "test/models/#{m[1]}_test.rb" }
10
10
  end
@@ -9,7 +9,12 @@
9
9
  # validates :email, email_format: true # optional
10
10
  # validates :email, email_format: true, presence: true # required
11
11
  class EmailFormatValidator < ActiveModel::EachValidator
12
- EMAIL_REGEX = /\A(([^(),:;<>@\[\\\]\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,}))?\z/i
12
+ # Local part is basically a-z 0-9 and common symbols
13
+ # http://en.wikipedia.org/wiki/E-mail_address#Local_part
14
+ #
15
+ # Domain part is basically any unicode character while the TLD is still
16
+ # restricted to at least two characters in range of a-z
17
+ EMAIL_REGEX = /\A(([a-zA-Z0-9+_!#$%&'*+~=\/\{\}\|\`\^\?\-\.]+)@((?:[^(),:;<>@\[\\\]\s\.]+\.)+[a-z]{2,}))?\z/i
13
18
 
14
19
  def validate_each(record, attr_name, value)
15
20
  return if value.blank?
@@ -1,3 +1,3 @@
1
1
  module CommonValidators
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
@@ -43,11 +43,18 @@ class EmailFormatValidatorTest < ActiveSupport::TestCase
43
43
  assert_invalid_email "a[lice@example.com"
44
44
  assert_invalid_email "a\\lice@example.com"
45
45
  assert_invalid_email "a]lice@example.com"
46
+
47
+ # this causes Ruby email library to crash
48
+ assert_invalid_email "momodk1é@hotmail.fr"
46
49
  end
47
50
 
48
51
  test "valid email" do
49
52
  assert_valid_email ""
50
53
  assert_valid_email "alice@example.com"
54
+ assert_valid_email "alice+spam@example.com"
51
55
  assert_valid_email "alice@example.com"
56
+ assert_valid_email "ALICE_123@example.com"
57
+ assert_valid_email "ann.other@example.com"
58
+ assert_valid_email "hei@やる.ca"
52
59
  end
53
60
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: common_validators
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerry Shaw
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-16 00:00:00.000000000 Z
11
+ date: 2014-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails