Module: PostalCodes

Defined in:
lib/postal_codes.rb,
lib/postal_codes/version.rb

Constant Summary collapse

VERSION =
"0.0.9"

Class Method Summary collapse

Class Method Details

.compute_dataObject



9
10
11
12
13
14
15
16
# 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

.dataObject



5
6
7
# File 'lib/postal_codes.rb', line 5

def self.data
  @data ||= self.compute_data
end

.find_all(postal_code) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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