Module: JpAddressComplement
- Defined in:
- lib/jp_address_complement/ken_all.rb,
lib/jp_address_complement.rb,
lib/jp_address_complement/railtie.rb,
lib/jp_address_complement/version.rb,
lib/jp_address_complement/searcher.rb,
lib/jp_address_complement/normalizer.rb,
lib/jp_address_complement/prefecture.rb,
lib/jp_address_complement/configuration.rb,
lib/jp_address_complement/address_record.rb,
lib/jp_address_complement/ken_all_downloader.rb,
lib/jp_address_complement/models/postal_code.rb,
lib/jp_address_complement/importers/csv_importer.rb,
lib/generators/jp_address_complement/install_generator.rb,
lib/jp_address_complement/validators/address_validator.rb,
lib/jp_address_complement/repositories/postal_code_repository.rb,
lib/jp_address_complement/repositories/csv_postal_code_repository.rb,
lib/jp_address_complement/repositories/active_record_postal_code_repository.rb
Overview
rbs_inline: enabled
Defined Under Namespace
Modules: Generators, Importers, KenAll, Prefecture, Repositories Classes: AddressRecord, AddressValidator, Configuration, Error, ImportError, KenAllDownloader, Normalizer, PostalCode, Railtie, Searcher
Constant Summary collapse
- VERSION =
: String
'0.3.0'- ADDRESS_RECORD_ATTRIBUTES =
郵便番号に対応する住所データの値オブジェクト ActiveRecord インスタンスを返さないことでコアロジックの AR 依存を排除する
%i[ postal_code pref_code pref city town kana_pref kana_city kana_town has_alias is_partial is_large_office ].freeze
Class Method Summary collapse
-
.base_record_class ⇒ Object
PostalCode モデルの継承元。未設定時は ActiveRecord::Base(activerecord gem が利用可能な場合)。 Gemfile に指定されていても require 前だと defined? が false になり得るため、未ロード時は require を試す。.
- .base_record_class=(klass) ⇒ Object
-
.configuration ⇒ Configuration
現在の設定を返す.
-
.configure {|Configuration| ... } ⇒ Object
Gem の設定を行う.
-
.postal_code_table_name ⇒ Object
PostalCode が参照するテーブル名。未設定時は 'jp_address_complement_postal_codes'。configuration.postal_code_table_name に委譲。.
- .postal_code_table_name=(name) ⇒ Object
-
.prefecture_code_from_name(name) ⇒ String?
都道府県名(正式名称)から都道府県コードを2桁文字列で返す.
-
.prefecture_name_from_code(code) ⇒ String?
都道府県コード(JIS X 0401)から都道府県名を返す.
-
.repository ⇒ Repositories::PostalCodeRepository
設定されたリポジトリを返す(デフォルトは ActiveRecord 実装).
-
.reset_configuration! ⇒ Object
設定をリセットする(主にテスト用).
-
.search_by_postal_code(code) ⇒ Array<AddressRecord>
7桁郵便番号から住所レコードを検索する.
-
.search_by_postal_code_prefix(prefix) ⇒ Array<AddressRecord>
郵便番号の先頭4桁以上から住所候補を検索する.
-
.search_postal_codes_by_address(pref:, city:, town: nil) ⇒ Array<[String, AddressRecord]>
都道府県・市区町村・町域から郵便番号候補を取得する(逆引き)。町域は前方一致。.
-
.valid_combination?(postal_code, address) ⇒ Boolean
郵便番号と住所文字列の整合性を検証する.
Class Method Details
.base_record_class ⇒ Object
PostalCode モデルの継承元。未設定時は ActiveRecord::Base(activerecord gem が利用可能な場合)。 Gemfile に指定されていても require 前だと defined? が false になり得るため、未ロード時は require を試す。
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/jp_address_complement.rb', line 42 def base_record_class base = configuration.postal_code_model_base return base if base require 'active_record' ActiveRecord::Base rescue LoadError => e raise Error, 'ActiveRecord is not available. Add gem "activerecord" to your Gemfile, or set ' \ "JpAddressComplement.configuration.postal_code_model_base. (#{e.})" end |
.base_record_class=(klass) ⇒ Object
55 56 57 |
# File 'lib/jp_address_complement.rb', line 55 def base_record_class=(klass) configuration.postal_code_model_base = klass end |
.configuration ⇒ Configuration
現在の設定を返す
35 36 37 |
# File 'lib/jp_address_complement.rb', line 35 def configuration @configuration ||= Configuration.new end |
.configure {|Configuration| ... } ⇒ Object
Gem の設定を行う
28 29 30 |
# File 'lib/jp_address_complement.rb', line 28 def configure yield(configuration) end |
.postal_code_table_name ⇒ Object
PostalCode が参照するテーブル名。未設定時は 'jp_address_complement_postal_codes'。configuration.postal_code_table_name に委譲。
61 62 63 |
# File 'lib/jp_address_complement.rb', line 61 def postal_code_table_name configuration.postal_code_table_name || 'jp_address_complement_postal_codes' end |
.postal_code_table_name=(name) ⇒ Object
66 67 68 |
# File 'lib/jp_address_complement.rb', line 66 def postal_code_table_name=(name) configuration.postal_code_table_name = name end |
.prefecture_code_from_name(name) ⇒ String?
都道府県名(正式名称)から都道府県コードを2桁文字列で返す
120 121 122 |
# File 'lib/jp_address_complement.rb', line 120 def prefecture_code_from_name(name) Prefecture.code_from_name(name) end |
.prefecture_name_from_code(code) ⇒ String?
都道府県コード(JIS X 0401)から都道府県名を返す
112 113 114 |
# File 'lib/jp_address_complement.rb', line 112 def prefecture_name_from_code(code) Prefecture.name_from_code(code) end |
.repository ⇒ Repositories::PostalCodeRepository
設定されたリポジトリを返す(デフォルトは ActiveRecord 実装)
79 80 81 |
# File 'lib/jp_address_complement.rb', line 79 def repository configuration.repository ||= default_repository end |
.reset_configuration! ⇒ Object
設定をリセットする(主にテスト用)
72 73 74 |
# File 'lib/jp_address_complement.rb', line 72 def reset_configuration! @configuration = Configuration.new end |
.search_by_postal_code(code) ⇒ Array<AddressRecord>
7桁郵便番号から住所レコードを検索する
87 88 89 |
# File 'lib/jp_address_complement.rb', line 87 def search_by_postal_code(code) Searcher.new(repository).search_by_postal_code(code) end |
.search_by_postal_code_prefix(prefix) ⇒ Array<AddressRecord>
郵便番号の先頭4桁以上から住所候補を検索する
95 96 97 |
# File 'lib/jp_address_complement.rb', line 95 def search_by_postal_code_prefix(prefix) Searcher.new(repository).search_by_postal_code_prefix(prefix) end |
.search_postal_codes_by_address(pref:, city:, town: nil) ⇒ Array<[String, AddressRecord]>
都道府県・市区町村・町域から郵便番号候補を取得する(逆引き)。町域は前方一致。
130 131 132 |
# File 'lib/jp_address_complement.rb', line 130 def search_postal_codes_by_address(pref:, city:, town: nil) Searcher.new(repository).search_postal_codes_by_address(pref: pref, city: city, town: town) end |
.valid_combination?(postal_code, address) ⇒ Boolean
郵便番号と住所文字列の整合性を検証する
104 105 106 |
# File 'lib/jp_address_complement.rb', line 104 def valid_combination?(postal_code, address) Searcher.new(repository).valid_combination?(postal_code, address) end |