Module: JapaneseAddressParser
- Defined in:
- lib/japanese_address_parser/utils.rb,
lib/japanese_address_parser.rb,
lib/japanese_address_parser/city.rb,
lib/japanese_address_parser/dict.rb,
lib/japanese_address_parser/town.rb,
lib/japanese_address_parser/config.rb,
lib/japanese_address_parser/address.rb,
lib/japanese_address_parser/fetcher.rb,
lib/japanese_address_parser/kan2num.rb,
lib/japanese_address_parser/version.rb,
lib/japanese_address_parser/zen2han.rb,
lib/japanese_address_parser/upstream.rb,
lib/japanese_address_parser/normalize.rb,
lib/japanese_address_parser/exceptions.rb,
lib/japanese_address_parser/patch_addr.rb,
lib/japanese_address_parser/prefecture.rb,
lib/japanese_address_parser/cache_regexes.rb,
lib/japanese_address_parser/data/api_meta.rb,
lib/japanese_address_parser/data/single_city.rb,
lib/japanese_address_parser/data/single_rsdt.rb,
lib/japanese_address_parser/japanese_numeral.rb,
lib/japanese_address_parser/normalize_result.rb,
lib/japanese_address_parser/normalize_helpers.rb,
lib/japanese_address_parser/data/machi_aza_api.rb,
lib/japanese_address_parser/data/single_chiban.rb,
lib/japanese_address_parser/data/prefecture_api.rb,
lib/japanese_address_parser/dictionaries/convert.rb,
lib/japanese_address_parser/data/single_machi_aza.rb,
lib/japanese_address_parser/dictionaries/jis_dai2.rb,
lib/japanese_address_parser/data/single_prefecture.rb,
lib/japanese_address_parser/normalize_result_point.rb,
lib/japanese_address_parser/dictionaries/dictionary.rb,
sig/data.rbs,
sig/dict.rbs,
sig/utils.rbs,
sig/config.rbs,
sig/address.rbs,
sig/fetcher.rbs,
sig/kan2num.rbs,
sig/zen2han.rbs,
sig/upstream.rbs,
sig/normalize.rbs,
sig/patch_addr.rbs,
sig/dictionaries.rbs,
sig/cache_regexes.rbs,
sig/japanese_numeral.rbs,
sig/normalize_result.rbs,
sig/normalize_helpers.rbs,
sig/normalize_result_point.rbs,
sig/japanese_address_parser.rbs
Overview
Port of: https://github.com/geolonia/normalize-japanese-addresses/blob/49c1ae4be9d2ba353b86eaf40fd7eb12a1269f3e/src/types.ts Upstream: @geolonia/normalize-japanese-addresses v3.1.3 NormalizeResultPoint と座標変換ヘルパ。
Defined Under Namespace
Modules: CacheRegexes, Data, Dict, Dictionaries, Fetcher, JapaneseNumeral, Kan2num, Normalize, NormalizeHelpers, PatchAddr, ResultPoint, Utils, Zen2han Classes: Address, City, Config, NormalizeError, NormalizeResult, NormalizeResultMetadata, NormalizeResultPoint, Prefecture, Town
Constant Summary collapse
- DEFAULT_LEVEL =
JS: defaultOption = { level: 8 }
8- VERSION =
'4.0.1'- UPSTREAM_VERSION =
'3.1.3'- UPSTREAM_COMMIT_SHA =
'49c1ae4be9d2ba353b86eaf40fd7eb12a1269f3e'
Class Method Summary collapse
-
.call(address, level: DEFAULT_LEVEL) ⇒ Object
住所文字列を正規化して Address を返す。fetch 失敗時は nil。.
-
.call!(address, level: DEFAULT_LEVEL) ⇒ Object
住所文字列を正規化して Address を返す。fetch 失敗時は NormalizeError を raise。.
-
.config ⇒ Config
JS: currentConfig(モジュールレベルの可変シングルトン)。.
-
.configure {|config| ... } ⇒ void
Ruby 慣習の設定ブロック。
JapaneseAddressParser.configure { |c| c.cache_size = ... }のように使う。.
Instance Method Summary collapse
Class Method Details
.call(address, level: DEFAULT_LEVEL) ⇒ Object
住所文字列を正規化して Address を返す。fetch 失敗時は nil。
24 25 26 27 28 |
# File 'lib/japanese_address_parser.rb', line 24 def call(address, level: DEFAULT_LEVEL) call!(address, level:) rescue ::JapaneseAddressParser::NormalizeError nil end |
.call!(address, level: DEFAULT_LEVEL) ⇒ Object
住所文字列を正規化して Address を返す。fetch 失敗時は NormalizeError を raise。
rescue で握るのは唯一の I/O 境界 Fetcher が投げ得る「fetch 失敗」のみ(working_agreement §1-7):
SocketError — DNS 解決不可・接続不可
SystemCallError — Errno::*(接続拒否、file:// のファイル無し/権限不足 等)
Net::OpenTimeout / Net::ReadTimeout — タイムアウト
JSON::ParserError — 取得したボディが不正な JSON(配信データの取得失敗)。
設定/プログラマエラー(ArgumentError=未知 URL スキーム 等)は意図的に握らず伝播させる。
38 39 40 41 42 |
# File 'lib/japanese_address_parser.rb', line 38 def call!(address, level: DEFAULT_LEVEL) Address.from_normalize_result(Normalize.call(address, level:)) rescue ::SocketError, ::SystemCallError, ::Net::OpenTimeout, ::Net::ReadTimeout, ::JSON::ParserError => e raise(::JapaneseAddressParser::NormalizeError, "failed to fetch address data: #{e.}") end |
.config ⇒ Config
JS: currentConfig(モジュールレベルの可変シングルトン)。
29 30 31 |
# File 'lib/japanese_address_parser/config.rb', line 29 def self.config @config ||= Config.new end |
.configure {|config| ... } ⇒ void
This method returns an undefined value.
Ruby 慣習の設定ブロック。JapaneseAddressParser.configure { |c| c.cache_size = ... } のように使う。
34 35 36 37 |
# File 'lib/japanese_address_parser/config.rb', line 34 def self.configure yield(config) if block_given? config end |