日本郵便が公開している郵便番号データ(いわゆるken_all.csv)を取り込んで、郵便番号から住所情報を取得できるgemを作りました。住所入力フォームの補完に使えます。
jipcodeの特徴
- 日本郵便の公式データから郵便番号・住所情報のデータを取得し、ローカルに保存
- 事業所の個別郵便番号にも対応
- 毎月最新のデータに更新(毎月月初に自動化の予定)
インストール方法
アプリケーションで使う場合、Gemfileに次の行を追加してbundle install
してください。
gem 'jipcode'
あるいは、次のように手元にインストールしてください。
$ gem install jipcode
郵便番号から住所情報を取得する方法
require 'jipcode'
でjipcodeを適宜読み込んでください。
Jipcode
モジュールの.locate
関数に郵便番号の文字列を渡すと、住所情報のHashを要素とする配列が返ります。
なぜ配列かというと、郵便番号は1個の番号につき複数の住所が結びつくことがあるためです。
住所情報のHashは郵便番号(:zipcode
)、都道府県(:prefecture
)、市区町村(:city
)、町域番地(:town
)のキー値を持ちます。
Jipcode.locate('1510051')
# => [{zipcode: '1510051', prefecture: '東京都', city: '渋谷区', town: '千駄ヶ谷'}]
# 該当する住所がない場合
Jipcode.locate('hoge')
# => []
jipcodeの主な機能はこれだけで、後はデータとデータ更新のためのコードがリポジトリに含まれています。
そのため仕様を理解したい場合は./lib/jipcode.rb
のJipcode.locate
を読むだけで良いかと思います。