nik-parser 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/nik_parser.rb +48 -0
  3. metadata +44 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e5576afde8b76c36717a0b8998115f686e0266c5ee760e1aa6a3de5a071a8e2b
4
+ data.tar.gz: 965637fec19037c0ef6c2f6e1a056b618d75882f79d71ff9155c2c422ba5dbe4
5
+ SHA512:
6
+ metadata.gz: a4db1b43c12640a5e93ba60f44df56e2f738eaad22054244fde12d4e8099510c31bf7c862a1b379cf90c4facbb578109b40a9f71cee82bdfb3354523f0144f1d
7
+ data.tar.gz: e27349475d3e5f87feea200f92e63f21b0146d1e1a3344948dd97085639f4281e4b9f00e0a0d05c2993db031e49c435151c4c088bd25f455431676366766f3ed
@@ -0,0 +1,48 @@
1
+ require 'json'
2
+ require 'date'
3
+
4
+ class NIKParser
5
+ def parse(nik)
6
+ return nil if nik.length != 16
7
+
8
+ province_code = nik[0..1]
9
+ regency_code = nik[0..3]
10
+ district_code = nik[0..5]
11
+
12
+ file = File.open "data/indonesian-region.json"
13
+ data = JSON.load file
14
+
15
+ province = data["province"][province_code]
16
+ regency = data["regency"][regency_code]
17
+ district = data["district"][district_code]
18
+
19
+ is_female = nik[6..7].to_i > 40
20
+ sex = is_female ? "F" : "M"
21
+
22
+ current_year = DateTime.now.year.to_s[2,2].to_i
23
+ nik_year = nik[10..11].to_i
24
+ date = is_female ? (nik[6..7].to_i - 40) : nik[6..7]
25
+ month = nik[8..9]
26
+ year = nik_year < current_year ? "20#{nik_year}" : "19#{nik_year}"
27
+
28
+ uniqcode = nik[12..16]
29
+
30
+ nik = {
31
+ "nik": nik,
32
+ "region": {
33
+ "province": province,
34
+ "regency": regency,
35
+ "district": district
36
+ },
37
+ "sex": sex,
38
+ "birth": {
39
+ "date": date,
40
+ "month": month,
41
+ "year": year
42
+ },
43
+ "uniqcode": uniqcode
44
+ }
45
+
46
+ return nik
47
+ end
48
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nik-parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Gilang R. Aprianto (GIZIPP)
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-09-29 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple NIK parser gem
14
+ email: gizipp.gizipp@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/nik_parser.rb
20
+ homepage: https://rubygems.org/gems/nik-parser
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.7.6
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: A simple NIK parser gem
44
+ test_files: []