Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

区を追加し、テーブルを 1 つに

  • Loading branch information...
commit 1e6ff3aa9eba9ad9702d05a26247d1c2bf1a396e 1 parent 1e630bd
@labocho authored
Showing with 32,989 additions and 180 deletions.
  1. +1 −1  Gemfile
  2. +18 −0 Gemfile.lock
  3. +0 −47 data/japanese_local_goverment/japanese_prefectures.csv
  4. +49 −7 data/japanese_local_goverment/{japanese_cities.csv → prefectures_and_cities.csv}
  5. +189 −0 data/japanese_local_goverment/wards.csv
  6. +1 −0  japanese_local_goverment.gemspec
  7. +1 −2  lib/generators/japanese_local_goverment/japanese_local_goverment_generator.rb
  8. +0 −19 lib/generators/templates/create_japanese_cities.rb
  9. +20 −0 lib/generators/templates/create_japanese_local_goverments.rb
  10. +0 −17 lib/generators/templates/create_japanese_prefectures.rb
  11. +4 −0 lib/japanese_local_goverment.rb
  12. +39 −0 lib/japanese_local_goverment/base.rb
  13. +3 −13 lib/japanese_local_goverment/city.rb
  14. +3 −13 lib/japanese_local_goverment/prefecture.rb
  15. +16 −12 lib/japanese_local_goverment/updater.rb
  16. +6 −0 lib/japanese_local_goverment/ward.rb
  17. BIN  spec/dummy/db/development.sqlite3
  18. +0 −17 spec/dummy/db/migrate/20120306080046_create_japanese_prefectures.rb
  19. +0 −19 spec/dummy/db/migrate/20120306080047_create_japanese_cities.rb
  20. +20 −0 spec/dummy/db/migrate/20120308032336_create_japanese_local_goverments.rb
  21. +8 −13 spec/dummy/db/schema.rb
  22. +32,611 −0 spec/dummy/log/development.log
View
2  Gemfile
@@ -11,4 +11,4 @@ gemspec
# your gem to rubygems.org.
# To use debugger
-# gem 'ruby-debug19', :require => 'ruby-debug'
+gem 'ruby-debug19', :require => 'ruby-debug'
View
18 Gemfile.lock
@@ -2,6 +2,7 @@ PATH
remote: .
specs:
japanese_local_goverment (0.0.1)
+ composite_primary_keys
rails (~> 3.1)
GEM
@@ -34,13 +35,19 @@ GEM
activesupport (3.2.2)
i18n (~> 0.6)
multi_json (~> 1.0)
+ archive-tar-minitar (0.5.2)
arel (3.0.2)
builder (3.0.0)
+ columnize (0.3.6)
+ composite_primary_keys (5.0.1)
+ activerecord (~> 3.2.0)
erubis (2.7.0)
hike (1.2.1)
i18n (0.6.0)
journey (1.0.3)
json (1.6.5)
+ linecache19 (0.5.12)
+ ruby_core_source (>= 0.1.4)
mail (2.4.1)
i18n (>= 0.4.0)
mime-types (~> 1.16)
@@ -73,6 +80,16 @@ GEM
rake (0.9.2.2)
rdoc (3.12)
json (~> 1.4)
+ ruby-debug-base19 (0.11.25)
+ columnize (>= 0.3.1)
+ linecache19 (>= 0.5.11)
+ ruby_core_source (>= 0.1.4)
+ ruby-debug19 (0.11.6)
+ columnize (>= 0.3.1)
+ linecache19 (>= 0.5.11)
+ ruby-debug-base19 (>= 0.11.19)
+ ruby_core_source (0.1.5)
+ archive-tar-minitar (>= 0.5.2)
sprockets (2.1.2)
hike (~> 1.2)
rack (~> 1.0)
@@ -90,4 +107,5 @@ PLATFORMS
DEPENDENCIES
japanese_local_goverment!
+ ruby-debug19
sqlite3
View
47 data/japanese_local_goverment/japanese_prefectures.csv
@@ -1,47 +0,0 @@
-010006,北海道
-020001,青森県
-030007,岩手県
-040002,宮城県
-050008,秋田県
-060003,山形県
-070009,福島県
-080004,茨城県
-090000,栃木県
-100005,群馬県
-110001,埼玉県
-120006,千葉県
-130001,東京都
-140007,神奈川県
-150002,新潟県
-160008,富山県
-170003,石川県
-180009,福井県
-190004,山梨県
-200000,長野県
-210005,岐阜県
-220001,静岡県
-230006,愛知県
-240001,三重県
-250007,滋賀県
-260002,京都府
-270008,大阪府
-280003,兵庫県
-290009,奈良県
-300004,和歌山県
-310000,鳥取県
-320005,島根県
-330001,岡山県
-340006,広島県
-350001,山口県
-360007,徳島県
-370002,香川県
-380008,愛媛県
-390003,高知県
-400009,福岡県
-410004,佐賀県
-420000,長崎県
-430005,熊本県
-440001,大分県
-450006,宮崎県
-460001,鹿児島県
-470007,沖縄県
View
56 data/japanese_local_goverment/japanese_cities.csv → ...panese_local_goverment/prefectures_and_cities.csv
@@ -1,3 +1,4 @@
+010006,北海道,
011002,北海道,札幌市
012025,北海道,函館市
012033,北海道,小樽市
@@ -177,6 +178,7 @@
016926,北海道,中標津町
016934,北海道,標津町
016942,北海道,羅臼町
+020001,青森県,
022012,青森県,青森市
022021,青森県,弘前市
022039,青森県,八戸市
@@ -217,6 +219,7 @@
024457,青森県,南部町
024465,青森県,階上町
024503,青森県,新郷村
+030007,岩手県,
032018,岩手県,盛岡市
032026,岩手県,宮古市
032034,岩手県,大船渡市
@@ -239,7 +242,6 @@
033669,岩手県,西和賀町
033812,岩手県,金ヶ崎町
034029,岩手県,平泉町
-034223,岩手県,藤沢町
034410,岩手県,住田町
034614,岩手県,大槌町
034827,岩手県,山田町
@@ -251,6 +253,7 @@
035068,岩手県,九戸村
035076,岩手県,洋野町
035246,岩手県,一戸町
+040002,宮城県,
041009,宮城県,仙台市
042021,宮城県,石巻市
042030,宮城県,塩竈市
@@ -286,6 +289,7 @@
045055,宮城県,美里町
045811,宮城県,女川町
046060,宮城県,南三陸町
+050008,秋田県,
052019,秋田県,秋田市
052027,秋田県,能代市
052035,秋田県,横手市
@@ -311,6 +315,7 @@
054348,秋田県,美郷町
054631,秋田県,羽後町
054640,秋田県,東成瀬村
+060003,山形県,
062014,山形県,山形市
062022,山形県,米沢市
062031,山形県,鶴岡市
@@ -346,6 +351,7 @@
064262,山形県,三川町
064289,山形県,庄内町
064611,山形県,遊佐町
+070009,福島県,
072010,福島県,福島市
072028,福島県,会津若松市
072036,福島県,郡山市
@@ -405,6 +411,7 @@
075485,福島県,葛尾村
075612,福島県,新地町
075647,福島県,飯舘村
+080004,茨城県,
082015,茨城県,水戸市
082023,茨城県,日立市
082031,茨城県,土浦市
@@ -449,6 +456,7 @@
085421,茨城県,五霞町
085464,茨城県,境町
085642,茨城県,利根町
+090000,栃木県,
092011,栃木県,宇都宮市
092029,栃木県,足利市
092037,栃木県,栃木市
@@ -464,7 +472,6 @@
092151,栃木県,那須烏山市
092169,栃木県,下野市
093017,栃木県,上三川町
-093211,栃木県,西方町
093424,栃木県,益子町
093432,栃木県,茂木町
093441,栃木県,市貝町
@@ -476,6 +483,7 @@
093866,栃木県,高根沢町
094072,栃木県,那須町
094111,栃木県,那珂川町
+100005,群馬県,
102016,群馬県,前橋市
102024,群馬県,高崎市
102032,群馬県,桐生市
@@ -511,6 +519,7 @@
105236,群馬県,千代田町
105244,群馬県,大泉町
105252,群馬県,邑楽町
+110001,埼玉県,
111007,埼玉県,さいたま市
112011,埼玉県,川越市
112020,埼玉県,熊谷市
@@ -533,7 +542,6 @@
112232,埼玉県,蕨市
112241,埼玉県,戸田市
112259,埼玉県,入間市
-112267,埼玉県,鳩ヶ谷市
112275,埼玉県,朝霞市
112283,埼玉県,志木市
112291,埼玉県,和光市
@@ -575,6 +583,7 @@
114456,埼玉県,白岡町
114642,埼玉県,杉戸町
114651,埼玉県,松伏町
+120006,千葉県,
121002,千葉県,千葉市
122025,千葉県,銚子市
122033,千葉県,市川市
@@ -629,6 +638,7 @@
124419,千葉県,大多喜町
124435,千葉県,御宿町
124630,千葉県,鋸南町
+130001,東京都,
131016,東京都,千代田区
131024,東京都,中央区
131032,東京都,港区
@@ -691,6 +701,7 @@
134015,東京都,八丈町
134023,東京都,青ヶ島村
134210,東京都,小笠原村
+140007,神奈川県,
141003,神奈川県,横浜市
141305,神奈川県,川崎市
141500,神奈川県,相模原市
@@ -724,6 +735,7 @@
143847,神奈川県,湯河原町
144011,神奈川県,愛川町
144029,神奈川県,清川村
+150002,新潟県,
151009,新潟県,新潟市
152021,新潟県,長岡市
152048,新潟県,三条市
@@ -754,6 +766,7 @@
155047,新潟県,刈羽村
155811,新潟県,関川村
155861,新潟県,粟島浦村
+160008,富山県,
162019,富山県,富山市
162027,富山県,高岡市
162043,富山県,魚津市
@@ -769,6 +782,7 @@
163236,富山県,立山町
163422,富山県,入善町
163431,富山県,朝日町
+170003,石川県,
172014,石川県,金沢市
172022,石川県,七尾市
172031,石川県,小松市
@@ -779,8 +793,8 @@
172090,石川県,かほく市
172103,石川県,白山市
172111,石川県,能美市
+172120,石川県,野々市市
173240,石川県,川北町
-173444,石川県,野々市町
173614,石川県,津幡町
173657,石川県,内灘町
173843,石川県,志賀町
@@ -788,6 +802,7 @@
174076,石川県,中能登町
174611,石川県,穴水町
174637,石川県,能登町
+180009,福井県,
182010,福井県,福井市
182028,福井県,敦賀市
182044,福井県,小浜市
@@ -805,6 +820,7 @@
184811,福井県,高浜町
184837,福井県,おおい町
185019,福井県,若狭町
+190004,山梨県,
192015,山梨県,甲府市
192023,山梨県,富士吉田市
192040,山梨県,都留市
@@ -832,6 +848,7 @@
194301,山梨県,富士河口湖町
194425,山梨県,小菅村
194433,山梨県,丹波山村
+200000,長野県,
202011,長野県,長野市
202029,長野県,松本市
202037,長野県,上田市
@@ -909,6 +926,7 @@
205885,長野県,小川村
205907,長野県,飯綱町
206024,長野県,栄村
+210005,岐阜県,
212016,岐阜県,岐阜市
212024,岐阜県,大垣市
212032,岐阜県,高山市
@@ -951,6 +969,7 @@
215074,岐阜県,東白川村
215210,岐阜県,御嵩町
216046,岐阜県,白川村
+220001,静岡県,
221007,静岡県,静岡市
221309,静岡県,浜松市
222038,静岡県,沼津市
@@ -986,6 +1005,7 @@
224243,静岡県,吉田町
224294,静岡県,川根本町
224618,静岡県,森町
+230006,愛知県,
231002,愛知県,名古屋市
232017,愛知県,豊橋市
232025,愛知県,岡崎市
@@ -1023,8 +1043,8 @@
232351,愛知県,弥富市
232360,愛知県,みよし市
232378,愛知県,あま市
+232386,愛知県,長久手市
233021,愛知県,東郷町
-233048,愛知県,長久手町
233421,愛知県,豊山町
233617,愛知県,大口町
233625,愛知県,扶桑町
@@ -1040,6 +1060,7 @@
235610,愛知県,設楽町
235628,愛知県,東栄町
235636,愛知県,豊根村
+240001,三重県,
242012,三重県,津市
242021,三重県,四日市市
242039,三重県,伊勢市
@@ -1069,6 +1090,7 @@
245437,三重県,紀北町
245615,三重県,御浜町
245623,三重県,紀宝町
+250007,滋賀県,
252018,滋賀県,大津市
252026,滋賀県,彦根市
252034,滋賀県,長浜市
@@ -1088,6 +1110,7 @@
254410,滋賀県,豊郷町
254428,滋賀県,甲良町
254436,滋賀県,多賀町
+260002,京都府,
261009,京都府,京都市
262013,京都府,福知山市
262021,京都府,舞鶴市
@@ -1114,6 +1137,7 @@
264075,京都府,京丹波町
264636,京都府,伊根町
264652,京都府,与謝野町
+270008,大阪府,
271004,大阪府,大阪市
271403,大阪府,堺市
272027,大阪府,岸和田市
@@ -1157,6 +1181,7 @@
273813,大阪府,太子町
273821,大阪府,河南町
273830,大阪府,千早赤阪村
+280003,兵庫県,
281000,兵庫県,神戸市
282014,兵庫県,姫路市
282022,兵庫県,尼崎市
@@ -1198,6 +1223,7 @@
285013,兵庫県,佐用町
285854,兵庫県,香美町
285862,兵庫県,新温泉町
+290009,奈良県,
292010,奈良県,奈良市
292028,奈良県,大和高田市
292036,奈良県,大和郡山市
@@ -1237,6 +1263,7 @@
294519,奈良県,上北山村
294527,奈良県,川上村
294535,奈良県,東吉野村
+300004,和歌山県,
302015,和歌山県,和歌山市
302023,和歌山県,海南市
302031,和歌山県,橋本市
@@ -1267,6 +1294,7 @@
304247,和歌山県,古座川町
304271,和歌山県,北山村
304280,和歌山県,串本町
+310000,鳥取県,
312011,鳥取県,鳥取市
312029,鳥取県,米子市
312037,鳥取県,倉吉市
@@ -1286,6 +1314,7 @@
314013,鳥取県,日南町
314021,鳥取県,日野町
314030,鳥取県,江府町
+320005,島根県,
322016,島根県,松江市
322024,島根県,浜田市
322032,島根県,出雲市
@@ -1294,10 +1323,8 @@
322067,島根県,安来市
322075,島根県,江津市
322091,島根県,雲南市
-323047,島根県,東出雲町
323438,島根県,奥出雲町
323861,島根県,飯南町
-324019,島根県,斐川町
324418,島根県,川本町
324485,島根県,美郷町
324493,島根県,邑南町
@@ -1307,6 +1334,7 @@
325261,島根県,西ノ島町
325279,島根県,知夫村
325287,島根県,隠岐の島町
+330001,岡山県,
331007,岡山県,岡山市
332020,岡山県,倉敷市
332038,岡山県,津山市
@@ -1334,6 +1362,7 @@
336637,岡山県,久米南町
336661,岡山県,美咲町
336815,岡山県,吉備中央町
+340006,広島県,
341002,広島県,広島市
342025,広島県,呉市
342033,広島県,竹原市
@@ -1357,6 +1386,7 @@
344311,広島県,大崎上島町
344621,広島県,世羅町
345458,広島県,神石高原町
+350001,山口県,
352012,山口県,下関市
352021,山口県,宇部市
352039,山口県,山口市
@@ -1376,6 +1406,7 @@
353434,山口県,田布施町
353442,山口県,平生町
355020,山口県,阿武町
+360007,徳島県,
362018,徳島県,徳島市
362026,徳島県,鳴門市
362034,徳島県,小松島市
@@ -1400,6 +1431,7 @@
364053,徳島県,上板町
364681,徳島県,つるぎ町
364894,徳島県,東みよし町
+370002,香川県,
372013,香川県,高松市
372021,香川県,丸亀市
372030,香川県,坂出市
@@ -1417,6 +1449,7 @@
374032,香川県,琴平町
374041,香川県,多度津町
374067,香川県,まんのう町
+380008,愛媛県,
382019,愛媛県,松山市
382027,愛媛県,今治市
382035,愛媛県,宇和島市
@@ -1437,6 +1470,7 @@
384844,愛媛県,松野町
384887,愛媛県,鬼北町
385069,愛媛県,愛南町
+390003,高知県,
392014,高知県,高知市
392022,高知県,室戸市
392031,高知県,安芸市
@@ -1471,6 +1505,7 @@
394246,高知県,大月町
394271,高知県,三原村
394289,高知県,黒潮町
+400009,福岡県,
401005,福岡県,北九州市
401307,福岡県,福岡市
402028,福岡県,大牟田市
@@ -1531,6 +1566,7 @@
406422,福岡県,吉富町
406465,福岡県,上毛町
406473,福岡県,築上町
+410004,佐賀県,
412015,佐賀県,佐賀市
412023,佐賀県,唐津市
412031,佐賀県,鳥栖市
@@ -1551,6 +1587,7 @@
414247,佐賀県,江北町
414255,佐賀県,白石町
414417,佐賀県,太良町
+420000,長崎県,
422011,長崎県,長崎市
422029,長崎県,佐世保市
422037,長崎県,島原市
@@ -1572,6 +1609,7 @@
423831,長崎県,小値賀町
423912,長崎県,佐々町
424111,長崎県,新上五島町
+430005,熊本県,
432016,熊本県,熊本市
432024,熊本県,八代市
432032,熊本県,人吉市
@@ -1617,6 +1655,7 @@
435139,熊本県,球磨村
435147,熊本県,あさぎり町
435317,熊本県,苓北町
+440001,大分県,
442011,大分県,大分市
442020,大分県,別府市
442038,大分県,中津市
@@ -1635,6 +1674,7 @@
443417,大分県,日出町
444618,大分県,九重町
444626,大分県,玖珠町
+450006,宮崎県,
452017,宮崎県,宮崎市
452025,宮崎県,都城市
452033,宮崎県,延岡市
@@ -1661,6 +1701,7 @@
454419,宮崎県,高千穂町
454427,宮崎県,日之影町
454435,宮崎県,五ヶ瀬町
+460001,鹿児島県,
462012,鹿児島県,鹿児島市
462039,鹿児島県,鹿屋市
462047,鹿児島県,枕崎市
@@ -1704,6 +1745,7 @@
465330,鹿児島県,和泊町
465348,鹿児島県,知名町
465356,鹿児島県,与論町
+470007,沖縄県,
472018,沖縄県,那覇市
472051,沖縄県,宜野湾市
472077,沖縄県,石垣市
View
189 data/japanese_local_goverment/wards.csv
@@ -0,0 +1,189 @@
+011002,札幌市
+011011,札幌市中央区
+011029,札幌市北区
+011037,札幌市東区
+011045,札幌市白石区
+011053,札幌市豊平区
+011061,札幌市南区
+011070,札幌市西区
+011088,札幌市厚別区
+011096,札幌市手稲区
+011100,札幌市清田区
+041009,仙台市
+041017,仙台市青葉区
+041025,仙台市宮城野区
+041033,仙台市若林区
+041041,仙台市太白区
+041050,仙台市泉区
+111007,さいたま市
+111015,さいたま市西区
+111023,さいたま市北区
+111031,さいたま市大宮区
+111040,さいたま市見沼区
+111058,さいたま市中央区
+111066,さいたま市桜区
+111074,さいたま市浦和区
+111082,さいたま市南区
+111091,さいたま市緑区
+111104,さいたま市岩槻区
+121002,千葉市
+121011,千葉市中央区
+121029,千葉市花見川区
+121037,千葉市稲毛区
+121045,千葉市若葉区
+121053,千葉市緑区
+121061,千葉市美浜区
+141003,横浜市
+141011,横浜市鶴見区
+141020,横浜市神奈川区
+141038,横浜市西区
+141046,横浜市中区
+141054,横浜市南区
+141062,横浜市保土ケ谷区
+141071,横浜市磯子区
+141089,横浜市金沢区
+141097,横浜市港北区
+141101,横浜市戸塚区
+141119,横浜市港南区
+141127,横浜市旭区
+141135,横浜市緑区
+141143,横浜市瀬谷区
+141151,横浜市栄区
+141160,横浜市泉区
+141178,横浜市青葉区
+141186,横浜市都筑区
+141305,川崎市
+141313,川崎市川崎区
+141321,川崎市幸区
+141330,川崎市中原区
+141348,川崎市高津区
+141356,川崎市多摩区
+141364,川崎市宮前区
+141372,川崎市麻生区
+141500,相模原市
+141518,相模原市緑区
+141526,相模原市中央区
+141534,相模原市南区
+151009,新潟市
+151017,新潟市北区
+151025,新潟市東区
+151033,新潟市中央区
+151041,新潟市江南区
+151050,新潟市秋葉区
+151068,新潟市南区
+151076,新潟市西区
+151084,新潟市西蒲区
+221007,静岡市
+221015,静岡市葵区
+221023,静岡市駿河区
+221031,静岡市清水区
+221309,浜松市
+221317,浜松市中区
+221325,浜松市東区
+221333,浜松市西区
+221341,浜松市南区
+221350,浜松市北区
+221368,浜松市浜北区
+221376,浜松市天竜区
+231002,名古屋市
+231011,名古屋市千種区
+231029,名古屋市東区
+231037,名古屋市北区
+231045,名古屋市西区
+231053,名古屋市中村区
+231061,名古屋市中区
+231070,名古屋市昭和区
+231088,名古屋市瑞穂区
+231096,名古屋市熱田区
+231100,名古屋市中川区
+231118,名古屋市港区
+231126,名古屋市南区
+231134,名古屋市守山区
+231142,名古屋市緑区
+231151,名古屋市名東区
+231169,名古屋市天白区
+261009,京都市
+261017,京都市北区
+261025,京都市上京区
+261033,京都市左京区
+261041,京都市中京区
+261050,京都市東山区
+261068,京都市下京区
+261076,京都市南区
+261084,京都市右京区
+261092,京都市伏見区
+261106,京都市山科区
+261114,京都市西京区
+271004,大阪市
+271021,大阪市都島区
+271039,大阪市福島区
+271047,大阪市此花区
+271063,大阪市西区
+271071,大阪市港区
+271080,大阪市大正区
+271098,大阪市天王寺区
+271110,大阪市浪速区
+271136,大阪市西淀川区
+271144,大阪市東淀川区
+271152,大阪市東成区
+271161,大阪市生野区
+271179,大阪市旭区
+271187,大阪市城東区
+271195,大阪市阿倍野区
+271209,大阪市住吉区
+271217,大阪市東住吉区
+271225,大阪市西成区
+271233,大阪市淀川区
+271241,大阪市鶴見区
+271250,大阪市住之江区
+271268,大阪市平野区
+271276,大阪市北区
+271284,大阪市中央区
+271403,堺市
+271411,堺市堺区
+271420,堺市中区
+271438,堺市東区
+271446,堺市西区
+271454,堺市南区
+271462,堺市北区
+271471,堺市美原区
+281000,神戸市
+281018,神戸市東灘区
+281026,神戸市灘区
+281051,神戸市兵庫区
+281069,神戸市長田区
+281077,神戸市須磨区
+281085,神戸市垂水区
+281093,神戸市北区
+281107,神戸市中央区
+281115,神戸市西区
+331007,岡山市
+331015,岡山市北区
+331023,岡山市中区
+331031,岡山市東区
+331040,岡山市南区
+341002,広島市
+341011,広島市中区
+341029,広島市東区
+341037,広島市南区
+341045,広島市西区
+341053,広島市安佐南区
+341061,広島市安佐北区
+341070,広島市安芸区
+341088,広島市佐伯区
+401005,北九州市
+401013,北九州市門司区
+401030,北九州市若松区
+401056,北九州市戸畑区
+401064,北九州市小倉北区
+401072,北九州市小倉南区
+401081,北九州市八幡東区
+401099,北九州市八幡西区
+401307,福岡市
+401315,福岡市東区
+401323,福岡市博多区
+401331,福岡市中央区
+401340,福岡市南区
+401358,福岡市西区
+401366,福岡市城南区
+401374,福岡市早良区
View
1  japanese_local_goverment.gemspec
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
s.test_files = Dir["test/**/*"]
s.add_dependency "rails", "~> 3.1"
+ s.add_dependency "composite_primary_keys"
s.add_development_dependency "sqlite3"
end
View
3  lib/generators/japanese_local_goverment/japanese_local_goverment_generator.rb
@@ -6,8 +6,7 @@ class JapaneseLocalGoverment < Rails::Generators::Base
source_root File.expand_path "#{File.dirname(__FILE__)}/../templates"
def create_migration_file
- migration_template "create_japanese_prefectures.rb", "db/migrate/create_japanese_prefectures"
- migration_template "create_japanese_cities.rb", "db/migrate/create_japanese_cities"
+ migration_template "create_japanese_local_goverments.rb", "db/migrate/create_japanese_local_goverments"
end
def self.next_migration_number(dirname)
View
19 lib/generators/templates/create_japanese_cities.rb
@@ -1,19 +0,0 @@
-class CreateJapaneseCities < ActiveRecord::Migration
- def self.up
- execute <<-SQL
- create table japanese_cities(
- code char(6) primary key,
- prefecture_code char(6) not null,
- name char(21),
- foreign key (prefecture_code) references japanese_prefectures (code),
- unique (prefecture_code, name)
- );
- SQL
- end
-
- def self.down
- execute <<-SQL
- drop table japanese_cities;
- SQL
- end
-end
View
20 lib/generators/templates/create_japanese_local_goverments.rb
@@ -0,0 +1,20 @@
+class CreateJapaneseLocalGoverments < ActiveRecord::Migration
+ def self.up
+ execute <<-SQL
+ create table japanese_local_goverments(
+ code char(6) primary key,
+ type char(40) not null,
+ prefecture char(12) not null,
+ city char(21),
+ ward char(21),
+ unique (prefecture, city, ward)
+ );
+ SQL
+ end
+
+ def self.down
+ execute <<-SQL
+ drop table japanese_local_goverments;
+ SQL
+ end
+end
View
17 lib/generators/templates/create_japanese_prefectures.rb
@@ -1,17 +0,0 @@
-class CreateJapanesePrefectures < ActiveRecord::Migration
- def self.up
- execute <<-SQL
- create table japanese_prefectures(
- code char(6) primary key,
- name char(12),
- unique (name)
- );
- SQL
- end
-
- def self.down
- execute <<-SQL
- drop table japanese_prefectures;
- SQL
- end
-end
View
4 lib/japanese_local_goverment.rb
@@ -1,8 +1,12 @@
+require "active_record"
+require "composite_primary_keys"
module JapaneseLocalGoverment
+ autoload :Base, "japanese_local_goverment/base"
autoload :City, "japanese_local_goverment/city"
autoload :Prefecture, "japanese_local_goverment/prefecture"
autoload :Updater, "japanese_local_goverment/updater"
autoload :Version, "japanese_local_goverment/version"
+ autoload :Ward, "japanese_local_goverment/ward"
end
load "tasks/japanese_local_goverment_tasks.rake" if defined? Rake
View
39 lib/japanese_local_goverment/base.rb
@@ -0,0 +1,39 @@
+module JapaneseLocalGoverment
+ class Base < ActiveRecord::Base
+ set_table_name :japanese_local_goverments
+ set_primary_key :code
+ attr_protected :code, :type, :created_at, :updated_at
+
+ def self.create_or_update!(attrs)
+ code = attrs.delete :code
+ lg = find_by_code(code) || new_with_guess_type(attrs)
+ lg.code = code
+ lg.attributes = attrs
+ lg.save!
+ lg
+ end
+
+ def self.new_with_guess_type(attrs)
+ case
+ when attrs[:city].blank?
+ Prefecture.new
+ when attrs[:ward].blank?
+ City.new
+ else
+ Ward.new
+ end
+ end
+
+ def prefecture?
+ is_a? Prefecture
+ end
+
+ def city?
+ is_a? City
+ end
+
+ def ward?
+ is_a? Ward
+ end
+ end
+end
View
16 lib/japanese_local_goverment/city.rb
@@ -1,16 +1,6 @@
module JapaneseLocalGoverment
- class City < ActiveRecord::Base
- set_table_name "japanese_cities"
- belongs_to "prefecture", class_name: "JapaneseLocalGoverment::Prefecture", foreign_key: "prefecture_code", primary_key: "code"
- attr_protected :code, :created_at, :updated_at
-
- def self.create_or_update!(attrs)
- code = attrs.delete :code
- city = find_by_code(code) || new
- city.code = code
- city.attributes = attrs
- city.save!
- city
- end
+ class City < Base
+ belongs_to :prefecture_record, class_name: "JapaneseLocalGoverment::Prefecture", foreign_key: :prefecture, primary_key: :prefecture
+ has_many :wards, class_name: "JapaneseLocalGoverment::Ward", foreign_key: [:prefecture, :city], primary_key: [:prefecture, :city]
end
end
View
16 lib/japanese_local_goverment/prefecture.rb
@@ -1,16 +1,6 @@
module JapaneseLocalGoverment
- class Prefecture < ActiveRecord::Base
- set_table_name "japanese_prefectures"
- has_many "cities", class_name: "JapaneseLocalGoverment::City", foreign_key: "prefecture_code", primary_key: "code"
- attr_protected :code, :created_at, :updated_at
-
- def self.create_or_update!(attrs)
- code = attrs.delete :code
- pref = find_by_code(code) || new
- pref.code = code
- pref.attributes = attrs
- pref.save!
- pref
- end
+ class Prefecture < Base
+ has_many :cities, class_name: "JapaneseLocalGoverment::City", foreign_key: :prefecture, primary_key: :prefecture
+ has_many :wards, class_name: "JapaneseLocalGoverment::Ward", foreign_key: :prefecture, primary_key: :prefecture
end
end
View
28 lib/japanese_local_goverment/updater.rb
@@ -1,25 +1,29 @@
+# encoding: UTF-8
require "csv"
+require "ruby-debug"
module JapaneseLocalGoverment
module Updater
- PREFECTURES = "#{File.dirname(__FILE__)}/../../data/japanese_local_goverment/japanese_prefectures.csv"
- CITIES = "#{File.dirname(__FILE__)}/../../data/japanese_local_goverment/japanese_cities.csv"
+ PREFECTURES_AND_CITIES = "#{File.dirname(__FILE__)}/../../data/japanese_local_goverment/prefectures_and_cities.csv"
+ WARDS = "#{File.dirname(__FILE__)}/../../data/japanese_local_goverment/wards.csv"
module_function
def update
- update_prefectures
- update_cities
+ update_prefectures_and_cities
+ update_wards
end
- def update_prefectures
- CSV.foreach(PREFECTURES, encoding: "UTF-8") do |(code, name)|
- Prefecture.create_or_update!(code: code, name: name)
+ def update_prefectures_and_cities
+ CSV.foreach(PREFECTURES_AND_CITIES, encoding: "UTF-8") do |(code, pref, city)|
+ Base.create_or_update!(code: code, prefecture: pref, city: city)
end
end
- def update_cities
- pref = Prefecture.first
- CSV.foreach(CITIES, encoding: "UTF-8") do |(code, pref_name, name)|
- pref = Prefecture.find_by_name(pref_name) unless pref.name == pref_name
- City.create_or_update!(code: code, prefecture_code: pref.code, name: name)
+ def update_wards
+ CSV.foreach(WARDS, encoding: "UTF-8") do |(code, city_and_ward)|
+ next if City.exists?(city: city_and_ward) # 市の行は無視
+ city_and_ward =~ /\A(.+市)(.+)\z/ # すべて **市** 形式であることを前提にしている
+ city, ward = $~.captures
+ pref = City.where(city: city).first.prefecture # 区を持つ市の名称は重複がないことを前提にしている
+ Base.create_or_update!(code: code, prefecture: pref, city: city, ward: ward)
end
end
end
View
6 lib/japanese_local_goverment/ward.rb
@@ -0,0 +1,6 @@
+module JapaneseLocalGoverment
+ class Ward < Base
+ belongs_to :prefecture_record, class_name: "JapaneseLocalGoverment::Prefecture", foreign_key: :prefecture, primary_key: :prefecture
+ belongs_to :city_record, class_name: "JapaneseLocalGoverment::City", foreign_key: [:prefecture, :city], primary_key: [:prefecture, :city]
+ end
+end
View
BIN  spec/dummy/db/development.sqlite3
Binary file not shown
View
17 spec/dummy/db/migrate/20120306080046_create_japanese_prefectures.rb
@@ -1,17 +0,0 @@
-class CreateJapanesePrefectures < ActiveRecord::Migration
- def self.up
- execute <<-SQL
- create table japanese_prefectures(
- code char(6) primary key,
- name char(12),
- unique (name)
- );
- SQL
- end
-
- def self.down
- execute <<-SQL
- drop table japanese_prefectures;
- SQL
- end
-end
View
19 spec/dummy/db/migrate/20120306080047_create_japanese_cities.rb
@@ -1,19 +0,0 @@
-class CreateJapaneseCities < ActiveRecord::Migration
- def self.up
- execute <<-SQL
- create table japanese_cities(
- code char(6) primary key,
- prefecture_code char(6) not null,
- name char(21),
- foreign key (prefecture_code) references japanese_prefecture (code),
- unique (prefecture_code, name)
- );
- SQL
- end
-
- def self.down
- execute <<-SQL
- drop table japanese_cities;
- SQL
- end
-end
View
20 spec/dummy/db/migrate/20120308032336_create_japanese_local_goverments.rb
@@ -0,0 +1,20 @@
+class CreateJapaneseLocalGoverments < ActiveRecord::Migration
+ def self.up
+ execute <<-SQL
+ create table japanese_local_goverments(
+ code char(6) primary key,
+ type char(40) not null,
+ prefecture char(12) not null,
+ city char(21),
+ ward char(21),
+ unique (prefecture, city, ward)
+ );
+ SQL
+ end
+
+ def self.down
+ execute <<-SQL
+ drop table japanese_local_goverments;
+ SQL
+ end
+end
View
21 spec/dummy/db/schema.rb
@@ -11,21 +11,16 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20120306080047) do
+ActiveRecord::Schema.define(:version => 20120308032336) do
- create_table "japanese_cities", :primary_key => "code", :force => true do |t|
- t.string "prefecture_code", :limit => 6, :null => false
- t.string "name", :limit => 21
+ create_table "japanese_local_goverments", :primary_key => "code", :force => true do |t|
+ t.string "type", :limit => 40, :null => false
+ t.string "prefecture", :limit => 12, :null => false
+ t.string "city", :limit => 21
+ t.string "ward", :limit => 21
end
- add_index "japanese_cities", ["code"], :name => "sqlite_autoindex_japanese_cities_1", :unique => true
- add_index "japanese_cities", ["prefecture_code", "name"], :name => "sqlite_autoindex_japanese_cities_2", :unique => true
-
- create_table "japanese_prefectures", :primary_key => "code", :force => true do |t|
- t.string "name", :limit => 12
- end
-
- add_index "japanese_prefectures", ["code"], :name => "sqlite_autoindex_japanese_prefectures_1", :unique => true
- add_index "japanese_prefectures", ["name"], :name => "sqlite_autoindex_japanese_prefectures_2", :unique => true
+ add_index "japanese_local_goverments", ["code"], :name => "sqlite_autoindex_japanese_local_goverments_1", :unique => true
+ add_index "japanese_local_goverments", ["prefecture", "city", "ward"], :name => "sqlite_autoindex_japanese_local_goverments_2", :unique => true
end
View
32,611 spec/dummy/log/development.log
32,611 additions, 0 deletions not shown
Please sign in to comment.
Something went wrong with that request. Please try again.