resident 0.0.14 → 0.0.15

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
  SHA256:
3
- metadata.gz: 90fe6f9288f6764f383ff5f8e74cc2a2e31854df1eaf42ebacd505ee586b9328
4
- data.tar.gz: 9fb294f619eeaf83066b315ab3daeedcc79cf713ff8b64ce188289313e54d554
3
+ metadata.gz: 10570376ab3b4bace53b841cef776196df2ca868f1b58894245f369ed961ee48
4
+ data.tar.gz: b0ee9c563dca36dc0ef8eea25022970487d157fb648cd0a1078ed4263a12b27a
5
5
  SHA512:
6
- metadata.gz: bfa89495903de491d933a9d76f603213f8a84d28b7a828de49f79c5c9cee25c598c18b298e02296afc134f161ac99386e36d49c05733976553a213b57922c36e
7
- data.tar.gz: 7c1725cea3d9e57f7efe7cebc63d91e461a1feac2edfbcffac1bad466b4cdce96d0f3a3c3463d5c851893ea0482434f7a0168c05ec364f1f4ffb1aec5f8a317f
6
+ metadata.gz: fc5284eb2da72ef4fdd8cc67eb2d1b220fd948b69c8e1e950a5f8c3bdc4d4d36fd8c79d6697d92dd1460f305ea1bd1fe98bc9b0a47a5ae87ddcc5ccf8b87ba54
7
+ data.tar.gz: 36c549365b79eeaebbfb20cbc01eac1fb70e788e5b284279e17dc35a0cf927d6ab17ad5c6b0c63e2b3a804436fc82c9143f6fa8d066ca86d71685482cb42ace0
@@ -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..]}#{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.15
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-27 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: []