{"id":24020957,"url":"https://github.com/yamat47/japanese_address_parser","last_synced_at":"2025-04-05T23:06:42.596Z","repository":{"id":43222717,"uuid":"443366532","full_name":"yamat47/japanese_address_parser","owner":"yamat47","description":"Japanese address parser written in Ruby.","archived":false,"fork":false,"pushed_at":"2025-02-08T14:23:51.000Z","size":18028,"stargazers_count":31,"open_issues_count":6,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-29T22:05:14.593Z","etag":null,"topics":["gem","japanese-address","parser","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yamat47.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-12-31T14:46:54.000Z","updated_at":"2025-02-15T00:52:56.000Z","dependencies_parsed_at":"2023-11-26T05:36:12.325Z","dependency_job_id":null,"html_url":"https://github.com/yamat47/japanese_address_parser","commit_stats":{"total_commits":161,"total_committers":4,"mean_commits":40.25,"dds":0.05590062111801242,"last_synced_commit":"f833cdc73dc977f51b407245d9048302aa045efd"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yamat47%2Fjapanese_address_parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yamat47%2Fjapanese_address_parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yamat47%2Fjapanese_address_parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yamat47%2Fjapanese_address_parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yamat47","download_url":"https://codeload.github.com/yamat47/japanese_address_parser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411229,"owners_count":20934653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gem","japanese-address","parser","ruby"],"created_at":"2025-01-08T12:19:16.013Z","updated_at":"2025-04-05T23:06:42.576Z","avatar_url":"https://github.com/yamat47.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI Status](https://github.com/yamat47/japanese_address_parser/actions/workflows/ci.yml/badge.svg) [![Gem Version](https://badge.fury.io/rb/japanese_address_parser.svg)](https://badge.fury.io/rb/japanese_address_parser) [![Maintainability](https://api.codeclimate.com/v1/badges/e9b7d0622cf6cc4143c3/maintainability)](https://codeclimate.com/github/yamat47/japanese_address_parser/maintainability)\n\n# JapaneseAddressParser\nJapaneseAddressParser は日本の住所をパースすることができる Ruby gem です。\n\n住所のパースに使っているのは [geolonia/normalize-japanese-addresses](https://github.com/geolonia/normalize-japanese-addresses) です。\nnpm のライブラリを Ruby のランタイムから呼び出しているため、Node が実行できる環境でしか動作しません。\n\nこちらのページで機能を試すことができます：[デモンストレーション | JapaneseAddressParser](https://japanese-address-parser-demo.fly.dev/)\n\n## インストール\n\n`Gemfile` にこの行を追加してください：\n\n```ruby\ngem 'japanese_address_parser'\n```\n\n次にこのコマンドを実行してください：\n\n```\n$ bundle install\n```\n\nもしくは gem install をして直接インストールすることもできます：\n\n```\n$ gem install japanese_address_parser\n```\n\n## 使い方\n```ruby\naddress = JapaneseAddressParser.call('東京都港区芝公園4-2-8')\n\naddress.class #=\u003e JapaneseAddressParser::Models::Address\n\nprefecture = address.prefecture\nprefecture.attributes #=\u003e {:code=\u003e\"13\", :name=\u003e\"東京都\", :name_kana=\u003e\"トウキョウト\", :name_romaji=\u003e\"TOKYO TO\"}\n\ncity = address.city\ncity.attributes #=\u003e {:code=\u003e\"13103\", :formatted_code=\u003e\"13103\", :prefecture_code=\u003e\"13\", :name=\u003e\"港区\", :name_kana=\u003e\"ミナトク\", :name_romaji=\u003e\"MINATO KU\"}\n\ntown = address.town\ntown.attributes #=\u003e {:name=\u003e\"芝公園四丁目\", :name_kana=\u003e\"シバコウエン 4\", :name_romaji=\u003e\"SHIBAKOEN 4\", :nickname=\u003enil, :latitude=\u003e\"35.656459\", :longitude=\u003e\"139.74764\"}\n\naddress.full_address #=\u003e \"東京都港区芝公園4-2-8\"\naddress.furigana #=\u003e \"トウキョウトミナトクシバコウエン 4\"\n```\n\n### 都道府県・市区町村・町域データの属性\n\u003cdetails\u003e\n\u003csummary\u003e都道府県データの属性\u003c/summary\u003e\n\nクラス：`JapaneseAddressParser::Models::Prefecture`\n\n| 属性 | 説明 | 例 |\n| --- | --- | --- |\n| `code` | 都道府県コード | `\"01\"` |\n| `name` | 名前 | `\"北海道\"` |\n| `name_kana` | ふりがな | `\"ホッカイドウ\"` |\n| `name_romaji` | ローマ字 | `\"HOKKAIDO\"` |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e市区町村データの属性\u003c/summary\u003e\n\nクラス：`JapaneseAddressParser::Models::City`\n\n| 属性 | 説明 | 例 |\n| --- | --- | --- |\n| `code` | 市区町村コード | `\"01101\"` |\n| `formatted_code` | 整形された市区町村コード\u003cbr\u003e市区町村コードがない場合に `\"UNKNOWN\"` が入っています。 | `\"01101\"` / `\"UNKNOWN\"` |\n| `prefecture_code` | 都道府県コード | `\"01\"` |\n| `name` | 名前 | `\"札幌市中央区\"` |\n| `name_kana` | ふりがな | `\"サッポロシチュウオウク\"` |\n| `name_romaji` | ローマ字 | `\"SAPPORO SHI CHUO KU\"` |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e町域データの属性\u003c/summary\u003e\n\nクラス：`JapaneseAddressParser::Models::Town`\n\n| 属性 | 説明 | 例 |\n| --- | --- | --- |\n| `name` | 名前 | `\"旭ケ丘一丁目\"` |\n| `name_kana` | ふりがな | `\"アサヒガオカ 1\"` |\n| `name_romaji` | ローマ字 | `\"ASAHIGAOKA 1\"` |\n| `nickname` | 小字・通称名 |  |\n| `latitude` | 緯度 | `\"43.04223\"` |\n| `longitude` | 経度 | `\"141.319722\"` |\n\u003c/details\u003e\n\n都道府県や市区町村、町域のそれぞれの属性の値は [geolonia/japanese-addresses](https://github.com/geolonia/japanese-addresses) が提供している CSV ファイルの値そのままです。\n\n### `JapaneseAddressParser.call(address)`\n`address` の値を解析して、都道府県・市区町村・町域のデータを返します。\n\nなんらかの理由で住所の解析に失敗したときは `nil` を返します。\n\n### `JapaneseAddressParser.call!(address)`\n\n`address` の値を解析して、都道府県・市区町村・町域のデータを返します。\n\nなんらかの理由で住所の解析に失敗したときは `JapaneseAddressParser::NormalizeError` の例外を吐きます。\n\n## 開発\n開発に必要なライブラリをインストールするには、このコマンドを実行してください：\n\n```\nbin/setup\n```\n\n開発環境の構築は Docker を使ってもできます。\nMacOS でしか試していないので、他プラットフォームで動かなかったら issue でご報告ください。\n\n```\ndocker compose build\ndocker compose run --rm gemsrc sh\n```\n\n```\n/gemsrc # bin/console\nirb(main):001:0\u003e address = JapaneseAddressParser.call('東京都港区芝公園4-2-8')\n```\n\n自動テストやリンターを実行するには、このコマンドを実行してください：\n\n```\nrake\n```\n\n## 貢献方法\nイシューやプルリクエストは随時お待ちしています。\n\n特に住所の正規化については漏れているケースがまだまだ数多くありそうです。\n「この住所だとうまくパースできないよ」くらいの気軽なもので結構ですので、イシューでのご報告をお願いします。\n\n## ライセンス\nこの gem は [MIT ライセンス](https://opensource.org/licenses/MIT) の下でオープンソースとして利用可能です。\n\n## 行動規範\nJapaneseAddressParser に関してコードを書いたりイシューを追加したりする際は [行動規範](https://github.com/yamat47/japanese_address_parser/blob/main/CODE_OF_CONDUCT.md) に従ってください。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyamat47%2Fjapanese_address_parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyamat47%2Fjapanese_address_parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyamat47%2Fjapanese_address_parser/lists"}