baan 0.2.1 → 0.3.0

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: d92c77253258b698fbea5e768bf158b3e8c23fce5802d04894701583a4218500
4
- data.tar.gz: 99b6a1744c27e4dc538ee98286c206a061383cd8bbfca9efaa30486fcfac8ee5
3
+ metadata.gz: 0b8ad705a66f9d4c7ad4a2ad8bf34c5f3f17a1bfd2f838a1f670194dbc2ba723
4
+ data.tar.gz: db2c5c8bde4ef1698c140e5dfbf26ad72cd171b0f0506807f5c4d9cd19de00c2
5
5
  SHA512:
6
- metadata.gz: fd721675fb317e90ae15080c4d2ee1a42f4ffdafaaeeebfc3bf2b003db60faf2be5a130d00f21c5ad49f749d0e26b831e311f25c53256df7ea763efb561a6a7d
7
- data.tar.gz: 2340af2a7f0570d67efc2d754999caf597573ad852333977da71d8eba04d64236a6386fe108a2ce0ca9bcd01430024a2d23167b4e886786a0d7d2200983cf047
6
+ metadata.gz: c62549142bb5eb9e35153a14f142ab972cca48f5384ab7a7241f3d4cb8a0fee12ecbfcb8a287ebe27686fea6586644811e1a6d98f361a00bf021890f84db0b70
7
+ data.tar.gz: ffc12fd7c8d1307a43aa4eec5fa234e768c7937d1772833c23f1ac29a339bbc63becf8d796ac5eedab72edd925aeabc5a2d32d852acb3efebded0a255bb4ef80
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.2.1"
2
+ ".": "0.3.0"
3
3
  }
data/.rubocop.yml CHANGED
@@ -8,7 +8,7 @@ inherit_gem:
8
8
 
9
9
  AllCops:
10
10
  NewCops: enable
11
- TargetRubyVersion: 3.4
11
+ TargetRubyVersion: 4.0
12
12
 
13
13
  Lint:
14
14
  Enabled: true
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.4.4
1
+ ruby 4.0.6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.0](https://github.com/open-ews/baan/compare/v0.2.1...v0.3.0) (2026-08-26)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add villages from PIN data ([#13](https://github.com/open-ews/baan/issues/13)) ([71a65d8](https://github.com/open-ews/baan/commit/71a65d8ad25a011ba89413dc008fc0f85cfbb256))
9
+
3
10
  ## [0.2.1](https://github.com/open-ews/baan/compare/v0.2.0...v0.2.1) (2025-07-01)
4
11
 
5
12
 
@@ -1,5 +1,5 @@
1
1
  module Baan
2
- AdministrativeDivision = Data.define(:code, :name_en, :name_lo, :subdivisions, :parent_division) do
2
+ AdministrativeDivision = Data.define(:code, :name_en, :name_lo, :subdivisions, :parent_division, :latitude, :longitude) do
3
3
  class << self
4
4
  def all
5
5
  data.values
data/lib/baan/cache.rb CHANGED
@@ -19,7 +19,7 @@ module Baan
19
19
  def dataset
20
20
  @dataset ||= begin
21
21
  data = parser.parse
22
- { Province => data.provinces, District => data.districts }
22
+ { Province => data.provinces, District => data.districts, Village => data.villages }
23
23
  end
24
24
  end
25
25
  end
data/lib/baan/district.rb CHANGED
@@ -3,5 +3,9 @@ module Baan
3
3
  def province
4
4
  parent_division
5
5
  end
6
+
7
+ def villages
8
+ subdivisions
9
+ end
6
10
  end
7
11
  end
data/lib/baan/parser.rb CHANGED
@@ -4,7 +4,7 @@ module Baan
4
4
  class Parser
5
5
  DEFAULT_DATA_FILE = Pathname(File.join(__dir__, "..", "data", "provinces.yml")).freeze
6
6
  DEFAULT_ROOT_KEY = "provinces".freeze
7
- Result = Data.define(:provinces, :districts)
7
+ Result = Data.define(:provinces, :districts, :villages)
8
8
 
9
9
  attr_reader :data_file, :root_key
10
10
 
@@ -16,19 +16,47 @@ module Baan
16
16
  def parse
17
17
  data = YAML.load_file(data_file).fetch(root_key)
18
18
  districts = []
19
+ villages = []
19
20
  provinces = data.map do |province_data|
20
- province = Province.new(parent_division: nil, subdivisions: [], **province_data.transform_keys(&:to_sym).except(:districts))
21
+ province = Province.new(
22
+ parent_division: nil,
23
+ subdivisions: [],
24
+ latitude: nil,
25
+ longitude: nil,
26
+ **province_data.transform_keys(&:to_sym).except(:districts)
27
+ )
21
28
 
22
29
  province_data.fetch("districts").map do |district_data|
23
- district = District.new(parent_division: province, subdivisions: [], **district_data.transform_keys(&:to_sym))
30
+ district = District.new(
31
+ parent_division: province,
32
+ subdivisions: [],
33
+ latitude: nil,
34
+ longitude: nil,
35
+ **district_data.transform_keys(&:to_sym).except(:villages)
36
+ )
37
+
38
+ district_data.fetch("villages", []).map do |village_data|
39
+ village = Village.new(
40
+ parent_division: district,
41
+ subdivisions: [],
42
+ latitude: nil,
43
+ longitude: nil,
44
+ **village_data.transform_keys(&:to_sym)
45
+ )
46
+ district.subdivisions << village
47
+ villages << village
48
+ village
49
+ end
50
+
24
51
  province.subdivisions << district
25
52
  districts << district
53
+ district
26
54
  end
27
55
 
28
56
  province
29
57
  end
30
58
 
31
- Result.new(provinces:, districts:)
59
+ Result.new(provinces:, districts:, villages:)
32
60
  end
33
61
  end
34
62
  end
data/lib/baan/province.rb CHANGED
@@ -3,5 +3,9 @@ module Baan
3
3
  def districts
4
4
  subdivisions
5
5
  end
6
+
7
+ def villages
8
+ districts.flat_map(&:villages)
9
+ end
6
10
  end
7
11
  end
data/lib/baan/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Baan
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -0,0 +1,11 @@
1
+ module Baan
2
+ class Village < AdministrativeDivision
3
+ def district
4
+ parent_division
5
+ end
6
+
7
+ def province
8
+ district.province
9
+ end
10
+ end
11
+ end
data/lib/baan.rb CHANGED
@@ -2,6 +2,7 @@ require_relative "baan/version"
2
2
  require_relative "baan/administrative_division"
3
3
  require_relative "baan/province"
4
4
  require_relative "baan/district"
5
+ require_relative "baan/village"
5
6
  require_relative "baan/cache"
6
7
  require_relative "baan/parser"
7
8