Module: ZipcodeJa

Defined in:
lib/zipcode_ja.rb,
lib/zipcode_ja/version.rb

Constant Summary collapse

VERSION =
"0.0.3"

Class Method Summary collapse

Class Method Details

.find(zipcode) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/zipcode_ja.rb', line 10

def find(zipcode)
  zipcode =~ /^[0-9]{7}$/ or return

  cc = zipcode[0, 2].to_sym
  if !@_zipcodes[cc]
    zip_path = File.join(File.dirname(__FILE__), "../data/zipcode-#{cc}xxxxx.csv")
    FileTest.file?(zip_path) or return

    @_zipcodes[cc] = {}
    CSV.foreach(File.open(zip_path)) do |row|
      @_zipcodes[cc][row[2]] = row
    end

    clear_cache if @_zipcodes.length > @_cache_length
  end

  @_zipcodes[cc][zipcode]
end