Sha256: 18e3bd79918d271eb0b4e3fb47f802aca0dc0e825ff811ed93458129ec10fa54

Contents?: true

Size: 730 Bytes

Versions: 23

Compression:

Stored size: 730 Bytes

Contents

# frozen_string_literal: true

require 'jpostcode/version'
require 'jpostcode/address'
require 'json'

module Jpostcode
  DATA_DIR = File.dirname(__FILE__) + '/../jpostcode-data/data/json/'

  module_function

  def find(raw_zip_code)
    zip_code = raw_zip_code.to_s.delete('-')
    return nil unless /^\d{7,7}$/ =~ zip_code

    json_file = DATA_DIR + zip_code.slice(0, 3) + '.json'
    return nil unless File.exist?(json_file)

    data = JSON.parse(File.open(json_file).read)
    address_data = data[zip_code.slice(3, 4)]
    return nil if address_data.nil?

    if address_data.instance_of?(Array)
      address_data.map { |a| Jpostcode::Address.new(a) }
    else
      Jpostcode::Address.new(address_data)
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
jpostcode-1.0.0.20201001 lib/jpostcode.rb
jpostcode-1.0.0.20200901 lib/jpostcode.rb
jpostcode-1.0.0.20200801 lib/jpostcode.rb
jpostcode-1.0.0.20200701 lib/jpostcode.rb
jpostcode-1.0.0.20200601 lib/jpostcode.rb
jpostcode-1.0.0.20200501 lib/jpostcode.rb
jpostcode-1.0.0.20200401 lib/jpostcode.rb
jpostcode-1.0.0.20200302 lib/jpostcode.rb
jpostcode-1.0.0.20200201 lib/jpostcode.rb
jpostcode-0.1.20 lib/jpostcode.rb
jpostcode-0.1.19 lib/jpostcode.rb
jpostcode-0.1.18 lib/jpostcode.rb
jpostcode-0.1.17 lib/jpostcode.rb
jpostcode-0.1.16 lib/jpostcode.rb
jpostcode-0.1.15 lib/jpostcode.rb
jpostcode-0.1.14 lib/jpostcode.rb
jpostcode-0.1.13 lib/jpostcode.rb
jpostcode-0.1.12 lib/jpostcode.rb
jpostcode-0.1.11 lib/jpostcode.rb
jpostcode-0.1.10 lib/jpostcode.rb