Project

kamome

0.0
No commit activity in last 3 years
No release in over 3 years
the Japanese postcode loading interface
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.17
~> 10.0
~> 3.0
~> 0.60
~> 4.0
~> 3.4

Runtime

~> 1.2
~> 0.19
 Project Readme

Kamome

Build Status

日本郵便の郵便番号データの取得を行うインターフェースです

以下のように block を渡すことで 郵便番号データ の取り込みで任意の実装を行うことができます

Kamome.import_general_all do |model, lineno|
  puts "#{lineno}: #{model.zipcode} => #{model.prefecture}#{model.city}#{model.town}"
end

対応CSV

  • 全国一括 (全件, 差分)
  • 事業所(全件, 差分)

各CSVは共通のモデルにマッピングされます(type オプションで詳細なモデルに変更可能)

詳細は Kamome::Models::Address を参照してください

Installation

Add this line to your application's Gemfile:

gem 'kamome'

And then execute:

$ bundle

Or install it yourself as:

$ gem install kamome

Usage

全国一括の郵便番号データの取り込み

Kamome.import_general_all do |model, lineno|
  puts "#{lineno}: #{model.zipcode} => #{model.prefecture}#{model.city}#{model.town}"
end

全国一括の郵便番号データの取り込み(差分)

date = Time.local(2018, 11) # 2018/11 更新分の取り込み
Kamome.import_general_diff(date: date) do |model, lineno|
  if model.update?
    puts "追加データ: #{model.zipcode} => #{model.prefecture}#{model.city}#{model.town}"
  else
    puts "削除データ: #{model.zipcode} => #{model.prefecture}#{model.city}#{model.town}"
  end
end

事業所の郵便番号データの取り込み

Kamome.import_jigyosho_all do |model, lineno|
  puts "#{lineno}: #{model.zipcode} => #{model.prefecture}#{model.city}#{model.town}"
end

事業所の郵便番号データの取り込み(差分)

date = Time.local(2018, 11) # 2018/11 更新分の取り込み
Kamome.import_jigyosho_diff(date: date) do |model, lineno|
  if model.update?
    puts "追加データ: #{model.zipcode} => #{model.prefecture}#{model.city}#{model.town}"
  else
    puts "削除データ: #{model.zipcode} => #{model.prefecture}#{model.city}#{model.town}"
  end
end

Cli commands

$ kamome generate_csv all.csv
$ kamome generate_diff_csv diff.csv --date=1810
$ kamome generate_json all.json
$ kamome generate_diff_json diff.json

For more informations:

$ kamome -h
$ kamome help [command]

FAQ

Kamome.import_xxx の model の型を変換したい

DetailModel にする場合

Kamome.import_general_all(type: :detail or Kamome::Operation::TYPE_DETAIL)
# 通常の戻りの型である `Kamome::Models::Address` ではなく以下のモデルで返却されます
#   事業所CSV の場合 `Kamome::Models::Jigyosho`
#   通常のCSV の場合 `Kamome::Models::General`

データのクリーニングについて

通常のCSV

Kamome::Models::General#town or Kamome::Models::Address#town

元データ 変換後 備考
以下に掲載がない場合 空白になります
XXXXXの次に番地がくる場合 空白になります
XXXXX(YYYY階) XXXXX(YYYY階) 元の値を維持しています
XXXXX(YYYYY) XXXXX () の部分が除去されます

※ 以下のような削除データが発生する可能性があり、 town が正確に取得できないことがあります

26106,"600  ","6008093","キョウトフ","キョウトシシモギョウク","タケヤチョウ","京都府","京都市下京区","竹屋町(高倉通綾小路下る、高倉通仏光寺上る、堺町通綾小路下",0,0,0,0,2,6
26106,"600  ","6008093","キョウトフ","キョウトシシモギョウク","タケヤチョウ","京都府","京都市下京区","る西入)",0,0,0,0,2,6

Kamome::Models::General#town_kana

元データ 変換後 備考
イカニケイサイガナイバアイ 空白になります
XXXXXノツギニバンチガクルバアイ 空白になります
XXXXX(Yカイ) XXXXX(Yカイ) 元の値を維持しています
XXXXX(YYYYY) XXXXX () の部分が除去されます

事業所CSV

私書箱情報について

Kamome::Models::General#post_office_box or Kamome::Models::Address#post_office_box

0丁目0番地(ああああ郵便局私書箱第000号) のようなデータが有った場合

  • post_office_box ... ああああ郵便局私書箱第000号
  • street ... 0丁目0番地

として設定されます

Development

After checking out the repo, run bin/setup to install dependencies. Then, run make to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/kengos/kamome.