indonesian_province 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in indonesian_province.gemspec
4
+ gemspec
5
+ gem "rails", "~> 3.2.14"
6
+ # gem 'friendly_id # For future
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Gilang Mahardhika
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # IndonesianProvince
2
+
3
+ List All Indonesian Provinces
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'indonesian_province'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install indonesian_province
18
+
19
+ ## Usage
20
+
21
+ ### Rails 3.2.x
22
+
23
+ $ rails g indonesian_province
24
+
25
+ It will creates 5 files
26
+
27
+ db/migrate/20131011065521_create_provinces_table.rb
28
+ db/migrate/20131011065522_create_cities_table.rb
29
+ app/model/province.rb
30
+ app/model/city.rb
31
+ lib/tasks/indonesian_province.rake
32
+ doc/indonesian_province_data.json
33
+
34
+ then
35
+
36
+ $ rake db:migrate
37
+ $ rake indonesian_province:dump
38
+
39
+
40
+ ## Contributing
41
+
42
+ 1. Fork it
43
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
44
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
45
+ 4. Push to the branch (`git push origin my-new-feature`)
46
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'indonesian_province/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "indonesian_province"
8
+ spec.version = IndonesianProvince::VERSION
9
+ spec.authors = ["Gilang Mahardhika"]
10
+ spec.email = ["gilangmahardhika@gmail.com"]
11
+ spec.description = %q{List Indonesian Province and cities}
12
+ spec.summary = %q{List all provinces in Indonesia}
13
+ spec.homepage = "https://github.com/gilangmahardhika/indonesian_province"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ end
@@ -0,0 +1,24 @@
1
+ require 'rails/generators'
2
+ require "rails/generators/active_record"
3
+
4
+ # This generator creates Province And Cities Migration
5
+ class IndonesianProvinceGenerator < ActiveRecord::Generators::Base
6
+ source_root File.expand_path("../templates", __FILE__)
7
+ argument :name, type: :string, default: 'random_name'
8
+ def copy_files
9
+ # Copy migration Files
10
+ migration_template 'provinces_migration.rb', 'db/migrate/create_provinces_table.rb'
11
+ migration_template 'cities_migration.rb', 'db/migrate/create_cities_table.rb'
12
+
13
+ # Copy Model Files
14
+ copy_file "province.rb", "app/model/province.rb"
15
+ copy_file "city.rb", "app/model/city.rb"
16
+
17
+ # Copy rake task
18
+ copy_file "indonesian_province.rake", "lib/tasks/indonesian_province.rake"
19
+
20
+ # Copy Json
21
+ copy_file "indonesian_province_data.json", 'doc/indonesian_province_data.json'
22
+ end
23
+
24
+ end
@@ -0,0 +1,9 @@
1
+ class CreateCitiesTable < ActiveRecord::Migration
2
+ def change
3
+ create_table :cities do |t|
4
+ t.string :name, :null => false
5
+ t.integer :province_id
6
+ end
7
+ add_index :cities, :name
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ class City < ActiveRecord::Base
2
+ attr_accessible :name, :province_id
3
+
4
+ belongs_to :province
5
+
6
+ validates_presence_of :name
7
+
8
+ end
@@ -0,0 +1,13 @@
1
+ namespace :indonesian_province do
2
+ desc "Dump all data"
3
+ task :dump => :environment do
4
+ data_file = File.read(Rails.root.join('doc/indonesian_province_data.json'))
5
+ datas = JSON.parse(data_file)
6
+ datas.each do |data|
7
+ province_data = Province.create(:name => data["name"])
8
+ data["cities"].each do |city|
9
+ City.create(:name => city["name"], :province_id => province_data.id)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,664 @@
1
+
2
+ [{
3
+ "name": "Nangroe Aceh Darussalam",
4
+ "cities": [
5
+ { "name": "Kabupaten Aceh Barat" },
6
+ { "name": "Kabupaten Aceh Barat Daya" },
7
+ { "name": "Kabupaten Aceh Besar" },
8
+ { "name": "Kabupaten Aceh Jaya" },
9
+ { "name": "Kabupaten Aceh Selatan" },
10
+ { "name": "Kabupaten Aceh Singkil" },
11
+ { "name": "Kabupaten Aceh Tamiang" },
12
+ { "name": "Kabupaten Aceh Tengah" },
13
+ { "name": "Kabupaten Aceh Tenggara" },
14
+ { "name": "Kabupaten Aceh Timur" },
15
+ { "name": "Kabupaten Aceh Utara" },
16
+ { "name": "Kabupaten Bener Meriah" },
17
+ { "name": "Kabupaten Bireuen" },
18
+ { "name": "Kabupaten Gayo Lues" },
19
+ { "name": "Kabupaten Nagan Raya" },
20
+ { "name": "Kabupaten Pidie" },
21
+ { "name": "Kabupaten Pidie Jaya" },
22
+ { "name": "Kabupaten Simeulue" },
23
+ { "name": "Kota Banda Aceh" },
24
+ { "name": "Kota Langsa" },
25
+ { "name": "Kota Lhokseumawe" },
26
+ { "name": "Kota Sabang" },
27
+ { "name": "Kota Subulussalam" }
28
+ ]
29
+ }],
30
+ [{
31
+ "name": "Sumatera Utara",
32
+ "cities": [
33
+ { "name": "Kabupaten Asahan" },
34
+ { "name": "Kabupaten Batubara" },
35
+ { "name": "Kabupaten Dairi" },
36
+ { "name": "Kabupaten Deli Serdang" },
37
+ { "name": "Kabupaten Humbang Hasundutan" },
38
+ { "name": "Kabupaten Karo" },
39
+ { "name": "Kabupaten Labuhanbatu" },
40
+ { "name": "Kabupaten Labuhanbatu Selatan" },
41
+ { "name": "Kabupaten Labuhanbatu Utara" },
42
+ { "name": "Kabupaten Langkat" },
43
+ { "name": "Kabupaten Mandailing Natal" },
44
+ { "name": "Kabupaten Nias" },
45
+ { "name": "Kabupaten Nias Barat" },
46
+ { "name": "Kabupaten Nias Selatan" },
47
+ { "name": "Kabupaten Nias Utara" },
48
+ { "name": "Kabupaten Padang Lawas" },
49
+ { "name": "Kabupaten Padang Lawas Utara" },
50
+ { "name": "Kabupaten Pakpak Bharat" },
51
+ { "name": "Kabupaten Samosir" },
52
+ { "name": "Kabupaten Serdang Bedagai" },
53
+ { "name": "Kabupaten Simalungun" },
54
+ { "name": "Kabupaten Tapanuli Selatan" },
55
+ { "name": "Kabupaten Tapanuli Tengah" },
56
+ { "name": "Kabupaten Tapanuli Utara" },
57
+ { "name": "Kabupaten Toba Samosir" },
58
+ { "name": "Kota Binjai" },
59
+ { "name": "Kota Gunungsitoli" },
60
+ { "name": "Kota Medan" },
61
+ { "name": "Kota Padangsidempuan" },
62
+ { "name": "Kota Pematangsiantar" },
63
+ { "name": "Kota Sibolga" },
64
+ { "name": "Kota Tanjungbalai" },
65
+ { "name": "Kota Medan" },
66
+ { "name": "Kota Tebing Tinggi" },
67
+ ]
68
+ }],
69
+ [{
70
+ "name": "Bengkulu",
71
+ "cities": [
72
+ { "name": "Bengkulu Selatan" },
73
+ { "name": "Bengkulu Tengah" },
74
+ { "name": "Bengkulu Utara" },
75
+ { "name": "Kabupaten Kaur" },
76
+ { "name": "Kabupaten Kepahiang" },
77
+ { "name": "Kabupaten Lebong" },
78
+ { "name": "Kabupaten Mukomuko" },
79
+ { "name": "Kabupaten Rejang Lebong" },
80
+ { "name": "Kabupaten Seluma" },
81
+ { "name": "Kota Bengkulu" }
82
+ ]
83
+ }],
84
+ [{
85
+ "name": "Jambi",
86
+ "cities": [
87
+ { "name": "Kabupaten Bungo" },
88
+ { "name": "Kabupaten Batanghari" },
89
+ { "name": "Kabupaten Kerinci" },
90
+ { "name": "Kabupaten Merangin" },
91
+ { "name": "Kabupaten Muaro Jambi" },
92
+ { "name": "Kabupaten Sarolangun" },
93
+ { "name": "Kabupaten Tanjung Jabung Barat" },
94
+ { "name": "Kabupaten Tanjung Jabung Timur" },
95
+ { "name": "Kabupaten Tebo" },
96
+ { "name": "Kota Jambi" },
97
+ { "name": "Kota Sungai Penuh" }
98
+ ]
99
+ }],
100
+ [{
101
+ "name": "Riau",
102
+ "cities": [
103
+ { "name": "Kabupaten Bengkalis" },
104
+ { "name": "Kabupaten Indragiri Hilir" },
105
+ { "name": "Kabupaten Indragiri Hulu" },
106
+ { "name": "Kabupaten Kampar" },
107
+ { "name": "Kabupaten Kuantan Singingi" },
108
+ { "name": "Kabupaten Pelalawan" },
109
+ { "name": "Kabupaten Rokan Hilir" },
110
+ { "name": "Kabupaten Rokan Hulu" },
111
+ { "name": "Kabupaten Siak" },
112
+ { "name": "Kabupaten Kepulauan Meranti" },
113
+ { "name": "Kota Dumai" },
114
+ { "name": "Kota Pekanbaru" }
115
+ ]
116
+ }],
117
+ [{
118
+ "name": "Sumatera Barat",
119
+ "cities": [
120
+ { "name": "Kabupaten Agam" },
121
+ { "name": "Kabupaten Dharmasraya" },
122
+ { "name": "Kabupaten Kepulauan Mentawai" },
123
+ { "name": "Kabupaten Lima Puluh Kota" },
124
+ { "name": "Kabupaten Padang Pariaman" },
125
+ { "name": "Kabupaten Pasaman" },
126
+ { "name": "Kabupaten Pasaman Barat" },
127
+ { "name": "Kabupaten Pesisir Selatan" },
128
+ { "name": "Kabupaten Sijunjung" },
129
+ { "name": "Kabupaten Solok" },
130
+ { "name": "Kabupaten Solok Selatan" },
131
+ { "name": "Kabupaten Tanah Datar" },
132
+ { "name": "Kota Bukittinggi" },
133
+ { "name": "Kota Padang" },
134
+ { "name": "Kota Padangpanjang" },
135
+ { "name": "Kota Pariaman" },
136
+ { "name": "Kota Payakumbuh" },
137
+ { "name": "Kota Sawahlunto" },
138
+ { "name": "Kota Solok" }
139
+ ]
140
+ }],
141
+ [{
142
+ "name": "Sumatera Selatan",
143
+ "cities": [
144
+ { "name": "Kabupaten Banyuasin" },
145
+ { "name": "Kabupaten Empat Lawang" },
146
+ { "name": "Kabupaten Lahat" },
147
+ { "name": "Kabupaten Muara Enim" },
148
+ { "name": "Kabupaten Musi Banyuasin" },
149
+ { "name": "Kabupaten Musi Rawas" },
150
+ { "name": "Kabupaten Ogan Ilir" },
151
+ { "name": "Kabupaten Ogan Komering Ilir" },
152
+ { "name": "Kabupaten Ogan Komering Ulu" },
153
+ { "name": "Kabupaten Ogan Komering Ulu Selatan" },
154
+ { "name": "Kabupaten Ogan Komering Ulu Timur" },
155
+ { "name": "Kota Lubuklinggau" },
156
+ { "name": "Kota Pagar Alam" },
157
+ { "name": "Kota Palembang" },
158
+ { "name": "Kota Prabumulih" }
159
+ ]
160
+ }],
161
+ [{
162
+ "name": "Lampung",
163
+ "cities": [
164
+ { "name": "Kabupaten Lampung Barat" },
165
+ { "name": "Kabupaten Lampung Selatan" },
166
+ { "name": "Kabupaten Lampung Tengah" },
167
+ { "name": "Kabupaten Lampung Timur" },
168
+ { "name": "Kabupaten Lampung Utara" },
169
+ { "name": "Kabupaten Mesuji" },
170
+ { "name": "Kabupaten Pesawaran" },
171
+ { "name": "Kabupaten Pringsewu" },
172
+ { "name": "Kabupaten Tanggamus" },
173
+ { "name": "Kabupaten Tulang Bawang" },
174
+ { "name": "Kabupaten Tulang Bawang Barat" },
175
+ { "name": "Kabupaten Way Kanan" },
176
+ { "name": "Kota Bandar Lampung" },
177
+ { "name": "Kota Metro" }
178
+ ]
179
+ }],
180
+ [{
181
+ "name": "Kepulauan Bangka Belitung",
182
+ "cities": [
183
+ { "name": "Kabupaten Bangka" },
184
+ { "name": "Kabupaten Bangka Barat" },
185
+ { "name": "Kabupaten Bangka Selatan" },
186
+ { "name": "Kabupaten Bangka Tengah" },
187
+ { "name": "Kabupaten Belitung" },
188
+ { "name": "Kabupaten Belitung Timur" },
189
+ { "name": "Kota Pangkal Pinang" }
190
+ ]
191
+ }],
192
+ [{
193
+ "name": "Kepulauan Riau",
194
+ "cities": [
195
+ { "name": "Kabupaten Bintan" },
196
+ { "name": "Kabupaten Karimun" },
197
+ { "name": "Kabupaten Kepulauan Anambas" },
198
+ { "name": "Kabupaten Lingga" },
199
+ { "name": "Kabupaten Natuna" },
200
+ { "name": "Kota Batam" },
201
+ { "name": "Kota Tanjung Pinang" }
202
+ ]
203
+ }],
204
+ [{
205
+ "name": "Banten",
206
+ "cities": [
207
+ { "name": "Kabupaten Tangerang" },
208
+ { "name": "Kabupaten Serang" },
209
+ { "name": "Kabupaten Lebak" },
210
+ { "name": "Kabupaten Pandeglang" },
211
+ { "name": "Kota Tangerang" },
212
+ { "name": "Kota Serang" },
213
+ { "name": "Kota Cilegon" },
214
+ { "name": "Kota Tangerang Selatan" }
215
+ ]
216
+ }],
217
+ [{
218
+ "name": "Jawa Barat",
219
+ "cities": [
220
+ { "name": "Kabupaten Bandung" },
221
+ { "name": "Kabupaten Bandung Barat" },
222
+ { "name": "Kabupaten Bekasi" },
223
+ { "name": "Kabupaten Bogor" },
224
+ { "name": "Kabupaten Ciamis" },
225
+ { "name": "Kabupaten Cianjur" },
226
+ { "name": "Kabupaten Cirebon" },
227
+ { "name": "Kabupaten Garut" },
228
+ { "name": "Kabupaten Indramayu" },
229
+ { "name": "Kabupaten Karawang" },
230
+ { "name": "Kabupaten Kuningan" },
231
+ { "name": "Kabupaten Majalengka" },
232
+ { "name": "Kabupaten Purwakarta" },
233
+ { "name": "Kabupaten Subang" },
234
+ { "name": "Kabupaten Sukabumi" },
235
+ { "name": "Kabupaten Sumedang" },
236
+ { "name": "Kabupaten Tasikmalaya" },
237
+ { "name": "Kota Bandung" },
238
+ { "name": "Kota Banjar" },
239
+ { "name": "Kota Bekasi" },
240
+ { "name": "Kota Bogor" },
241
+ { "name": "Kota Cimahi" },
242
+ { "name": "Kota Cirebon" },
243
+ { "name": "Kota Depok" },
244
+ { "name": "Kota Sukabumi" },
245
+ { "name": "Kota Tasikmalaya" }
246
+ ]
247
+ }],
248
+ [{
249
+ "name": "DKI Jakarta",
250
+ "cities": [
251
+ { "name": "Kepulauan Seribu" },
252
+ { "name": "Jakarta Barat" },
253
+ { "name": "Jakarta Pusat" },
254
+ { "name": "Jakarta Selatan" },
255
+ { "name": "Jakarta Timur" },
256
+ { "name": "Jakarta Utara" }
257
+ ]
258
+ }],
259
+ [{
260
+ "name": "Jawa Tengah",
261
+ "cities": [
262
+ { "name": "Kabupaten Banjarnegara" },
263
+ { "name": "Kabupaten Banyumas" },
264
+ { "name": "Kabupaten Batang" },
265
+ { "name": "Kabupaten Blora" },
266
+ { "name": "Kabupaten Boyolali" },
267
+ { "name": "Kabupaten Brebes" },
268
+ { "name": "Kabupaten Cilacap" },
269
+ { "name": "Kabupaten Demak" },
270
+ { "name": "Kabupaten Grobogan" },
271
+ { "name": "Kabupaten Jepara" },
272
+ { "name": "Kabupaten Karanganyar" },
273
+ { "name": "Kabupaten Kebumen" },
274
+ { "name": "Kabupaten Kendal" },
275
+ { "name": "Kabupaten Klaten" },
276
+ { "name": "Kabupaten Kudus" },
277
+ { "name": "Kabupaten Magelang" },
278
+ { "name": "Kabupaten Pati" },
279
+ { "name": "Kabupaten Pekalongan" },
280
+ { "name": "Kabupaten Pemalang" },
281
+ { "name": "Kabupaten Purbalingga" },
282
+ { "name": "Kabupaten Purworejo" },
283
+ { "name": "Kabupaten Rembang" },
284
+ { "name": "Kabupaten Semarang" },
285
+ { "name": "Kabupaten Sragen" },
286
+ { "name": "Kabupaten Sukoharjo" },
287
+ { "name": "Kabupaten Tegal" },
288
+ { "name": "Kabupaten Temanggung" },
289
+ { "name": "Kabupaten Wonogiri" },
290
+ { "name": "Kabupaten Wonosobo" },
291
+ { "name": "Kota Magelang" },
292
+ { "name": "Kota Pekalongan" },
293
+ { "name": "Kota Salatiga" },
294
+ { "name": "Kota Semarang" },
295
+ { "name": "Kota Surakarta" },
296
+ { "name": "Kota Tegal" }
297
+ ]
298
+ }],
299
+ [{
300
+ "name": "Jawa Timur",
301
+ "cities": [
302
+ { "name": "Kabupaten Bangkalan" },
303
+ { "name": "Kabupaten Banyuwangi" },
304
+ { "name": "Kabupaten Blitar" },
305
+ { "name": "Kabupaten Bojonegoro" },
306
+ { "name": "Kabupaten Bondowoso" },
307
+ { "name": "Kabupaten Gresik" },
308
+ { "name": "Kabupaten Jember" },
309
+ { "name": "Kabupaten Jombang" },
310
+ { "name": "Kabupaten Kediri" },
311
+ { "name": "Kabupaten Lamongan" },
312
+ { "name": "Kabupaten Lumajang" },
313
+ { "name": "Kabupaten Madiun" },
314
+ { "name": "Kabupaten Magetan" },
315
+ { "name": "Kabupaten Malang" },
316
+ { "name": "Kabupaten Mojokerto" },
317
+ { "name": "Kabupaten Nganjuk" },
318
+ { "name": "Kabupaten Ngawi" },
319
+ { "name": "Kabupaten Pacitan" },
320
+ { "name": "Kabupaten Pamekasan" },
321
+ { "name": "Kabupaten Pasuruan" },
322
+ { "name": "Kabupaten Ponorogo" },
323
+ { "name": "Kabupaten Probolinggo" },
324
+ { "name": "Kabupaten Sampang" },
325
+ { "name": "Kabupaten Sidoarjo" },
326
+ { "name": "Kabupaten Situbondo" },
327
+ { "name": "Kabupaten Sumenep" },
328
+ { "name": "Kabupaten Trenggalek" },
329
+ { "name": "Kabupaten Tuban" },
330
+ { "name": "Kabupaten Tulungagung" },
331
+ { "name": "Kota Batu" },
332
+ { "name": "Kota Blitar" },
333
+ { "name": "Kota Kediri" },
334
+ { "name": "Kota Madiun" },
335
+ { "name": "Kota Malang" },
336
+ { "name": "Kota Mojokerto" },
337
+ { "name": "Kota Pasuruan" },
338
+ { "name": "Kota Probolinggo" },
339
+ { "name": "Kota Surabaya" }
340
+ ]
341
+ }],
342
+ [{
343
+ "name": "Daerah Istimewa Yogyakarta",
344
+ "cities": [
345
+ { "name": "Kabupaten Bantul" },
346
+ { "name": "Kabupaten Gunung Kidul" },
347
+ { "name": "Kabupaten Kulon Progo" },
348
+ { "name": "Kabupaten Sleman" },
349
+ { "name": "Kota Yogyakarta" }
350
+ ]
351
+ }],
352
+ [{
353
+ "name": "Bali",
354
+ "cities": [
355
+ { "name": "Kabupaten Badung" },
356
+ { "name": "Kabupaten Bangli" },
357
+ { "name": "Kabupaten Buleleng" },
358
+ { "name": "Kabupaten Gianyar" },
359
+ { "name": "Kabupaten Jembrana" },
360
+ { "name": "Kabupaten Karangasem" },
361
+ { "name": "Kabupaten Klungkung" },
362
+ { "name": "Kabupaten Tabanan" },
363
+ { "name": "Kota Denpasar" }
364
+ ]
365
+ }],
366
+ [{
367
+ "name": "Nusa Tenggara Barat",
368
+ "cities": [
369
+ { "name": "Kabupaten Bima" },
370
+ { "name": "Kabupaten Dompu" },
371
+ { "name": "Kabupaten Lombok Barat" },
372
+ { "name": "Kabupaten Lombok Tengah" },
373
+ { "name": "Kabupaten Lombok Timur" },
374
+ { "name": "Kabupaten Lombok Utara" },
375
+ { "name": "Kabupaten Sumbawa" },
376
+ { "name": "Kabupaten Sumbawa Barat" },
377
+ { "name": "Kota Bima" },
378
+ { "name": "Kota Mataram" }
379
+ ]
380
+ }],
381
+ [{
382
+ "name": "Nusa Tenggara Timur",
383
+ "cities": [
384
+ { "name": "Kabupaten Alor" },
385
+ { "name": "Kabupaten Belu" },
386
+ { "name": "Kabupaten Ende" },
387
+ { "name": "Kabupaten Flores Timur" },
388
+ { "name": "Kabupaten Kupang" },
389
+ { "name": "Kabupaten Lembata" },
390
+ { "name": "Kabupaten Manggarai" },
391
+ { "name": "Kabupaten Manggarai Barat" },
392
+ { "name": "Kabupaten Manggarai Timur" },
393
+ { "name": "Kabupaten Ngada" },
394
+ { "name": "Kabupaten Nagekeo" },
395
+ { "name": "Kabupaten Rote Ndao" },
396
+ { "name": "Kabupaten Sabu Raijua" },
397
+ { "name": "Kabupaten Sikka" },
398
+ { "name": "Kabupaten Sumba Barat" },
399
+ { "name": "Kabupaten Sumba Barat Daya" },
400
+ { "name": "Kabupaten Sumba Tengah" },
401
+ { "name": "Kabupaten Sumba Timur" },
402
+ { "name": "Kabupaten Timor Tengah Selatan" },
403
+ { "name": "Kabupaten Timor Tengah Utara" },
404
+ { "name": "Kota Kupang" }
405
+ ]
406
+ }],
407
+ [{
408
+ "name": "Kalimantan Barat",
409
+ "cities": [
410
+ { "name": "Kabupaten Bengkayang" },
411
+ { "name": "Kabupaten Kapuas Hulu" },
412
+ { "name": "Kabupaten Kayong Utara" },
413
+ { "name": "Kabupaten Ketapang" },
414
+ { "name": "Kabupaten Kubu Raya" },
415
+ { "name": "Kabupaten Landak" },
416
+ { "name": "Kabupaten Melawi" },
417
+ { "name": "Kabupaten Pontianak" },
418
+ { "name": "Kabupaten Sambas" },
419
+ { "name": "Kabupaten Sanggau" },
420
+ { "name": "Kabupaten Sekadau" },
421
+ { "name": "Kabupaten Sintang" },
422
+ { "name": "Kota Pontianak" },
423
+ { "name": "Kota Singkawang" }
424
+ ]
425
+ }],
426
+ [{
427
+ "name": "Kalimantan Selatan",
428
+ "cities":[
429
+ { "name": "Kabupaten Balangan" },
430
+ { "name": "Kabupaten Banjar" },
431
+ { "name": "Kabupaten Barito Kuala" },
432
+ { "name": "Kabupaten Hulu Sungai Selatan" },
433
+ { "name": "Kabupaten Hulu Sungai Tengah" },
434
+ { "name": "Kabupaten Hulu Sungai Utara" },
435
+ { "name": "Kabupaten Kotabaru" },
436
+ { "name": "Kabupaten Tabalong" },
437
+ { "name": "Kabupaten Tanah Bumbu" },
438
+ { "name": "Kabupaten Tanah Laut" },
439
+ { "name": "Kabupaten Tapin" },
440
+ { "name": "Kota Banjarbaru" },
441
+ { "name": "Kota Banjarmasin" }
442
+ ]
443
+ }],
444
+ [{
445
+ "name": "Kalimantan Tengah",
446
+ "cities": [
447
+ { "name": "Kabupaten Barito Selatan" },
448
+ { "name": "Kabupaten Barito Timur" },
449
+ { "name": "Kabupaten Barito Utara" },
450
+ { "name": "Kabupaten Gunung Mas" },
451
+ { "name": "Kabupaten Kapuas" },
452
+ { "name": "Kabupaten Katingan" },
453
+ { "name": "Kabupaten Kotawaringin Barat" },
454
+ { "name": "Kabupaten Kotawaringin Timur" },
455
+ { "name": "Kabupaten Lamandau" },
456
+ { "name": "Kabupaten Murung Raya" },
457
+ { "name": "Kabupaten Pulang Pisau" },
458
+ { "name": "Kabupaten Sukamara" },
459
+ { "name": "Kabupaten Seruyan" },
460
+ { "name": "Kota Palangka Raya" }
461
+ ]
462
+ }],
463
+ [{
464
+ "name": "Kalimantan Timur",
465
+ "cities": [
466
+ { "name": "Kabupaten Berau" },
467
+ { "name": "Kabupaten Bulungan" },
468
+ { "name": "Kabupaten Kutai Barat" },
469
+ { "name": "Kabupaten Kutai Kartanegara" },
470
+ { "name": "Kabupaten Kutai Timur" },
471
+ { "name": "Kabupaten Malinau" },
472
+ { "name": "Kabupaten Nunukan" },
473
+ { "name": "Kabupaten Paser" },
474
+ { "name": "Kabupaten Penajam Paser Utara" },
475
+ { "name": "Kabupaten Tana Tidung" },
476
+ { "name": "Kota Balikpapan" },
477
+ { "name": "Kota Bontang" },
478
+ { "name": "Kota Samarinda" },
479
+ { "name": "Kota Tarakan" }
480
+ ]
481
+ }],
482
+ [{
483
+ "name": "Gorontalo",
484
+ "cities": [
485
+ { "name": "Kabupaten Boalemo" },
486
+ { "name": "Kabupaten Bone Bolango" },
487
+ { "name": "Kabupaten Gorontalo" },
488
+ { "name": "Kabupaten Gorontalo Utara" },
489
+ { "name": "Kabupaten Pohuwato" },
490
+ { "name": "Kota Gorontalo" }
491
+ ]
492
+ }],
493
+ [{
494
+ "name": "Sulawesi Selatan",
495
+ "cities": [
496
+ { "name": "Kabupaten Bantaeng" },
497
+ { "name": "Kabupaten Barru" },
498
+ { "name": "Kabupaten Bone" },
499
+ { "name": "Kabupaten Bulukumba" },
500
+ { "name": "Kabupaten Enrekang" },
501
+ { "name": "Kabupaten Gowa" },
502
+ { "name": "Kabupaten Jeneponto" },
503
+ { "name": "Kabupaten Kepulauan Selayar" },
504
+ { "name": "Kabupaten Luwu" },
505
+ { "name": "Kabupaten Luwu Timur" },
506
+ { "name": "Kabupaten Luwu Utara" },
507
+ { "name": "Kabupaten Maros" },
508
+ { "name": "Kabupaten Pangkajene dan Kepulauan" },
509
+ { "name": "Kabupaten Pinrang" },
510
+ { "name": "Kabupaten Sidenreng Rappang" },
511
+ { "name": "Kabupaten Sinjai" },
512
+ { "name": "Kabupaten Soppeng" },
513
+ { "name": "Kabupaten Takalar" },
514
+ { "name": "Kabupaten Tana Toraja" },
515
+ { "name": "Kabupaten Toraja Utara" },
516
+ { "name": "Kabupaten Wajo" },
517
+ { "name": "Kota Makassar" },
518
+ { "name": "Kota Palopo" },
519
+ { "name": "Kota Parepare" }
520
+ ]
521
+ }],
522
+ [{
523
+ "name": "Sulawesi Tenggara",
524
+ "cities": [
525
+ { "name": "Kabupaten Bombana" },
526
+ { "name": "Kabupaten Buton" },
527
+ { "name": "Kabupaten Buton Utara" },
528
+ { "name": "Kabupaten Kolaka" },
529
+ { "name": "Kabupaten Kolaka Utara" },
530
+ { "name": "Kabupaten Konawe" },
531
+ { "name": "Kabupaten Konawe Selatan" },
532
+ { "name": "Kabupaten Konawe Utara" },
533
+ { "name": "Kabupaten Muna" },
534
+ { "name": "Kabupaten Wakatobi" },
535
+ { "name": "Kota Bau-Bau" },
536
+ { "name": "Kota Kendari" }
537
+ ]
538
+ }],
539
+ [{
540
+ "name": "Sulawesi Tengah",
541
+ "cities": [
542
+ { "name": "Kabupaten Banggai" },
543
+ { "name": "Kabupaten Banggai Kepulauan" },
544
+ { "name": "Kabupaten Buol" },
545
+ { "name": "Kabupaten Donggala" },
546
+ { "name": "Kabupaten Morowali" },
547
+ { "name": "Kabupaten Parigi Moutong" },
548
+ { "name": "Kabupaten Poso" },
549
+ { "name": "Kabupaten Tojo Una-Una" },
550
+ { "name": "Kabupaten Toli-Toli" },
551
+ { "name": "Kabupaten Sigi" },
552
+ { "name": "Kota Palu" }
553
+ ]
554
+ }],
555
+ [{
556
+ "name": "Sulawesi Utara",
557
+ "cities": [
558
+ { "name": "Kabupaten Bolaang Mongondow" },
559
+ { "name": "Kabupaten Bolaang Mongondow Selatan" },
560
+ { "name": "Kabupaten Bolaang Mongondow Timur" },
561
+ { "name": "Kabupaten Bolaang Mongondow Utara" },
562
+ { "name": "Kabupaten Kepulauan Sangihe" },
563
+ { "name": "Kabupaten Kepulauan Siau Tagulandang Biaro" },
564
+ { "name": "Kabupaten Kepulauan Talaud" },
565
+ { "name": "Kabupaten Minahasa" },
566
+ { "name": "Kabupaten Minahasa Selatan" },
567
+ { "name": "Kabupaten Minahasa Tenggara" },
568
+ { "name": "Kabupaten Minahasa Utara" },
569
+ { "name": "Kota Bitung" },
570
+ { "name": "Kota Kotamobagu" },
571
+ { "name": "Kota Manado" },
572
+ { "name": "Kota Tomohon" }
573
+ ]
574
+ }],
575
+ [{
576
+ "name": "Sulawesi Barat",
577
+ "cities": [
578
+ { "name": "Kabupaten Majene" },
579
+ { "name": "Kabupaten Mamasa" },
580
+ { "name": "Kabupaten Mamuju" },
581
+ { "name": "Kabupaten Mamuju Utara" },
582
+ { "name": "Kabupaten Polewali Mandar" }
583
+ ]
584
+ }],
585
+ [{
586
+ "name": "Maluku",
587
+ "cities": [
588
+ { "name": "Kabupaten Buru" },
589
+ { "name": "Kabupaten Buru Selatan" },
590
+ { "name": "Kabupaten Kepulauan Aru" },
591
+ { "name": "Kabupaten Maluku Barat Daya" },
592
+ { "name": "Kabupaten Maluku Tengah" },
593
+ { "name": "Kabupaten Maluku Tenggara" },
594
+ { "name": "Kabupaten Maluku Tenggara Barat" },
595
+ { "name": "Kabupaten Seram Bagian Barat" },
596
+ { "name": "Kabupaten Seram Bagian Timur" },
597
+ { "name": "Kota Ambon" },
598
+ { "name": "Kota Tual" }
599
+ ]
600
+ }],
601
+ [{
602
+ "name": "Maluku Utara",
603
+ "cities": [
604
+ { "name": "Kabupaten Halmahera Barat" },
605
+ { "name": "Kabupaten Halmahera Tengah" },
606
+ { "name": "Kabupaten Halmahera Utara" },
607
+ { "name": "Kabupaten Halmahera Selatan" },
608
+ { "name": "Kabupaten Kepulauan Sula" },
609
+ { "name": "Kabupaten Halmahera Timur" },
610
+ { "name": "Kabupaten Pulau Morotai" },
611
+ { "name": "Kota Ternate" },
612
+ { "name": "Kota Tidore Kepulauan" }
613
+ ]
614
+ }],
615
+ [{
616
+ "name": "Papua",
617
+ "cities": [
618
+ { "name": "Kabupaten Asmat" },
619
+ { "name": "Kabupaten Biak Numfor" },
620
+ { "name": "Kabupaten Boven Digoel" },
621
+ { "name": "Kabupaten Deiyai" },
622
+ { "name": "Kabupaten Dogiyai" },
623
+ { "name": "Kabupaten Intan Jaya" },
624
+ { "name": "Kabupaten Jayapura" },
625
+ { "name": "Kabupaten Jayawijaya" },
626
+ { "name": "Kabupaten Keerom" },
627
+ { "name": "Kabupaten Kepulauan Yapen" },
628
+ { "name": "Kabupaten Lanny Jaya" },
629
+ { "name": "Kabupaten Mamberamo Raya" },
630
+ { "name": "Kabupaten Mamberamo Tengah" },
631
+ { "name": "Kabupaten Mappi" },
632
+ { "name": "Kabupaten Merauke" },
633
+ { "name": "Kabupaten Mimika" },
634
+ { "name": "Kabupaten Nabire" },
635
+ { "name": "Kabupaten Nduga" },
636
+ { "name": "Kabupaten Paniai" },
637
+ { "name": "Kabupaten Pegunungan Bintang" },
638
+ { "name": "Kabupaten Puncak" },
639
+ { "name": "Kabupaten Puncak Jaya" },
640
+ { "name": "Kabupaten Sarmi" },
641
+ { "name": "Kabupaten Supiori" },
642
+ { "name": "Kabupaten Tolikara" },
643
+ { "name": "Kabupaten Waropen" },
644
+ { "name": "Kabupaten Yahukimo" },
645
+ { "name": "Kabupaten Yalimo" },
646
+ { "name": "Kota Jayapura" }
647
+ ]
648
+ }],
649
+ [{
650
+ "name": "Papua Barat",
651
+ "cities": [
652
+ { "name": "Kabupaten Fakfak" },
653
+ { "name": "Kabupaten Kaimana" },
654
+ { "name": "Kabupaten Manokwari" },
655
+ { "name": "Kabupaten Maybrat" },
656
+ { "name": "Kabupaten Raja Ampat" },
657
+ { "name": "Kabupaten Sorong" },
658
+ { "name": "Kabupaten Sorong Selatan" },
659
+ { "name": "Kabupaten Tambrauw" },
660
+ { "name": "Kabupaten Teluk Bintuni" },
661
+ { "name": "Kabupaten Teluk Wondama" },
662
+ { "name": "Kota Sorong" }
663
+ ]
664
+ }]
@@ -0,0 +1,8 @@
1
+ class Province < ActiveRecord::Base
2
+ attr_accessible :name
3
+
4
+ has_many :cities
5
+
6
+ validates_presence_of :name
7
+
8
+ end
@@ -0,0 +1,8 @@
1
+ class CreateProvincesTable < ActiveRecord::Migration
2
+ def change
3
+ create_table :provinces do |t|
4
+ t.string :name, :null => false
5
+ end
6
+ add_index :provinces, :name
7
+ end
8
+ end
File without changes
@@ -0,0 +1,3 @@
1
+ module IndonesianProvince
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,5 @@
1
+ require "indonesian_province/version"
2
+
3
+ module IndonesianProvince
4
+ # Your code goes here...
5
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: indonesian_province
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Gilang Mahardhika
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: List Indonesian Province and cities
47
+ email:
48
+ - gilangmahardhika@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - .gitignore
54
+ - Gemfile
55
+ - LICENSE.txt
56
+ - README.md
57
+ - Rakefile
58
+ - indonesian_province.gemspec
59
+ - lib/generators/indonesian_province_generator.rb
60
+ - lib/generators/templates/cities_migration.rb
61
+ - lib/generators/templates/city.rb
62
+ - lib/generators/templates/indonesian_province.rake
63
+ - lib/generators/templates/indonesian_province_data.json
64
+ - lib/generators/templates/province.rb
65
+ - lib/generators/templates/provinces_migration.rb
66
+ - lib/generators/templates/sulawesi.json
67
+ - lib/indonesian_province.rb
68
+ - lib/indonesian_province/version.rb
69
+ homepage: https://github.com/gilangmahardhika/indonesian_province
70
+ licenses:
71
+ - MIT
72
+ post_install_message:
73
+ rdoc_options: []
74
+ require_paths:
75
+ - lib
76
+ required_ruby_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ segments:
83
+ - 0
84
+ hash: 297911303669273971
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ segments:
92
+ - 0
93
+ hash: 297911303669273971
94
+ requirements: []
95
+ rubyforge_project:
96
+ rubygems_version: 1.8.25
97
+ signing_key:
98
+ specification_version: 3
99
+ summary: List all provinces in Indonesia
100
+ test_files: []