pumi 0.20.1 → 0.20.2

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: d857da41c2b8a128557b1873beff3d2683d794e551d59dfd61965a9d8b3bc5e5
4
- data.tar.gz: 3d78f6d138a40503ffe9bddeaafb3b7e04c0261f167b9ba10d7c65ceea103a09
3
+ metadata.gz: dda968916deb1a189cdc8d34c36ffba69bd9c431779c09c19b0ce74e51077323
4
+ data.tar.gz: af0b679d64b9e8cccc4bfe05a70d6f4efdcc58948f7e6284d9c31c5e59fc43fb
5
5
  SHA512:
6
- metadata.gz: 24cd42c794943e7bdf7ae09fe04977f58e08e93e99823a93a3e7356f4c9988e106e37cb6526438c24a9b44c6057dd63ed9f9dcb40f8f08a171e617319c6d5943
7
- data.tar.gz: '0107993da6bad77d3233bd4b37f32cdb040d4ddf0327606edb11d1eee8cb1c818c1d0743e76dea1fb6a319cd4a6f03f459c39a964109791c8dfb48ab5406bf0d'
6
+ metadata.gz: 8764e9cbf4dec86829e938b2563cdc330df382f07d8128bb91105c27f87b8915542779f516aba9f0f56ffaa33c4f0ed7fe8b87e59dab1efabe9e285337fc5963
7
+ data.tar.gz: e8e93348ebec41b96b552d1256e0668ee3e29a4952cf24bb18d4022e506174710ba5644761f4c1df34261c799ad0ff56e5da8e9a8b7f8a53aa91b1b45c195d22
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.20.2](https://github.com/dwilkie/pumi/compare/v0.20.1...v0.20.2) (2023-08-08)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * NCDD parser ([fa41129](https://github.com/dwilkie/pumi/commit/fa411290c1c120150efdca01a8335ad3ae67add1))
9
+
3
10
  ## [0.20.1](https://github.com/dwilkie/pumi/compare/v0.20.0...v0.20.1) (2023-08-02)
4
11
 
5
12
 
@@ -27,6 +27,14 @@ module Pumi
27
27
  "ភូមិ" => AdministrativeUnit.new(en: "Village", km: "ភូមិ", latin: "Phum", code_length: 8, group: "villages")
28
28
  }.freeze
29
29
 
30
+ attr_accessor :existing_data
31
+
32
+ def initialize(data_files: default_data_files)
33
+ @existing_data = data_files.each_with_object({}) do |data_file, result|
34
+ result[data_file.type] = data_file.read
35
+ end
36
+ end
37
+
30
38
  def load_data!(source_dir: "tmp", output_dir: "data")
31
39
  source_files(source_dir).each do |file|
32
40
  parse_source_file(file)
@@ -37,6 +45,10 @@ module Pumi
37
45
 
38
46
  private
39
47
 
48
+ def data
49
+ @data ||= {}
50
+ end
51
+
40
52
  def parse_source_file(file)
41
53
  CSV.read(file, headers: CSV_HEADERS).each do |csv_row|
42
54
  row = build_row(csv_row)
@@ -44,14 +56,10 @@ module Pumi
44
56
  next unless row.code
45
57
  next if row.administrative_unit.code_length != row.code.length
46
58
 
47
- write_location(row)
59
+ add_data(row)
48
60
  end
49
61
  end
50
62
 
51
- def data
52
- @data ||= {}
53
- end
54
-
55
63
  def build_row(row)
56
64
  Row.new(
57
65
  code: parse_location_code(row),
@@ -69,9 +77,10 @@ module Pumi
69
77
  code
70
78
  end
71
79
 
72
- def write_location(row)
80
+ def add_data(row)
73
81
  data[row.administrative_unit.group] ||= {}
74
- data[row.administrative_unit.group][row.code] = {
82
+ data[row.administrative_unit.group][row.code] = existing_data.dig(row.administrative_unit.group, row.code) || {}
83
+ data[row.administrative_unit.group][row.code].merge!(
75
84
  "name" => {
76
85
  "km" => row.name_km,
77
86
  "latin" => row.name_latin
@@ -81,7 +90,7 @@ module Pumi
81
90
  "latin" => row.administrative_unit.latin,
82
91
  "en" => row.administrative_unit.en
83
92
  }
84
- }
93
+ )
85
94
  end
86
95
 
87
96
  def source_files(source_dir)
@@ -95,6 +104,14 @@ module Pumi
95
104
  DataFile.new(data_group).write(data.fetch(data_group), data_directory: output_dir)
96
105
  end
97
106
  end
107
+
108
+ def default_data_files
109
+ [
110
+ DataFile.new(:districts),
111
+ DataFile.new(:communes),
112
+ DataFile.new(:villages)
113
+ ]
114
+ end
98
115
  end
99
116
  end
100
117
  end
data/lib/pumi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pumi
2
- VERSION = "0.20.1".freeze
2
+ VERSION = "0.20.2".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pumi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.1
4
+ version: 0.20.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Wilkie
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-02 00:00:00.000000000 Z
11
+ date: 2023-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler