# JpPrefecture [![Build Status](https://travis-ci.org/chocoby/jp_prefecture.png?branch=master)](https://travis-ci.org/chocoby/jp_prefecture) [![Dependency Status](https://gemnasium.com/chocoby/jp_prefecture.png)](https://gemnasium.com/chocoby/jp_prefecture) https://rubygems.org/gems/jp_prefecture ## jp_prefecture とは 都道府県コードと都道府県名を変換するライブラリです。 JIS X 0402 で定義されている都道府県コードをベースに、 ゼロから始まるものはゼロを削除して使用しています。 北海道: 01 -> 1 東京都: 13 -> 13 参考: [Wikipedia: 全国地方公共団体コード](http://ja.wikipedia.org/wiki/%E5%85%A8%E5%9B%BD%E5%9C%B0%E6%96%B9%E5%85%AC%E5%85%B1%E5%9B%A3%E4%BD%93%E3%82%B3%E3%83%BC%E3%83%89#.E9.83.BD.E9.81.93.E5.BA.9C.E7.9C.8C.E3.82.B3.E3.83.BC.E3.83.89) また、Rails のプラグインとして使用することもできます。 ## インストール 以下の行を `Gemfile` に記述してから: gem 'jp_prefecture' `bundle` を実行してください。 または、手動でインストールしてください: $ gem install jp_prefecture ## 使い方 ### ライブラリの読み込み require 'jp_prefecture' ### 都道府県コードから都道府県を検索 単純に都道府県コードを渡すと、都道府県コードから都道府県を検索します: pref = JpPrefecture::Prefecture.find 13 # => # pref.code # => 13 pref.name # => "東京都" pref.name_e # => "Tokyo" 以下のように渡すことも可能です: JpPrefecture::Prefecture.find code: 13 ### 都道府県名から都道府県を検索 JpPrefecture::Prefecture.find name: "東京都" # => # JpPrefecture::Prefecture.find name: "Tokyo" # => # JpPrefecture::Prefecture.find name: "tokyo" # => # ### 都道府県の一覧を取得 JpPrefecture::Prefecture.all # => [#, ...] ### Rails(ActiveRecord) で使用する `ActiveRecord::Base` を継承した Model で、都道府県コードを扱うことができます。 app/models/place.rb: class Place < ActiveRecord::Base # prefecture_code:integer include JpPrefecture jp_prefecture :prefecture_code end `prefecture` というメソッドが生成され、都道府県コード、都道府県名が参照できるようになります: place = Place.new place.prefecture_code = 13 place.prefecture.name # => "東京都" 生成されるメソッド名は `method_name` というオプションで指定することができます: # model jp_prefecture :prefecture_code, method_name: :pref place = Place.new place.prefecture_code = 13 place.pref.name # => "東京都" ### テンプレートで使用する `collection_select` を使用して、都道府県のセレクトボックスを生成することができます。: f.collection_select :prefecture_code, JpPrefecture::Prefecture.all, :code, :name # 英語表記で出力 f.collection_select :prefecture_code, JpPrefecture::Prefecture.all, :code, :name_e ### マイグレーション カラムのタイプは `integer` か `string` で作成してください。 マイグレーションのサンプル: class AddPrefectureCodeToPlaces < ActiveRecord::Migration def change add_column :places, :prefecture_code, :integer end end ## ドキュメント [http://rdoc.info/github/chocoby/jp_prefecture/master/frames/index](http://rdoc.info/github/chocoby/jp_prefecture/master/frames/index) ## TODO GitHub の [Issues](https://github.com/chocoby/jp_prefecture/issues) を参照してください。 ## 対象バージョン * Ruby: 1.9.3 / 2.0.0 以上 * Rails: 3.2 以上 Ruby 1.8.7 のサポートは [v0.1.1](https://github.com/chocoby/jp_prefecture/tree/v0.1.1) で終了しました。 ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Added some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request