module PostalCodes
Constants
- VERSION
Public Class Methods
compute_data()
click to toggle source
# File lib/postal_codes.rb, line 9 def self.compute_data result = Hash.new list = Dir.entries(File.expand_path(File.dirname(__FILE__))+"/data").select {|f| !File.directory? f} list.each do |country| result[country.split(".")[0]] = YAML.load_file(File.expand_path(File.dirname(__FILE__))+'/data/'+country) end result end
data()
click to toggle source
# File lib/postal_codes.rb, line 5 def self.data @data ||= self.compute_data end
find_all(postal_code)
click to toggle source
# File lib/postal_codes.rb, line 18 def self.find_all(postal_code) list = self.data postal_code = postal_code.to_i if postal_code.to_i.to_s == postal_code final_result = Array.new list.each do |country,data| result = Hash.new postcodes = [] data['states'].keys.each do |state| if !data['states'][state][postal_code].nil? result['country'] = data['country'] result['state'] = state result['locality'] = data['states'][state][postal_code] break end end final_result << result if result.size > 0 end return final_result end