postal_codes 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,36 @@
1
+ require "postal_codes/version"
2
+ require 'yaml'
3
+
4
+ module PostalCodes
5
+ def self.data
6
+ @data ||= self.compute_data
7
+ end
8
+
9
+ def self.compute_data
10
+ result = Hash.new
11
+ list = Dir.entries(File.expand_path(File.dirname(__FILE__))+"/data").select {|f| !File.directory? f}
12
+ list.each do |country|
13
+ result[country.split(".")[0]] = YAML.load_file(File.expand_path(File.dirname(__FILE__))+'/data/'+country)
14
+ end
15
+ result
16
+ end
17
+
18
+ def self.find_all(postal_code)
19
+ start = Time.now
20
+ list = self.data
21
+ list.each do |country,data|
22
+ postcodes = []
23
+ result = Hash.new
24
+ data['states'].keys.each do |state|
25
+ if !data['states'][state][postal_code].nil?
26
+ result['country'] = data['country']
27
+ result['state'] = state
28
+ result['locality'] = data['states'][state][postal_code]
29
+ break
30
+ end
31
+ end
32
+ return result
33
+ end
34
+ end
35
+ end
36
+
@@ -0,0 +1,3 @@
1
+ module PostalCodes
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'postal_codes/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "postal_codes"
8
+ spec.version = PostalCodes::VERSION
9
+ spec.authors = ["Dinesh Goyal"]
10
+ spec.email = ["dineshgoyal1669@gmail.com"]
11
+ spec.summary = %q{Postal Codes search among Countries}
12
+ spec.description = %q{TO fond out details like country, state, locality of postal code.}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = Dir['lib/*'] + Dir['lib/data/*'] + Dir['lib/postal_codes/*']
17
+ spec.files += Dir['[A-Z]*']
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.6"
23
+ spec.add_development_dependency "rake"
24
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: postal_codes
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dinesh Goyal
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-02-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.6'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.6'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: TO fond out details like country, state, locality of postal code.
47
+ email:
48
+ - dineshgoyal1669@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/postal_codes.rb
54
+ - lib/data/india.yml
55
+ - lib/postal_codes/version.rb
56
+ - Gemfile
57
+ - LICENSE.txt
58
+ - postal_codes-0.0.1.gem
59
+ - postal_codes.gemspec
60
+ - Rakefile
61
+ - README.md
62
+ homepage: ''
63
+ licenses:
64
+ - MIT
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 1.8.28
84
+ signing_key:
85
+ specification_version: 3
86
+ summary: Postal Codes search among Countries
87
+ test_files: []