japanese_address_parser 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -1
- data/.rubocop_todo.yml +17 -26
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/README.md +2 -16
- data/lib/japanese_address_parser/address_normalizer/normalize_japanese_addresses_schmoozer.rb +19 -0
- data/lib/japanese_address_parser/address_normalizer.rb +20 -0
- data/lib/japanese_address_parser/exceptions.rb +5 -0
- data/lib/japanese_address_parser/version.rb +1 -1
- data/lib/japanese_address_parser.rb +3 -8
- metadata +5 -3
- data/lib/japanese_address_parser/normalize_japanese_addresses_schmoozer.rb +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dcce626ea8eb1f3c3e2099781dbe27a1e8ec4c8b9ef8256382ced63481f83849
|
|
4
|
+
data.tar.gz: 9445753fbce527763ed50cb88adb1f1f00c7fedc1c21cc959c7f6c7c7b1fbfe4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6eb0c0f7aa0dc7775cd28b6f246a307c91d612429b086422406d562f68dd7c992dcccc05be5c2cef13319dd0e98a2748be50808dd14bcff18a169370b59e17d1
|
|
7
|
+
data.tar.gz: 23f4f05762a7c9bf71f074defca75b6a09bb3d63fc0bb6b1d42cbcb8169c231aa3d09667fa6d54d4791953ec27806b457feb82be2a557f8c09d02865982e03cd
|
data/.rubocop.yml
CHANGED
|
@@ -24,11 +24,14 @@ Style/Copyright:
|
|
|
24
24
|
Style/AsciiComments:
|
|
25
25
|
Enabled: false
|
|
26
26
|
|
|
27
|
-
# CSVのヘッダーの日本語を解釈するために日本語文字列のハッシュを許容する。
|
|
28
27
|
Style/StringHashKeys:
|
|
29
28
|
Exclude:
|
|
29
|
+
# CSVのヘッダーの日本語を解釈するために日本語文字列のハッシュを許容する。
|
|
30
30
|
- lib/japanese_address_parser/csv_parser.rb
|
|
31
31
|
|
|
32
|
+
# ライブラリが返すハッシュのキーが文字列なので許容する。
|
|
33
|
+
- spec/japanese_address_parser/address_normalizer_spec.rb
|
|
34
|
+
|
|
32
35
|
# elseがない場合にはcase文ではなくif文を許容する。
|
|
33
36
|
Style/MissingElse:
|
|
34
37
|
EnforcedStyle: case
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on 2022-
|
|
3
|
+
# on 2022-02-05 13:11:56 UTC using RuboCop version 1.24.1.
|
|
4
4
|
# The point is for the user to remove these configuration records
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
@@ -13,44 +13,34 @@ Layout/RedundantLineBreak:
|
|
|
13
13
|
Exclude:
|
|
14
14
|
- 'lib/japanese_address_parser/csv_parser.rb'
|
|
15
15
|
|
|
16
|
-
# Offense count:
|
|
16
|
+
# Offense count: 2
|
|
17
17
|
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
|
18
18
|
Metrics/AbcSize:
|
|
19
|
-
Max:
|
|
20
|
-
|
|
21
|
-
# Offense count: 1
|
|
22
|
-
# Configuration parameters: IgnoredMethods.
|
|
23
|
-
Metrics/CyclomaticComplexity:
|
|
24
|
-
Max: 9
|
|
19
|
+
Max: 27
|
|
25
20
|
|
|
26
|
-
# Offense count:
|
|
21
|
+
# Offense count: 2
|
|
27
22
|
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
|
28
23
|
Metrics/MethodLength:
|
|
29
|
-
Max:
|
|
24
|
+
Max: 13
|
|
30
25
|
|
|
31
|
-
# Offense count:
|
|
26
|
+
# Offense count: 1
|
|
32
27
|
# Configuration parameters: CountComments, CountAsOne.
|
|
33
28
|
Metrics/ModuleLength:
|
|
34
|
-
Max:
|
|
29
|
+
Max: 117
|
|
35
30
|
|
|
36
31
|
# Offense count: 1
|
|
37
32
|
# Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
|
|
38
33
|
Metrics/ParameterLists:
|
|
39
34
|
Max: 6
|
|
40
35
|
|
|
41
|
-
# Offense count:
|
|
42
|
-
# Configuration parameters: IgnoredMethods.
|
|
43
|
-
Metrics/PerceivedComplexity:
|
|
44
|
-
Max: 9
|
|
45
|
-
|
|
46
|
-
# Offense count: 6
|
|
36
|
+
# Offense count: 4
|
|
47
37
|
# Configuration parameters: CountAsOne.
|
|
48
38
|
RSpec/ExampleLength:
|
|
49
|
-
Max:
|
|
39
|
+
Max: 6
|
|
50
40
|
|
|
51
|
-
# Offense count:
|
|
41
|
+
# Offense count: 4
|
|
52
42
|
RSpec/MultipleExpectations:
|
|
53
|
-
Max:
|
|
43
|
+
Max: 5
|
|
54
44
|
|
|
55
45
|
# Offense count: 9
|
|
56
46
|
# Configuration parameters: AllowedConstants.
|
|
@@ -59,31 +49,32 @@ Style/Documentation:
|
|
|
59
49
|
- 'spec/**/*'
|
|
60
50
|
- 'test/**/*'
|
|
61
51
|
- 'lib/japanese_address_parser.rb'
|
|
52
|
+
- 'lib/japanese_address_parser/address_normalizer.rb'
|
|
53
|
+
- 'lib/japanese_address_parser/address_normalizer/normalize_japanese_addresses_schmoozer.rb'
|
|
62
54
|
- 'lib/japanese_address_parser/address_parser.rb'
|
|
63
|
-
- 'lib/japanese_address_parser/address_parser/pattern_creator.rb'
|
|
64
|
-
- 'lib/japanese_address_parser/address_parser/town_and_after_normalizer.rb'
|
|
65
55
|
- 'lib/japanese_address_parser/csv_parser.rb'
|
|
66
56
|
- 'lib/japanese_address_parser/models/address.rb'
|
|
67
57
|
- 'lib/japanese_address_parser/models/city.rb'
|
|
68
58
|
- 'lib/japanese_address_parser/models/prefecture.rb'
|
|
69
59
|
- 'lib/japanese_address_parser/models/town.rb'
|
|
70
60
|
|
|
71
|
-
# Offense count:
|
|
61
|
+
# Offense count: 27
|
|
72
62
|
# Configuration parameters: RequireForNonPublicMethods.
|
|
73
63
|
Style/DocumentationMethod:
|
|
74
64
|
Exclude:
|
|
75
65
|
- 'spec/**/*'
|
|
76
66
|
- 'test/**/*'
|
|
77
67
|
- 'lib/japanese_address_parser.rb'
|
|
68
|
+
- 'lib/japanese_address_parser/address_normalizer.rb'
|
|
69
|
+
- 'lib/japanese_address_parser/address_normalizer/normalize_japanese_addresses_schmoozer.rb'
|
|
78
70
|
- 'lib/japanese_address_parser/address_parser.rb'
|
|
79
|
-
- 'lib/japanese_address_parser/address_parser/town_and_after_normalizer.rb'
|
|
80
71
|
- 'lib/japanese_address_parser/csv_parser.rb'
|
|
81
72
|
- 'lib/japanese_address_parser/models/address.rb'
|
|
82
73
|
- 'lib/japanese_address_parser/models/city.rb'
|
|
83
74
|
- 'lib/japanese_address_parser/models/prefecture.rb'
|
|
84
75
|
- 'lib/japanese_address_parser/models/town.rb'
|
|
85
76
|
|
|
86
|
-
# Offense count:
|
|
77
|
+
# Offense count: 9
|
|
87
78
|
# Cop supports --auto-correct.
|
|
88
79
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
|
89
80
|
# URISchemes: http, https
|
data/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,11 @@ Change Log の形式は [Keep a Changelog](http://keepachangelog.com/) に従い
|
|
|
17
17
|
|
|
18
18
|
### Security
|
|
19
19
|
|
|
20
|
+
## [2.1.0] - 2022-02-05
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- [#38](https://github.com/yamat47/japanese_address_parser/pull/38) 住所の解析に失敗したときに発生する例外のクラスを`JapaneseAddressParser::NormalizeError`に固定した。([@yamat47](https://github.com/yamat47))
|
|
24
|
+
|
|
20
25
|
## [2.0.0] - 2022-01-31
|
|
21
26
|
### Added
|
|
22
27
|
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -88,23 +88,9 @@ address.furigana #=> "トウキョウトミナトクシバコウエン 4"
|
|
|
88
88
|
| `longitude` | 経度 | `"141.319722"` |
|
|
89
89
|
</details>
|
|
90
90
|
|
|
91
|
-
都道府県や市区町村、町域のそれぞれの属性の値は geolonia/japanese-addresses が提供している CSV ファイルの値そのままです。
|
|
91
|
+
都道府県や市区町村、町域のそれぞれの属性の値は [geolonia/japanese-addresses](https://github.com/geolonia/japanese-addresses) が提供している CSV ファイルの値そのままです。
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
見つけられた地名のデータだけを含んだデータを返します。
|
|
95
|
-
|
|
96
|
-
```ruby
|
|
97
|
-
musashi = JapaneseAddressParser.call('武蔵国港区芝公園4-2-8')
|
|
98
|
-
musashi.prefecture #=> nil
|
|
99
|
-
musashi.city #=> nil
|
|
100
|
-
musashi.town #=> nil
|
|
101
|
-
|
|
102
|
-
kounan = JapaneseAddressParser.call('東京都港南区芝公園4-2-8')
|
|
103
|
-
kounan.prefecture.name #=> "東京都"
|
|
104
|
-
kounan.city #=> nil
|
|
105
|
-
kounan.town #=> nil
|
|
106
|
-
kounan.furigana #=> "トウキョウト"
|
|
107
|
-
```
|
|
93
|
+
何らかの理由で住所の解析に失敗したときは `JapaneseAddressParser::NormalizeError` を `raise` します。
|
|
108
94
|
|
|
109
95
|
## 開発
|
|
110
96
|
開発に必要なライブラリをインストールするには、このコマンドを実行してください:
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'schmooze'
|
|
4
|
+
|
|
5
|
+
module JapaneseAddressParser
|
|
6
|
+
module AddressNormalizer
|
|
7
|
+
class NormalizeJapaneseAddressesSchmoozer < ::Schmooze::Base
|
|
8
|
+
JS_PACKAGE_PATH = ::File.expand_path('../../../js', __dir__)
|
|
9
|
+
public_constant :JS_PACKAGE_PATH
|
|
10
|
+
|
|
11
|
+
dependencies normalize_japanese_addresses: '@geolonia/normalize-japanese-addresses'
|
|
12
|
+
method :normalize, 'normalize_japanese_addresses.normalize'
|
|
13
|
+
|
|
14
|
+
def self.call(full_address)
|
|
15
|
+
new(::JapaneseAddressParser::AddressNormalizer::NormalizeJapaneseAddressesSchmoozer::JS_PACKAGE_PATH).normalize(full_address)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'address_normalizer/normalize_japanese_addresses_schmoozer'
|
|
4
|
+
require_relative 'exceptions'
|
|
5
|
+
|
|
6
|
+
module JapaneseAddressParser
|
|
7
|
+
module AddressNormalizer
|
|
8
|
+
def call(full_address)
|
|
9
|
+
# https://github.com/geolonia/normalize-japanese-addresses を使って住所を正規化する。
|
|
10
|
+
::JapaneseAddressParser::AddressNormalizer::NormalizeJapaneseAddressesSchmoozer.call(full_address)
|
|
11
|
+
|
|
12
|
+
# Schmoozeが稀に例外を吐くことがある。
|
|
13
|
+
# ライブラリを利用するときに扱いやすくするために例外のクラスを固定しておく。
|
|
14
|
+
rescue ::StandardError
|
|
15
|
+
raise(::JapaneseAddressParser::NormalizeError)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module_function :call
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative 'japanese_address_parser/address_normalizer'
|
|
3
4
|
require_relative 'japanese_address_parser/address_parser'
|
|
4
5
|
require_relative 'japanese_address_parser/version'
|
|
5
|
-
require_relative 'japanese_address_parser/normalize_japanese_addresses_schmoozer'
|
|
6
6
|
|
|
7
7
|
module JapaneseAddressParser
|
|
8
|
-
JS_PACKAGE_PATH = ::File.expand_path('../js', __dir__)
|
|
9
|
-
public_constant :JS_PACKAGE_PATH
|
|
10
|
-
|
|
11
8
|
module_function
|
|
12
9
|
|
|
13
10
|
def call(full_address)
|
|
14
|
-
|
|
15
|
-
normalize_japanese_addresses = ::JapaneseAddressParser::NormalizeJapaneseAddressesSchmoozer.new(::JapaneseAddressParser::JS_PACKAGE_PATH)
|
|
16
|
-
result = normalize_japanese_addresses.normalize(full_address)
|
|
11
|
+
normalized = ::JapaneseAddressParser::AddressNormalizer.call(full_address)
|
|
17
12
|
|
|
18
13
|
# このライブラリで探索するのは町域まで。
|
|
19
14
|
# それ以降のデータを使って探索するとデータと名前が一致しないことがあるので、町域までのデータを使う。
|
|
20
|
-
::JapaneseAddressParser::AddressParser.call("#{
|
|
15
|
+
::JapaneseAddressParser::AddressParser.call("#{normalized['pref']}#{normalized['city']}#{normalized['town']}")
|
|
21
16
|
end
|
|
22
17
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: japanese_address_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yamaguchi Takuya
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-02-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: schmooze
|
|
@@ -252,6 +252,8 @@ files:
|
|
|
252
252
|
- js/package-lock.json
|
|
253
253
|
- js/package.json
|
|
254
254
|
- lib/japanese_address_parser.rb
|
|
255
|
+
- lib/japanese_address_parser/address_normalizer.rb
|
|
256
|
+
- lib/japanese_address_parser/address_normalizer/normalize_japanese_addresses_schmoozer.rb
|
|
255
257
|
- lib/japanese_address_parser/address_parser.rb
|
|
256
258
|
- lib/japanese_address_parser/csv_parser.rb
|
|
257
259
|
- lib/japanese_address_parser/data/01-01101.csv
|
|
@@ -2196,11 +2198,11 @@ files:
|
|
|
2196
2198
|
- lib/japanese_address_parser/data/47-47382.csv
|
|
2197
2199
|
- lib/japanese_address_parser/data/47.csv
|
|
2198
2200
|
- lib/japanese_address_parser/data/prefectures.csv
|
|
2201
|
+
- lib/japanese_address_parser/exceptions.rb
|
|
2199
2202
|
- lib/japanese_address_parser/models/address.rb
|
|
2200
2203
|
- lib/japanese_address_parser/models/city.rb
|
|
2201
2204
|
- lib/japanese_address_parser/models/prefecture.rb
|
|
2202
2205
|
- lib/japanese_address_parser/models/town.rb
|
|
2203
|
-
- lib/japanese_address_parser/normalize_japanese_addresses_schmoozer.rb
|
|
2204
2206
|
- lib/japanese_address_parser/version.rb
|
|
2205
2207
|
- sig/japanese_address_parser.rbs
|
|
2206
2208
|
homepage: https://github.com/yamat47/japanese_address_parser
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'schmooze'
|
|
4
|
-
|
|
5
|
-
module JapaneseAddressParser
|
|
6
|
-
class NormalizeJapaneseAddressesSchmoozer < ::Schmooze::Base
|
|
7
|
-
dependencies normalize_japanese_addresses: '@geolonia/normalize-japanese-addresses'
|
|
8
|
-
method :normalize, 'normalize_japanese_addresses.normalize'
|
|
9
|
-
end
|
|
10
|
-
end
|