validator-nric 0.0.3 → 0.0.4

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
- SHA1:
3
- metadata.gz: 4519cfffee6a44ba64c924238e8e340a101896a5
4
- data.tar.gz: 9d6e02d7ac78bab245af14d9c2a3b790975b7458
2
+ SHA256:
3
+ metadata.gz: cec0caa9bd7fb0e495c18a1fea4ebb1632f694af52a2e5a442b42f790ba170aa
4
+ data.tar.gz: 5b9b3a5c5fda09703e61daad09ae1c0abbe683fd5ce66b02cda40f6d7fee210d
5
5
  SHA512:
6
- metadata.gz: 1e699c33aaa09b4dcdab9c5d0869cceed42faca104a0e0f0272e5f1e9a204770641d1270879df4077e3cca9e0519303d33f68cd199bd215488731481085c78e0
7
- data.tar.gz: 3d6d44c196a58ef6fc1753e5402d5beb48cd708bebd2b9952f1621e2fc692d8309057bd7f032af22c012c0ea339bdc1e0d251c083fd0d45d03e1b372b0f97d86
6
+ metadata.gz: a520bd88808ecb03e86db1412280d8b54e37449d12cc2530bad900df3f1dfa95f322d995d62367152af457aeacb958765cfe1c0e275d411d1001fb9f45c23f9f
7
+ data.tar.gz: 7fcc78da566007b736b2c182f9e3b22d6b725f1f5001c76f9ba3dad32d690d51becdd5f6c9ecd4dc20ebadf785ec0dfcf2b56e0b040fa876d15cd2dd7c5f2f9f
@@ -1,5 +1,5 @@
1
1
  module Validator
2
2
  module Nric
3
- VERSION = '0.0.3'.freeze
3
+ VERSION = '0.0.4'.freeze
4
4
  end
5
5
  end
@@ -19,7 +19,8 @@ module Validator
19
19
  # S - Born before 2000. S is the 19th alphabet denoting (1900 - 1999)
20
20
  # T - Born in 2000 and beyong. (2000 - 2099??)
21
21
  # F - Foreigners with pass issued before 2000
22
- # G - Foreigners with pass issued after 2000
22
+ # G - Foreigners with pass issued between 2000 and 2022
23
+ # M - Foreigners with pass issued after 2022
23
24
  #
24
25
  # Notice the it is backward of ABCDEFGHIZJ
25
26
  # For T and G, there is a shift of 4 places
@@ -27,6 +28,7 @@ module Validator
27
28
  T_TABLE = %w(G F E D C B A J Z I H).freeze
28
29
  F_TABLE = %w(X W U T R Q P N M L K).freeze
29
30
  G_TABLE = %w(R Q P N M L K X W U T).freeze
31
+ M_TABLE = %w(T R Q P N J L K X W U).freeze
30
32
 
31
33
  def mod(value)
32
34
  ic_array = value.each_char.map(&:to_i)
@@ -40,7 +42,7 @@ module Validator
40
42
  def check(nric)
41
43
  return false if nric.nil? || nric.size != 9
42
44
  nric = nric.upcase
43
- return false unless %w(S T F G).include?(nric[0])
45
+ return false unless %w(S T F G M).include?(nric[0])
44
46
 
45
47
  century_prefix = nric[0, 1]
46
48
  ic_number = nric[1, 7]
@@ -12,6 +12,13 @@ RSpec.describe Validator::Nric do
12
12
  expect(subject.check('111111111')).to be false
13
13
  expect(subject.check('XXXXXXXXX')).to be false
14
14
  end
15
+
16
+ it 'validates M series' do # taken from https://samliew.com/nric-generator
17
+ %w(M1987714T M1818317R M1090782Q M1803902P M1530517N M6193641J
18
+ M5140500L M7357583K M8721122X M1081075W M1954378U).each do |value|
19
+ expect(subject.check(value)).to be true
20
+ end
21
+ end
15
22
  end
16
23
 
17
24
  describe 'mod' do
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1.7'
22
- spec.add_development_dependency 'rake', '~> 10.0'
23
- spec.add_development_dependency 'rspec', '~> 3.1'
21
+ spec.add_development_dependency 'bundler', '~> 2'
22
+ spec.add_development_dependency 'rake', '~> 13'
23
+ spec.add_development_dependency 'rspec', '~> 3'
24
24
  spec.add_development_dependency 'rubocop'
25
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validator-nric
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - mech
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-29 00:00:00.000000000 Z
11
+ date: 2023-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: '2'
20
20
  type: :development
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: '1.7'
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13'
34
34
  type: :development
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: '10.0'
40
+ version: '13'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.1'
47
+ version: '3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.1'
54
+ version: '3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ homepage: https://github.com/mech/validator-nric
90
90
  licenses:
91
91
  - MIT
92
92
  metadata: {}
93
- post_install_message:
93
+ post_install_message:
94
94
  rdoc_options: []
95
95
  require_paths:
96
96
  - lib
@@ -105,9 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  - !ruby/object:Gem::Version
106
106
  version: '0'
107
107
  requirements: []
108
- rubyforge_project:
109
- rubygems_version: 2.6.10
110
- signing_key:
108
+ rubygems_version: 3.3.18
109
+ signing_key:
111
110
  specification_version: 4
112
111
  summary: Validates Singapore NRIC
113
112
  test_files: