resident 0.0.14 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90fe6f9288f6764f383ff5f8e74cc2a2e31854df1eaf42ebacd505ee586b9328
4
- data.tar.gz: 9fb294f619eeaf83066b315ab3daeedcc79cf713ff8b64ce188289313e54d554
3
+ metadata.gz: b88950d63ce102277753de2e80173b05f48beb6dec2c1b17f7dcad09f718142b
4
+ data.tar.gz: 4da846988b3cefb50c31fd2fbdfc19c8e08a0e868edefa6f14fa8582a89614de
5
5
  SHA512:
6
- metadata.gz: bfa89495903de491d933a9d76f603213f8a84d28b7a828de49f79c5c9cee25c598c18b298e02296afc134f161ac99386e36d49c05733976553a213b57922c36e
7
- data.tar.gz: 7c1725cea3d9e57f7efe7cebc63d91e461a1feac2edfbcffac1bad466b4cdce96d0f3a3c3463d5c851893ea0482434f7a0168c05ec364f1f4ffb1aec5f8a317f
6
+ metadata.gz: 414be1ee05d09211cf252703e6b2def77bd456d7c19f943492571ab191d99e0a676820ab152e696ba4e9bbe252f469f142247d283efc3c8ff570afea3ddbcb12
7
+ data.tar.gz: 76c0096684d742bb14b69775cac7f5d74f1a71ed6e6bc956f9287139a9bb040d6e7266bc0c651372729c7aa07ed15513bf551b1917c4944d667a2df4aa8bfd23
@@ -25,8 +25,22 @@ module NationalIdentificationNumber
25
25
 
26
26
  protected
27
27
 
28
+ def parse_twelve_digits
29
+ return unless @number.match(/\A(\d{4})(\d{2})(\d{2})(\d{4})\Z/)
30
+ year = $1
31
+ month = $2
32
+ day = $3
33
+ born = Date.new(year.to_i, month.to_i, day.to_i)
34
+ sep = born < Date.today.prev_year(100) ? '+' : '-'
35
+ @number = "#{year[2..-1]}#{month}#{day}#{sep}#{$4}"
36
+ rescue Date::Error
37
+ nil
38
+ end
39
+
28
40
  def repair
29
41
  super
42
+ return if parse_twelve_digits
43
+
30
44
  if @number.match(/\A(\d{0}|\d{2})(\d{6})(\-{0,1})(\d{4})\Z/)
31
45
  @number = "#{$2}-#{$4}"
32
46
  else
@@ -47,7 +61,7 @@ module NationalIdentificationNumber
47
61
  year = $1.to_i
48
62
  month = $2.to_i
49
63
  day = $3.to_i
50
- divider ||= $4 ||'-'
64
+ divider = $4 || '-'
51
65
  serial = $5.to_i
52
66
 
53
67
  today = Date.today
@@ -59,7 +73,6 @@ module NationalIdentificationNumber
59
73
  century = 1800
60
74
  else
61
75
  preliminary_age = age_for_dob(Date.parse("#{1900 + year}-#{month}-#{day}")) rescue 0
62
- #raise preliminary_age.inspect
63
76
  if preliminary_age > 99
64
77
  # It's unlikely that the person is older than 99, so assume a child when no divider was provided.
65
78
  century = 2000
@@ -62,7 +62,7 @@ describe Swedish, '.generate' do
62
62
  end
63
63
 
64
64
  context 'valid numbers' do
65
- it 'is the sanitize dnumber' do
65
+ it 'is the sanitize number' do
66
66
  expect(Swedish.new('19180123-2669').sanitize).to eq '180123-2669'
67
67
  expect(Swedish.new('00180123-2669').sanitize).to eq '180123-2669'
68
68
  expect(Swedish.new('000180123-2669').sanitize).to eq '180123-2669'
@@ -72,6 +72,11 @@ describe Swedish, '.generate' do
72
72
  expect(Swedish.new('450202-6950').sanitize).to eq '450202-6950'
73
73
  expect(Swedish.new('19450202-6950').sanitize).to eq '450202-6950'
74
74
  end
75
+
76
+ it 'adds - or + depending on century for twelve digit formats' do
77
+ expect(Swedish.new('202401275181').sanitize).to eq "240127-5181"
78
+ expect(Swedish.new('192401275181').sanitize).to eq "240127+5181"
79
+ end
75
80
  end
76
81
  end
77
82
 
@@ -125,7 +130,7 @@ describe Swedish, '.generate' do
125
130
  expect( Swedish.new('0501261853').to_s ).to eq '050126-1853'
126
131
  expect( Swedish.new('050126-1853').to_s ).to eq '050126-1853'
127
132
  expect( Swedish.new('0asdfghj501261853').to_s).to eq '050126-1853'
128
- expect( Swedish.new("190501261853").to_s ).to eq '050126-1853'
133
+ expect( Swedish.new("190501261853").to_s ).to eq '050126+1853'
129
134
  expect( Swedish.new("19050126-1853").to_s ).to eq '050126-1853'
130
135
  expect( Swedish.new("19050126-185d3").to_s ).to eq '050126-1853'
131
136
  expect( Swedish.new("19050126-185d3\n").to_s ).to eq '050126-1853'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resident
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bukowskis
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-29 00:00:00.000000000 Z
11
+ date: 2025-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -38,8 +38,8 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description:
42
- email:
41
+ description:
42
+ email:
43
43
  executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
@@ -63,7 +63,7 @@ homepage: http://github.com/bukowskis/national_identification_number/
63
63
  licenses:
64
64
  - MIT-LICENSE
65
65
  metadata: {}
66
- post_install_message:
66
+ post_install_message:
67
67
  rdoc_options: []
68
68
  require_paths:
69
69
  - lib
@@ -79,8 +79,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  requirements: []
82
- rubygems_version: 3.0.3.1
83
- signing_key:
82
+ rubygems_version: 3.4.10
83
+ signing_key:
84
84
  specification_version: 4
85
85
  summary: Validate National Identification Numbers.
86
86
  test_files: []