rails_validations 1.3 → 1.4.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 +4 -4
- data/README.markdown +7 -1
- data/config/locales/en.yml +3 -0
- data/config/locales/nl.yml +3 -0
- data/lib/validators/commerce_number_validator.rb +1 -1
- data/lib/validators/date_validator.rb +6 -2
- data/lib/validators/domain_validator.rb +2 -0
- data/lib/validators/email_validator.rb +2 -0
- data/lib/validators/vat_number_validator.rb +1 -1
- data/spec/spec_helper.rb +5 -2
- data/spec/validations/date_spec.rb +21 -0
- data/spec/validations/domain_spec.rb +3 -1
- data/spec/validations/email_spec.rb +2 -0
- data/spec/validations/iban_spec.rb +1 -0
- metadata +11 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8bec571f7a49e06d0474ab65d15f2e6313daae4d
|
|
4
|
+
data.tar.gz: 5e1e0f575fc60fc008966542af827038e1592e14
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0238a93909c34d8b8ad6707bbb3abb834c5aaaf89b01cf2fa02d1cf21f6b531fd52f2ceda0686e0f4c2506163e3bdb4f942df3ec18a63ad97314548574241256
|
|
7
|
+
data.tar.gz: f2d3c0499d7f7f5f7ef74094a5b9706db0463a15ab13dcbc3ce2646d1c11144e2e97f57f71940f2199001afb581c9c09623e368d578fc64fc77194b1bae4f75a
|
data/README.markdown
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
[](http://inch-ci.org/github/bluerail/rails_validations)
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
A few extra validations for Ruby on Rails.
|
|
7
|
+
A few extra validations for Ruby on Rails. Works with Ruby 1.9 and newer, and
|
|
8
|
+
Rails 3 and newer (including Rails 4).
|
|
8
9
|
|
|
9
10
|
We try to do the sane thing by not being too strict, when in doubt, we accept
|
|
10
11
|
input as being valid. We never want to reject valid input as invalid.
|
|
@@ -141,6 +142,11 @@ Currently implemented countries:
|
|
|
141
142
|
ChangeLog
|
|
142
143
|
=========
|
|
143
144
|
|
|
145
|
+
Version 1.4, 2015-08-11
|
|
146
|
+
-----------------------
|
|
147
|
+
- Make it work with Ruby 1.9 and Rails 3.0
|
|
148
|
+
|
|
149
|
+
|
|
144
150
|
Version 1.3, 2015-05-22
|
|
145
151
|
-----------------------
|
|
146
152
|
- Add `commerce_number` validation.
|
data/config/locales/en.yml
CHANGED
data/config/locales/nl.yml
CHANGED
|
@@ -3,7 +3,7 @@ class CommerceNumberValidator < ActiveModel::EachValidator
|
|
|
3
3
|
# keys are ISO-3366-1 alpha2
|
|
4
4
|
REGEXP = {
|
|
5
5
|
# KvK nummer; 8 digits. Allow space, -, and . for formatting
|
|
6
|
-
nl: ->
|
|
6
|
+
nl: ->(v) { v.gsub(/[.\- ]/, '') =~ /\A\d{8}\z/ },
|
|
7
7
|
}.freeze
|
|
8
8
|
|
|
9
9
|
|
|
@@ -34,11 +34,15 @@ class DateValidator < ActiveModel::EachValidator
|
|
|
34
34
|
elsif raw_value.respond_to? :to_date
|
|
35
35
|
begin
|
|
36
36
|
raw_value.to_date
|
|
37
|
-
rescue
|
|
37
|
+
rescue
|
|
38
38
|
false
|
|
39
39
|
end
|
|
40
40
|
else
|
|
41
|
-
|
|
41
|
+
begin
|
|
42
|
+
Date.parse raw_value
|
|
43
|
+
rescue
|
|
44
|
+
false
|
|
45
|
+
end
|
|
42
46
|
end
|
|
43
47
|
end
|
|
44
48
|
|
|
@@ -6,7 +6,7 @@ class VatNumberValidator < ActiveModel::EachValidator
|
|
|
6
6
|
# 'NL' + 9 digits + B + 2-digit company index – e.g. NL999999999B99
|
|
7
7
|
# Allow space, -, and . for formatting
|
|
8
8
|
# TODO: I think this also has a check digit?
|
|
9
|
-
nl: ->
|
|
9
|
+
nl: ->(v) { v.upcase.gsub(/[.\- ]/, '') =~ /\ANL\d{9}B\d{2}\z/ },
|
|
10
10
|
}.freeze
|
|
11
11
|
|
|
12
12
|
|
data/spec/spec_helper.rb
CHANGED
|
@@ -59,7 +59,10 @@ module ValidationsSpecHelper
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
def with_validation validate_string
|
|
62
|
-
described_class.clear_validators!
|
|
62
|
+
#Rails 4: described_class.clear_validators!
|
|
63
|
+
described_class.reset_callbacks(:validate)
|
|
64
|
+
described_class._validators.clear
|
|
65
|
+
|
|
63
66
|
described_class.class_eval "validates :v, #{validate_string}"
|
|
64
67
|
|
|
65
68
|
yield
|
|
@@ -75,7 +78,7 @@ RSpec::Matchers.define :be_invalid do |i18n_key, i18n_params={}|
|
|
|
75
78
|
match do |record|
|
|
76
79
|
record.valid? == false &&
|
|
77
80
|
record.errors.first.present? &&
|
|
78
|
-
record.errors.first[1] == I18n.t("rails_validations.#{i18n_key}",
|
|
81
|
+
record.errors.first[1] == I18n.t("rails_validations.#{i18n_key}", i18n_params)
|
|
79
82
|
end
|
|
80
83
|
end
|
|
81
84
|
|
|
@@ -77,4 +77,25 @@ describe ValidationsSpecHelper::Date do
|
|
|
77
77
|
expect(model(Date.today.to_s, (Date.today - 2.days).to_s)).to be_valid
|
|
78
78
|
end
|
|
79
79
|
end
|
|
80
|
+
|
|
81
|
+
it 'works when giving a string' do
|
|
82
|
+
with_validation 'date: true' do
|
|
83
|
+
[
|
|
84
|
+
'2015-01-01',
|
|
85
|
+
'01-09-2015',
|
|
86
|
+
].each do |str|
|
|
87
|
+
expect(model(str)).to be_valid
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it "sets an errors when a string isn't quite a valid date" do
|
|
93
|
+
with_validation 'date: true' do
|
|
94
|
+
[
|
|
95
|
+
'6-2015',
|
|
96
|
+
].each do |str|
|
|
97
|
+
expect(model(str)).to be_invalid('date.invalid')
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
80
101
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module ValidationsSpecHelper
|
|
@@ -38,7 +40,7 @@ describe ValidationsSpecHelper::Domain do
|
|
|
38
40
|
end
|
|
39
41
|
end
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
|
|
42
44
|
it 'works with :max_domain_parts' do
|
|
43
45
|
with_validation 'domain: { max_domain_parts: 3 }' do
|
|
44
46
|
expect(model('not.many')).to be_valid
|
metadata
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails_validations
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Martin Tournoij
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-08-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actionpack
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '3.0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - ">"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '3.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: activerecord
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - ">"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '3.0'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - "
|
|
38
|
+
- - ">"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '3.0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: iban-tools
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -109,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
109
109
|
requirements:
|
|
110
110
|
- - ">="
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
|
-
version: '
|
|
112
|
+
version: '1.9'
|
|
113
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - ">="
|