serbia_zip_codes 0.0.2

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,18 @@
1
+ require 'yaml'
2
+
3
+ class SerbiaZipCodes
4
+ def self.load_data
5
+ @data = YAML.load_file File.join(File.dirname(__FILE__),"data/serbia_zip_codes.yaml")
6
+ end
7
+
8
+ def self.find_by_zip(zip = nil)
9
+ load_data
10
+ @data.select { |d| d["zip_code"].match /#{zip}/i }
11
+ end
12
+
13
+
14
+ def self.find_by_city(city = nil)
15
+ load_data
16
+ @data.select { |d| d["city"].match /#{city}/i }
17
+ end
18
+ end
@@ -0,0 +1,21 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "serbia_zip_codes"
7
+ spec.version = "0.0.2"
8
+ spec.authors = ["Nebojša Jakovljević"]
9
+ spec.email = ["nebojsa@nebjak.net"]
10
+ spec.summary = %q{Easy access to Serbia zip codes}
11
+ spec.description = %q{Easy access to Serbia zip codes. You can search zip code by city, or city by zip code.}
12
+ spec.homepage = "http://github.com/nebjak/serbia_zip_codes-ruby"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_development_dependency "rake", "~> 10.0"
21
+ end
@@ -0,0 +1,41 @@
1
+ require 'test/unit'
2
+ require 'serbia_zip_codes'
3
+
4
+ class SerbiaZipCodesTest < Test::Unit::TestCase
5
+ def test_search_by_zip
6
+ small_result = [{"city"=>"Loznica", "zip_code"=>"15300"}]
7
+ big_result = [
8
+ {"city"=>"Loznica", "zip_code"=>"15300"},
9
+ {"city"=>"Korenita", "zip_code"=>"15302"},
10
+ {"city"=>"Tršić", "zip_code"=>"15303"},
11
+ {"city"=>"Petlovača", "zip_code"=>"15304"},
12
+ {"city"=>"Lipolist", "zip_code"=>"15305"},
13
+ {"city"=>"Prnjavor Mačvanski", "zip_code"=>"15306"},
14
+ {"city"=>"Lešnica", "zip_code"=>"15307"},
15
+ {"city"=>"Jadranska Lešnica", "zip_code"=>"15308"},
16
+ {"city"=>"Brezjak", "zip_code"=>"15309"}
17
+ ]
18
+ assert_equal small_result, SerbiaZipCodes.find_by_zip("15300")
19
+ assert_equal big_result, SerbiaZipCodes.find_by_zip("1530")
20
+ end
21
+
22
+ def test_search_by_city
23
+ small_result = [{"city"=>"Novi Beograd", "zip_code"=>"11070"}]
24
+ big_result = [
25
+ {"city"=>"Beograd", "zip_code"=>"11000"},
26
+ {"city"=>"Beograd Vozdovac", "zip_code"=>"11010"},
27
+ {"city"=>"Beograd Čukarica", "zip_code"=>"11030"},
28
+ {"city"=>"Beograd Zvezdara", "zip_code"=>"11050"},
29
+ {"city"=>"Beograd Palilula", "zip_code"=>"11060"},
30
+ {"city"=>"Novi Beograd", "zip_code"=>"11070"},
31
+ {"city"=>"Beograd Zemun", "zip_code"=>"11080"},
32
+ {"city"=>"Beograd Rakovica", "zip_code"=>"11090"},
33
+ {"city"=>"Mali Beograd", "zip_code"=>"24309"}
34
+ ]
35
+ assert_equal small_result, SerbiaZipCodes.find_by_city("Novi Beograd")
36
+ assert_equal small_result, SerbiaZipCodes.find_by_city("novi beograd")
37
+ assert_equal small_result, SerbiaZipCodes.find_by_city("NOVI BEOGRAD")
38
+ assert_equal small_result, SerbiaZipCodes.find_by_city("NoVi BeOgRad")
39
+ assert_equal big_result, SerbiaZipCodes.find_by_city("beograd")
40
+ end
41
+ end
metadata ADDED
@@ -0,0 +1,68 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: serbia_zip_codes
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Nebojša Jakovljević
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '10.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '10.0'
27
+ description: Easy access to Serbia zip codes. You can search zip code by city, or
28
+ city by zip code.
29
+ email:
30
+ - nebojsa@nebjak.net
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - ".gitignore"
36
+ - LICENSE.txt
37
+ - README.md
38
+ - Rakefile
39
+ - lib/data/serbia_zip_codes.yaml
40
+ - lib/serbia_zip_codes.rb
41
+ - serbia_zip_codes.gemspec
42
+ - test/test_serbia_zip_codes.rb
43
+ homepage: http://github.com/nebjak/serbia_zip_codes-ruby
44
+ licenses:
45
+ - MIT
46
+ metadata: {}
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubyforge_project:
63
+ rubygems_version: 2.2.2
64
+ signing_key:
65
+ specification_version: 4
66
+ summary: Easy access to Serbia zip codes
67
+ test_files:
68
+ - test/test_serbia_zip_codes.rb