indonesia 0.5.0 → 0.6.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
- SHA1:
3
- metadata.gz: 98bd53a629678b2b6b3efcb1b0ec1f999cbac954
4
- data.tar.gz: 84a1d037f453194cac1c2863f079561eb7bf82bf
2
+ SHA256:
3
+ metadata.gz: aa65565e8072d925524bb37fc4e4d771f43c8e66e969491262d366d07d63f141
4
+ data.tar.gz: e97af4cbc6b15cbc70566cd9c63a71e27e9af1310475ff7bb6ee90dfd90d5325
5
5
  SHA512:
6
- metadata.gz: bc2c87e67a0b2ed8ba9adfdd60a86fe8e20dbc4fa2817e34643a5c0cfba4d93925c0c8d9e28626d7aba84293bdbc75dae834c1cd628d303c5dbe1e2f7d65135b
7
- data.tar.gz: 078404b46d61f1fc192e984d90eefed0c346cd9f42d2d079fbb4884b2802b4135191b524249f3ec5c3889817a240298e1a4503efd5e3c0c4880e9b930cf45441
6
+ metadata.gz: 2a1f89d435ccd8269058ad742b5f6a8174f9aee0b7efa62f1ddd76624e1510ee56789b9011672ef75b50f8dc0dc08098837b7a73f2fe655e909c2e7d67dab61b
7
+ data.tar.gz: 4dddbefa4b4f2c5f7469d64c4881fc0ed9e40f9f9d7e64a72ffd4ed091807db3708d60a6d7352c618099b50bb1d6cef463a1c1518831715fe35d02b224dc1c98
data/.gitignore CHANGED
@@ -7,4 +7,3 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
- /rails_app
data/README.md CHANGED
@@ -44,11 +44,6 @@ Indonesia.regencies
44
44
  => [{:id=>1101, :province_id=>11, :name=>"KABUPATEN SIMEULUE"}, ...]
45
45
  ```
46
46
 
47
- * Get regencies by Province ID
48
- ```ruby
49
- Indonesia.regencies(11)
50
- ```
51
-
52
47
  * Get all districts
53
48
  ```ruby
54
49
  Indonesia.districts
@@ -56,12 +51,6 @@ Indonesia.districts
56
51
  # result
57
52
  => [{:id=>1101010, :regency_id=>1101, :name=>"TEUPAH SELATAN"}, ...]
58
53
  ```
59
-
60
- * Get all districts by Regency ID
61
- ```ruby
62
- Indonesia.districts(1101)
63
- ```
64
-
65
54
  * Get all villages
66
55
  ```ruby
67
56
  Indonesia.villages
@@ -70,54 +59,6 @@ Indonesia.villages
70
59
  => [{:id=>1101010001, :district_id=>1101010, :name=>"LATIUNG"},...]
71
60
  ```
72
61
 
73
- * Get all districts by district id
74
- ```ruby
75
- Indonesia.villages(1101010)
76
- ```
77
- ### Rails helper
78
-
79
- #### #options_for_select (:province, :regency, :district)
80
- ```ruby
81
- # provinces
82
- Indonesia.options_for_select(:province)
83
-
84
- # result
85
- => [["ACEH", 11], ["SUMATERA UTARA", 12], ["SUMATERA BARAT", 13], ...]
86
-
87
- # regencies
88
- Indonesia.options_for_select(:regency)
89
- # or
90
- Indonesia.options_for_select(:regency, 11) # 11 is province_id
91
-
92
- # result
93
- => [["KABUPATEN SIMEULUE", 1101], ["KABUPATEN ACEH SINGKIL", 1102], ...]
94
-
95
- # districts
96
- Indonesia.options_for_select(:district, 1101) # 1101 is regency_id
97
-
98
- # result
99
- => [["TEUPAH SELATAN", 1101010], ["SIMEULUE TIMUR", 1101020], ...]
100
- ```
101
- #### Generate for select options rails
102
- * Province
103
- ```erb
104
- <%= f.select :province_id, Indonesia.options_for_select(:province) %>
105
- ```
106
-
107
- * Regency
108
- ```erb
109
- <%= f.select :regency_id, Indonesia.options_for_select(:regency) %>
110
- or
111
- <%= f.select :regency_id, Indonesia.options_for_select(:regency, 11) %>
112
- ```
113
-
114
- * District
115
- ```erb
116
- <%= f.select :district_id, Indonesia.options_for_select(:district) %>
117
- or
118
- <%= f.select :district_id, Indonesia.options_for_select(:district, 1101) %>
119
- ```
120
-
121
62
  ### Rails migrations
122
63
 
123
64
  Generate models, migrations and save address data to database
@@ -1,35 +1,12 @@
1
1
  require 'csv'
2
2
 
3
- require 'indonesia/version'
4
- require 'indonesia/province'
5
- require 'indonesia/regency'
6
- require 'indonesia/district'
7
- require 'indonesia/village'
3
+ require 'indonesia/finder'
8
4
 
9
5
  module Indonesia
10
- def self.options_for_select(type = :province, parent_id = nil)
11
- case type
12
- when :province
13
- provinces.map { |province| [province[:name], province[:id]] }
14
- when :regency
15
- regencies(parent_id).map { |regency| [regency[:name], regency[:id]] }
16
- when :district
17
- districts(parent_id).map { |district| [district[:name], district[:id]] }
18
- else
19
- []
20
- end
21
- end
22
-
23
- def self.find(type, query)
24
- address = %w(province regency district)
25
- types = address + address.map(&:to_sym)
26
6
 
27
- if types.include? type
28
- # manual using pluralize
29
- type = type.to_s == 'regency' ? 'regencies' : "#{type}s"
30
- self.send(type).find { |t| t[:name].downcase == query.downcase }
31
- else
32
- nil
33
- end
7
+ def self.read_csv(file)
8
+ file_path = File.join(File.dirname(__FILE__), 'data/', "#{file}.csv")
9
+ CSV.read(file_path)
34
10
  end
11
+
35
12
  end
@@ -0,0 +1,31 @@
1
+ module Indonesia
2
+
3
+ def self.provinces
4
+ @provinces ||= begin
5
+ data = read_csv('provinces')
6
+ data.map { |r| { id: r[0].to_i, name: r[1] } }
7
+ end
8
+ end
9
+
10
+ def self.regencies
11
+ @regencies ||= begin
12
+ data = read_csv('regencies')
13
+ data.map { |r| { id: r[0].to_i, province_id: r[1].to_i, name: r[2] } }
14
+ end
15
+ end
16
+
17
+ def self.districts
18
+ @districts ||= begin
19
+ data = read_csv('districts')
20
+ data.map { |r| { id: r[0].to_i, regency_id: r[1].to_i, name: r[2] } }
21
+ end
22
+ end
23
+
24
+ def self.villages
25
+ @villages ||= begin
26
+ data = read_csv('villages')
27
+ data.map { |r| { id: r[0].to_i, district_id: r[1].to_i, name: r[2] } }
28
+ end
29
+ end
30
+
31
+ end
@@ -1,3 +1,3 @@
1
1
  module Indonesia
2
- VERSION = '0.5.0'.freeze
3
- end
2
+ VERSION = '0.6.0'.freeze
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indonesia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimas J. Taniawan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-20 00:00:00.000000000 Z
11
+ date: 2019-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,11 +96,8 @@ files:
96
96
  - lib/generators/indonesia/templates/models/province.rb
97
97
  - lib/generators/indonesia/templates/models/regency.rb
98
98
  - lib/indonesia.rb
99
- - lib/indonesia/district.rb
100
- - lib/indonesia/province.rb
101
- - lib/indonesia/regency.rb
99
+ - lib/indonesia/finder.rb
102
100
  - lib/indonesia/version.rb
103
- - lib/indonesia/village.rb
104
101
  homepage: https://github.com/dimasjt/indonesia
105
102
  licenses:
106
103
  - MIT
@@ -120,8 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
117
  - !ruby/object:Gem::Version
121
118
  version: '0'
122
119
  requirements: []
123
- rubyforge_project:
124
- rubygems_version: 2.6.11
120
+ rubygems_version: 3.0.1
125
121
  signing_key:
126
122
  specification_version: 4
127
123
  summary: Indonesia addresses
@@ -1,14 +0,0 @@
1
- module Indonesia
2
- def self.districts(regency_id = nil)
3
- @_districts ||= begin
4
- data = CSV.read('lib/data/districts.csv')
5
- data.map { |r| { id: r[0].to_i, regency_id: r[1].to_i, name: r[2] } }
6
- end
7
-
8
- if regency_id.nil?
9
- @_districts
10
- else
11
- @_districts.select { |d| d[:regency_id] == regency_id.to_i }
12
- end
13
- end
14
- end
@@ -1,8 +0,0 @@
1
- module Indonesia
2
- def self.provinces
3
- @_provinces ||= begin
4
- data = CSV.read('lib/data/provinces.csv')
5
- data.map { |r| { id: r[0].to_i, name: r[1] } }
6
- end
7
- end
8
- end
@@ -1,14 +0,0 @@
1
- module Indonesia
2
- def self.regencies(province_id = nil)
3
- @_regencies ||= begin
4
- data = CSV.read('lib/data/regencies.csv')
5
- data.map { |r| { id: r[0].to_i, province_id: r[1].to_i, name: r[2] } }
6
- end
7
-
8
- if province_id.nil?
9
- @_regencies
10
- else
11
- @_regencies.select { |r| r[:province_id] == province_id.to_i }
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- module Indonesia
2
- def self.villages(district_id = nil)
3
- @_villages ||= begin
4
- data = CSV.read('lib/data/villages.csv')
5
- data.map { |r| { id: r[0].to_i, district_id: r[1].to_i, name: r[2] } }
6
- end
7
-
8
- if district_id.nil?
9
- @_villages
10
- else
11
- @_villages.select { |v| v[:district_id] == district_id.to_i }
12
- end
13
- end
14
- end