elfproef 0.1.2 → 0.1.3
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.
- data/lib/elfproef/bank_account_validator.rb +6 -6
- data/lib/elfproef/bsn_validator.rb +6 -6
- data/lib/elfproef/version.rb +1 -1
- metadata +11 -37
@@ -7,19 +7,17 @@ class BankAccountValidator < ::ActiveModel::EachValidator
|
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
9
|
def validate_each(record, attribute, value)
|
10
|
-
unless validate_account_number(value, options)
|
10
|
+
unless self.class.validate_account_number(value, options)
|
11
11
|
record.errors.add(attribute, :invalid_bank_account, options)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
private
|
16
|
-
|
17
15
|
# Takes the bank account number and returns true if:
|
18
16
|
#
|
19
17
|
# * The number is 1...7 digit ING account number (no verification is possible)
|
20
18
|
# * Is 9 or 10 digits and passes the 11-test
|
21
19
|
#
|
22
|
-
def validate_account_number(value, options = {})
|
20
|
+
def self.validate_account_number(value, options = {})
|
23
21
|
number = value.to_s.gsub(/\D/, '').strip
|
24
22
|
|
25
23
|
# Not valid if length is 0, 8 or > 10
|
@@ -29,9 +27,11 @@ class BankAccountValidator < ::ActiveModel::EachValidator
|
|
29
27
|
return true if (1..7).include?(number.length)
|
30
28
|
|
31
29
|
# Validate length 9 and 10 numbers as bank accounts
|
32
|
-
validate_with_eleven_test(number)
|
30
|
+
self.validate_with_eleven_test(number)
|
33
31
|
end
|
34
32
|
|
33
|
+
private
|
34
|
+
|
35
35
|
# Performs the actual 11-test on a
|
36
36
|
# 9 or 10 digit account number
|
37
37
|
#
|
@@ -44,7 +44,7 @@ class BankAccountValidator < ::ActiveModel::EachValidator
|
|
44
44
|
#
|
45
45
|
# If sum % 11 is 0, the number is valid, otherwise
|
46
46
|
# a typo has been made or the number is outright invalid.
|
47
|
-
def validate_with_eleven_test(number)
|
47
|
+
def self.validate_with_eleven_test(number)
|
48
48
|
# Make sure we have a 10 digit account number,
|
49
49
|
# Prefix with a 0 if necessary
|
50
50
|
number = "0#{number}" if number.length == 9
|
@@ -5,25 +5,25 @@ require "active_model/validations"
|
|
5
5
|
# Burgerservicenummer (Dutch social security number)
|
6
6
|
class BsnValidator < ActiveModel::EachValidator
|
7
7
|
def validate_each(record, attribute, value)
|
8
|
-
unless validate_bsn(value, options)
|
8
|
+
unless self.class.validate_bsn(value, options)
|
9
9
|
record.errors.add(attribute, :invalid_bsn, options)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
private
|
14
|
-
|
15
13
|
# A BSN is an 8 or 9 digit Dutch social security
|
16
14
|
# number.
|
17
|
-
def validate_bsn(value, options = {})
|
15
|
+
def self.validate_bsn(value, options = {})
|
18
16
|
bsn = value.to_s.gsub(/\D/, '').strip
|
19
17
|
|
20
18
|
# Only allow 8 or 9 digits
|
21
19
|
return false if bsn.length < 8 || bsn.length > 9
|
22
20
|
|
23
21
|
# Validate with the advanced eleven test
|
24
|
-
validate_with_advanced_eleven_test(bsn)
|
22
|
+
self.validate_with_advanced_eleven_test(bsn)
|
25
23
|
end
|
26
24
|
|
25
|
+
private
|
26
|
+
|
27
27
|
# Performs the advanced 11-test on a
|
28
28
|
# 8 or 9 digit account number
|
29
29
|
#
|
@@ -38,7 +38,7 @@ class BsnValidator < ActiveModel::EachValidator
|
|
38
38
|
#
|
39
39
|
# If sum % 11 is 0, the number is valid, otherwise
|
40
40
|
# a typo has been made or the number is outright invalid.
|
41
|
-
def validate_with_advanced_eleven_test(number)
|
41
|
+
def self.validate_with_advanced_eleven_test(number)
|
42
42
|
# Make sure we have 9 digits
|
43
43
|
number = "0#{number}" if number.size == 8
|
44
44
|
|
data/lib/elfproef/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elfproef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-05-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirement: &70232266117480 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,15 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ! '>='
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: '0'
|
25
|
+
version_requirements: *70232266117480
|
31
26
|
- !ruby/object:Gem::Dependency
|
32
27
|
name: rspec
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
28
|
+
requirement: &70232266117020 !ruby/object:Gem::Requirement
|
34
29
|
none: false
|
35
30
|
requirements:
|
36
31
|
- - ! '>='
|
@@ -38,15 +33,10 @@ dependencies:
|
|
38
33
|
version: '0'
|
39
34
|
type: :development
|
40
35
|
prerelease: false
|
41
|
-
version_requirements:
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - ! '>='
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0'
|
36
|
+
version_requirements: *70232266117020
|
47
37
|
- !ruby/object:Gem::Dependency
|
48
38
|
name: guard-rspec
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirement: &70232266116560 !ruby/object:Gem::Requirement
|
50
40
|
none: false
|
51
41
|
requirements:
|
52
42
|
- - ! '>='
|
@@ -54,15 +44,10 @@ dependencies:
|
|
54
44
|
version: '0'
|
55
45
|
type: :development
|
56
46
|
prerelease: false
|
57
|
-
version_requirements:
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- - ! '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
47
|
+
version_requirements: *70232266116560
|
63
48
|
- !ruby/object:Gem::Dependency
|
64
49
|
name: activemodel
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirement: &70232266116040 !ruby/object:Gem::Requirement
|
66
51
|
none: false
|
67
52
|
requirements:
|
68
53
|
- - ! '>='
|
@@ -70,12 +55,7 @@ dependencies:
|
|
70
55
|
version: '0'
|
71
56
|
type: :runtime
|
72
57
|
prerelease: false
|
73
|
-
version_requirements:
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - ! '>='
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '0'
|
58
|
+
version_requirements: *70232266116040
|
79
59
|
description: Validation for Dutch bank account numbers and Citizen Service Numbers
|
80
60
|
(BSN)
|
81
61
|
email:
|
@@ -111,21 +91,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
91
|
- - ! '>='
|
112
92
|
- !ruby/object:Gem::Version
|
113
93
|
version: '0'
|
114
|
-
segments:
|
115
|
-
- 0
|
116
|
-
hash: -3163671652779921677
|
117
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
95
|
none: false
|
119
96
|
requirements:
|
120
97
|
- - ! '>='
|
121
98
|
- !ruby/object:Gem::Version
|
122
99
|
version: '0'
|
123
|
-
segments:
|
124
|
-
- 0
|
125
|
-
hash: -3163671652779921677
|
126
100
|
requirements: []
|
127
101
|
rubyforge_project: elfproef
|
128
|
-
rubygems_version: 1.8.
|
102
|
+
rubygems_version: 1.8.17
|
129
103
|
signing_key:
|
130
104
|
specification_version: 3
|
131
105
|
summary: Validation for Dutch bank account numbers and Citizen Service Numbers (BSN)
|