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