social_security_number 0.1.6 → 0.1.7
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 042c2456a881cd2cb0e3cea300bc9fa892397a3a
|
|
4
|
+
data.tar.gz: 68975f6e3b98ef821c4b67551b72d0f6aec7e5dc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b2ba939c8082929ed99bae51224ac0586fdaf935704f7fa02a4a3462fae694f1e845ebb270e29d59f39201db7cf31fbece6706689bb749f39a75201105f5433d
|
|
7
|
+
data.tar.gz: 04ae85bdc5c073391f910b65bdd1dcecc9d336df9cbab480f02de5e71b7c487b3b177aeb9c7e2e8f2f38291ca9712d18d5756fc549b049a904cdf4f288167166
|
data/README.md
CHANGED
|
@@ -8,12 +8,11 @@ Find version information in the CHANGELOG.
|
|
|
8
8
|
|
|
9
9
|
* Belgium National Register Number (Rijksregisternummer)
|
|
10
10
|
* Canadian Social Insurance Numbers (SINs)
|
|
11
|
-
* Swiss social security numbers
|
|
12
11
|
* Chinese Resident Identity Card Number
|
|
13
12
|
* Czech birth numbers
|
|
14
13
|
* Germany Steuer-IdNr
|
|
15
14
|
* Denmark Personal Identification Number (Det Centrale Personregister (CPR))
|
|
16
|
-
*
|
|
15
|
+
* Estonian Personal Identification Code (Isikukood (IK))
|
|
17
16
|
* Finland Personal Identity Code (Finnish: henkilötunnus (HETU))
|
|
18
17
|
* France INSEE code
|
|
19
18
|
* Ireland Personal Public Service Number (PPS No)
|
|
@@ -24,7 +23,9 @@ Find version information in the CHANGELOG.
|
|
|
24
23
|
* Netherlands Citizen's Service Number (Burgerservicenummer)
|
|
25
24
|
* Norway birth number (Fødselsnummer)
|
|
26
25
|
* Pakistan computerised national identity card number (CNIC)
|
|
26
|
+
* Spain National Identity Document (Documento Nacional de Identidad (DNI)) number
|
|
27
27
|
* Sweden Personal Identity Number (Personnummer)
|
|
28
|
+
* Swiss social security numbers
|
|
28
29
|
* United Kingdom National Insurance number (NINO)
|
|
29
30
|
* United Kingdom National Health Service number
|
|
30
31
|
* United Kingdom CHI (Community Health Index) number
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
module SocialSecurityNumber
|
|
2
|
+
# SocialSecurityNumber::Ee validates Estonian Personal ID numbers (isikukood (IK))
|
|
3
|
+
# https://en.wikipedia.org/wiki/National_identification_number#Estonia
|
|
4
|
+
# https://et.wikipedia.org/wiki/Isikukood
|
|
5
|
+
class Ee < Country
|
|
6
|
+
def validate
|
|
7
|
+
@error = if !check_digits
|
|
8
|
+
'it is not number'
|
|
9
|
+
elsif !check_length(11)
|
|
10
|
+
'number should be length of 11'
|
|
11
|
+
elsif @parsed_civil_number[:gnd].to_i > 8
|
|
12
|
+
'gender number is not recognized'
|
|
13
|
+
elsif !birth_date
|
|
14
|
+
'number birth date is invalid'
|
|
15
|
+
elsif !check_control_sum
|
|
16
|
+
'number control sum invalid'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def year
|
|
21
|
+
if @parsed_civil_number
|
|
22
|
+
base = case @parsed_civil_number[:gnd].to_i
|
|
23
|
+
when 1..2 then 1800
|
|
24
|
+
when 3..4 then 1900
|
|
25
|
+
when 5..6 then 2000
|
|
26
|
+
when 7..8 then 2100
|
|
27
|
+
else
|
|
28
|
+
0
|
|
29
|
+
end
|
|
30
|
+
@year = base + @parsed_civil_number[:year].to_i
|
|
31
|
+
else
|
|
32
|
+
0
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
private
|
|
37
|
+
|
|
38
|
+
MODULUS = 11
|
|
39
|
+
|
|
40
|
+
CONTROLCIPHERS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1].freeze
|
|
41
|
+
|
|
42
|
+
REGEXP = /^(?<gnd>\d{1})#{SHORT_DATE_REGEXP}-?(?<indv>\d{3})(?<ctrl>\d{1})$/
|
|
43
|
+
|
|
44
|
+
def check_control_sum
|
|
45
|
+
count_last_number == @control_number.to_i
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def count_last_number
|
|
49
|
+
sum = calc_sum(@civil_number[0..9], CONTROLCIPHERS)
|
|
50
|
+
last_number = sum % MODULUS
|
|
51
|
+
sum - (last_number * MODULUS)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module SocialSecurityNumber
|
|
2
2
|
# SocialSecurityNumber::Validator
|
|
3
3
|
class Validator
|
|
4
|
-
SUPPORTED_COUNTRY_CODES = %w[BE CA CH CN CZ DE DK ES FI FR GB IE
|
|
4
|
+
SUPPORTED_COUNTRY_CODES = %w[BE CA CH CN CZ DE DK EE ES FI FR GB IE
|
|
5
5
|
IS IT LT MX NL NO PK SE US].freeze
|
|
6
6
|
|
|
7
7
|
attr_accessor :civil_number, :country_code, :error
|
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
|
10
10
|
spec.email = ["devops@samesystem.com"]
|
|
11
11
|
|
|
12
12
|
spec.summary = %q{It provides validators for national identification numbers.}
|
|
13
|
-
spec.description = %q{It provides validators for national identification numbers. Currently the following countries are supported: Belgium, Canada, China, Czech Republic, Denmark, Germany, Finland, France, Iceland, Ireland, Italy, Lithuania, Mexico, Netherlands, Norway, Pakistan, Spain, Sweden, Switzerland, United Kingdom, United States }
|
|
13
|
+
spec.description = %q{It provides validators for national identification numbers. Currently the following countries are supported: Belgium, Canada, China, Czech Republic, Denmark, Estonia, Germany, Finland, France, Iceland, Ireland, Italy, Lithuania, Mexico, Netherlands, Norway, Pakistan, Spain, Sweden, Switzerland, United Kingdom, United States }
|
|
14
14
|
spec.homepage = "https://github.com/samesystem/social_security_number"
|
|
15
15
|
spec.license = "MIT"
|
|
16
16
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: social_security_number
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- SameSystem
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-12-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -54,7 +54,7 @@ dependencies:
|
|
|
54
54
|
version: '3.0'
|
|
55
55
|
description: 'It provides validators for national identification numbers. Currently
|
|
56
56
|
the following countries are supported: Belgium, Canada, China, Czech Republic, Denmark,
|
|
57
|
-
Germany, Finland, France, Iceland, Ireland, Italy, Lithuania, Mexico, Netherlands,
|
|
57
|
+
Estonia, Germany, Finland, France, Iceland, Ireland, Italy, Lithuania, Mexico, Netherlands,
|
|
58
58
|
Norway, Pakistan, Spain, Sweden, Switzerland, United Kingdom, United States '
|
|
59
59
|
email:
|
|
60
60
|
- devops@samesystem.com
|
|
@@ -81,6 +81,7 @@ files:
|
|
|
81
81
|
- lib/social_security_number/country/cz.rb
|
|
82
82
|
- lib/social_security_number/country/de.rb
|
|
83
83
|
- lib/social_security_number/country/dk.rb
|
|
84
|
+
- lib/social_security_number/country/ee.rb
|
|
84
85
|
- lib/social_security_number/country/es.rb
|
|
85
86
|
- lib/social_security_number/country/fi.rb
|
|
86
87
|
- lib/social_security_number/country/fr.rb
|
|
@@ -119,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
119
120
|
version: '0'
|
|
120
121
|
requirements: []
|
|
121
122
|
rubyforge_project:
|
|
122
|
-
rubygems_version: 2.6.
|
|
123
|
+
rubygems_version: 2.6.14
|
|
123
124
|
signing_key:
|
|
124
125
|
specification_version: 4
|
|
125
126
|
summary: It provides validators for national identification numbers.
|