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
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_codes ⇒ Object
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 |