Module: Jipcode

Defined in:
lib/jipcode.rb,
lib/jipcode/version.rb,
lib/jipcode/japan_post.rb

Defined Under Namespace

Modules: JapanPost

Constant Summary collapse

ZIPCODE_PATH =
"#{File.dirname(__FILE__)}/../zipcode/latest".freeze
VERSION =
'1.4.10'

Class Method Summary collapse

Class Method Details

.locate(zipcode) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/jipcode.rb', line 7

def locate(zipcode)
  # 数字7桁以外の入力は受け付けない
  return [] unless zipcode =~ /\A\d{7}?\z/

  # 上3桁にマッチするファイルが存在しなければ該当なし
  path = "#{ZIPCODE_PATH}/#{zipcode[0..2]}.csv"
  return [] unless File.exist?(path)

  addresses_array = CSV.read(path).select { |address| address[0] == zipcode }
  addresses_array.map do |address_param|
    {
      zipcode:    address_param[0],
      prefecture: address_param[1],
      city:       address_param[2],
      town:       address_param[3]
    }
  end
end