nik-parser 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/nik_parser.rb +48 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -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
|
data/lib/nik_parser.rb
ADDED
@@ -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: []
|