indonesia 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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