Module: JpZipCode

Defined in:
lib/jp_zip_code.rb,
lib/jp_zip_code/filer.rb,
lib/jp_zip_code/updater.rb,
lib/jp_zip_code/version.rb

Defined Under Namespace

Classes: Filer, Updater

Constant Summary collapse

VERSION =
'1.0.0'

Class Method Summary collapse

Class Method Details

.convert(data) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/jp_zip_code.rb', line 20

def self.convert(data)
  data['pref_code'] = pref_codes.invert[data['pref_kanji']].to_s

  data.each_with_object({}) do |(key, value), hash|
    converted = %w(イカニケイサイガナイバアイ IKANIKEISAIGANAIBAAI 以下に掲載がない場合).include?(value) ? '' : value
    converted = converted.gsub(/\(.*\)/, '').gsub(/(.*)/, '')
    converted = converted.split(' ').map(&:capitalize).join(' ')
    %w(Ken To Fu Shi Gun Ku Machi).each do |suffix|
      converted = converted.gsub(/ #{suffix}/, "-#{suffix}")
    end
    converted = converted.split(' ').reverse.join(' ')
    hash[key] = converted
  end
end

.pref_codesObject



35
36
37
# File 'lib/jp_zip_code.rb', line 35

def self.pref_codes
  YAML.load(File.open("#{File.dirname(__FILE__)}/../data/pref_code.yaml"))
end

.search(zip_code) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/jp_zip_code.rb', line 9

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

  json_file = "#{File.dirname(__FILE__)}/../data/zip_code/#{zip_code[0, 4]}.json"
  if File.exist?(json_file)
    data = File.open(json_file) { |json| JSON.load(json) }
    convert(data[zip_code]) if data[zip_code]
  end
end

.updateObject



39
40
41
# File 'lib/jp_zip_code.rb', line 39

def self.update
  JpZipCode::Updater.new(false).execute
end