Ruby
Gem
ken_all.csv
jipcode

郵便番号から住所を取得できるgemを作りました

日本郵便が公開している郵便番号データ(いわゆるken_all.csv)を取り込んで、郵便番号から住所情報を取得できるgemを作りました。住所入力フォームの補完に使えます。

https://github.com/rinkei/jipcode

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.rbJipcode.locateを読むだけで良いかと思います。