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 }

Returns:

  • (Integer)
8
VERSION =

Returns:

  • (String)
'4.0.1'
UPSTREAM_VERSION =

Returns:

  • (String)
'3.1.3'
UPSTREAM_COMMIT_SHA =

Returns:

  • (String)
'49c1ae4be9d2ba353b86eaf40fd7eb12a1269f3e'

Class Method Summary collapse

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.message}")
end

.configConfig

JS: currentConfig(モジュールレベルの可変シングルトン)。

Returns:



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 = ... } のように使う。

Yields:



34
35
36
37
# File 'lib/japanese_address_parser/config.rb', line 34

def self.configure
  yield(config) if block_given?
  config
end

Instance Method Details

#self?.callAddress?

Parameters:

  • address (String)
  • level: (Integer)

Returns:



10
# File 'sig/japanese_address_parser.rbs', line 10

def self?.call: (String address, ?level: Integer) -> Address?

#self?.call!Address

Parameters:

  • address (String)
  • level: (Integer)

Returns:



11
# File 'sig/japanese_address_parser.rbs', line 11

def self?.call!: (String address, ?level: Integer) -> Address