danwrong-iso_codes 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.
- data/CHANGELOG +1 -0
- data/LICENSE +22 -0
- data/Manifest +17 -0
- data/README +28 -0
- data/Rakefile +96 -0
- data/iso_codes.gemspec +37 -0
- data/lib/iso_codes.rb +6 -0
- data/lib/iso_codes/base.rb +55 -0
- data/lib/iso_codes/country.rb +18 -0
- data/lib/iso_codes/currency.rb +27 -0
- data/lib/iso_codes/data/countries.rb +251 -0
- data/lib/iso_codes/data/currencies.rb +174 -0
- data/lib/iso_codes/data/languages.rb +193 -0
- data/lib/iso_codes/language.rb +13 -0
- data/test/country_test.rb +46 -0
- data/test/currency_test.rb +44 -0
- data/test/language_test.rb +24 -0
- data/test/test_helper.rb +6 -0
- metadata +108 -0
data/CHANGELOG
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
v0.1 Initial release
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2009 Massive Robot Ltd.
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/Manifest
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
CHANGELOG
|
2
|
+
lib/iso_codes/base.rb
|
3
|
+
lib/iso_codes/country.rb
|
4
|
+
lib/iso_codes/currency.rb
|
5
|
+
lib/iso_codes/data/countries.rb
|
6
|
+
lib/iso_codes/data/currencies.rb
|
7
|
+
lib/iso_codes/data/languages.rb
|
8
|
+
lib/iso_codes/language.rb
|
9
|
+
lib/iso_codes.rb
|
10
|
+
LICENSE
|
11
|
+
Manifest
|
12
|
+
Rakefile
|
13
|
+
README
|
14
|
+
test/country_test.rb
|
15
|
+
test/currency_test.rb
|
16
|
+
test/language_test.rb
|
17
|
+
test/test_helper.rb
|
data/README
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
ISO Codes
|
2
|
+
---------
|
3
|
+
|
4
|
+
Dan Webb (dan@massiverobot.co.uk)
|
5
|
+
|
6
|
+
Small and simple Ruby gem that allows you to look up and list ISO codes for
|
7
|
+
countries, languages and currencies.
|
8
|
+
|
9
|
+
Each part of the library is lazily loaded so you only load the data you use.
|
10
|
+
If you'd like to add any other useful ISO code lookups then feel free to fork.
|
11
|
+
|
12
|
+
Source data from: http://www.commondatahub.com/ and will be kept up to date
|
13
|
+
periodically.
|
14
|
+
|
15
|
+
Usage
|
16
|
+
-----
|
17
|
+
|
18
|
+
require 'rubygems'
|
19
|
+
require 'iso_codes'
|
20
|
+
|
21
|
+
Language.all #=> An array of all language objects (for filling form selects etc)
|
22
|
+
Language.find_by_a2('en') #=> find the language with the 2 character code 'en'
|
23
|
+
|
24
|
+
Country.find_all_by_region('Europe') #=> returns all countries in Europe
|
25
|
+
|
26
|
+
Currency.find_by_country('GB') #=> returns Currency representing GBP
|
27
|
+
|
28
|
+
For more info check the tests.
|
data/Rakefile
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'echoe'
|
2
|
+
require 'fastercsv'
|
3
|
+
|
4
|
+
Echoe.new("iso_codes") do |p|
|
5
|
+
p.author = "Dan Webb"
|
6
|
+
p.email = 'dan@danwebb.net'
|
7
|
+
p.summary = "Gem for finding and listing ISO codes for countries, currencies and languages"
|
8
|
+
p.url = "http://github.com/danwrong/iso_codes/"
|
9
|
+
p.retain_gemspec = true
|
10
|
+
p.development_dependencies = ['shoulda', 'fastercsv']
|
11
|
+
p.ignore_pattern = 'csv/*'
|
12
|
+
end
|
13
|
+
|
14
|
+
namespace :import do
|
15
|
+
|
16
|
+
desc 'Import data for countries'
|
17
|
+
task :countries do
|
18
|
+
countries = []
|
19
|
+
FasterCSV.foreach('csv/countries.csv') do |row|
|
20
|
+
countries << {
|
21
|
+
:name => row[0],
|
22
|
+
:a2 => row[1],
|
23
|
+
:a3 => row[2],
|
24
|
+
:numeric => row[3],
|
25
|
+
:region => row[4],
|
26
|
+
:subregion => row[5]
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
File.open('lib/iso_codes/data/countries.rb', 'w') do |f|
|
31
|
+
f.write("module ISOCodes\n module Data\n Countries = [\n")
|
32
|
+
countries.each do |c|
|
33
|
+
f.write(" #{c.inspect}")
|
34
|
+
f.write(",\n") unless c == countries.last
|
35
|
+
end
|
36
|
+
f.write("]\n end\nend")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def search(array, key, value)
|
41
|
+
array.each do |item|
|
42
|
+
return item if item[key] == value
|
43
|
+
end
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
|
47
|
+
desc 'Import data for currencies'
|
48
|
+
task :currencies do
|
49
|
+
require 'time'
|
50
|
+
|
51
|
+
currencies = []
|
52
|
+
FasterCSV.foreach('csv/currencies.csv') do |row|
|
53
|
+
if row.last.nil? || Time.parse(row.last) > Time.now
|
54
|
+
if item = search(currencies, :code, row[2])
|
55
|
+
item[:country_a2] << row[1]
|
56
|
+
else
|
57
|
+
currencies << {
|
58
|
+
:name => row[0],
|
59
|
+
:country_a2 => [row[1]],
|
60
|
+
:code => row[2],
|
61
|
+
:numeric => row[3]
|
62
|
+
}
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
File.open('lib/iso_codes/data/currencies.rb', 'w') do |f|
|
68
|
+
f.write("module ISOCodes\n module Data\n Currencies = [\n")
|
69
|
+
currencies.each do |c|
|
70
|
+
f.write(" #{c.inspect}")
|
71
|
+
f.write(",\n") unless c == currencies.last
|
72
|
+
end
|
73
|
+
f.write("]\n end\nend")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
desc 'Import data for languages'
|
78
|
+
task :languages do
|
79
|
+
languages = []
|
80
|
+
FasterCSV.foreach('csv/languages.csv') do |row|
|
81
|
+
languages << {
|
82
|
+
:name => row[0],
|
83
|
+
:a2 => row[1]
|
84
|
+
}
|
85
|
+
end
|
86
|
+
|
87
|
+
File.open('lib/iso_codes/data/languages.rb', 'w') do |f|
|
88
|
+
f.write("module ISOCodes\n module Data\n Languages = [\n")
|
89
|
+
languages.each do |c|
|
90
|
+
f.write(" #{c.inspect}")
|
91
|
+
f.write(",\n") unless c == languages.last
|
92
|
+
end
|
93
|
+
f.write("]\n end\nend")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/iso_codes.gemspec
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{iso_codes}
|
5
|
+
s.version = "0.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Dan Webb"]
|
9
|
+
s.date = %q{2009-07-27}
|
10
|
+
s.description = %q{Gem for finding and listing ISO codes for countries, currencies and languages}
|
11
|
+
s.email = %q{dan@danwebb.net}
|
12
|
+
s.extra_rdoc_files = ["CHANGELOG", "lib/iso_codes/base.rb", "lib/iso_codes/country.rb", "lib/iso_codes/currency.rb", "lib/iso_codes/data/countries.rb", "lib/iso_codes/data/currencies.rb", "lib/iso_codes/data/languages.rb", "lib/iso_codes/language.rb", "lib/iso_codes.rb", "LICENSE", "README"]
|
13
|
+
s.files = ["CHANGELOG", "lib/iso_codes/base.rb", "lib/iso_codes/country.rb", "lib/iso_codes/currency.rb", "lib/iso_codes/data/countries.rb", "lib/iso_codes/data/currencies.rb", "lib/iso_codes/data/languages.rb", "lib/iso_codes/language.rb", "lib/iso_codes.rb", "LICENSE", "Manifest", "Rakefile", "README", "test/country_test.rb", "test/currency_test.rb", "test/language_test.rb", "test/test_helper.rb", "iso_codes.gemspec"]
|
14
|
+
s.homepage = %q{http://github.com/danwrong/iso_codes/}
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Iso_codes", "--main", "README"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{iso_codes}
|
18
|
+
s.rubygems_version = %q{1.3.4}
|
19
|
+
s.summary = %q{Gem for finding and listing ISO codes for countries, currencies and languages}
|
20
|
+
s.test_files = ["test/country_test.rb", "test/currency_test.rb", "test/language_test.rb", "test/test_helper.rb"]
|
21
|
+
|
22
|
+
if s.respond_to? :specification_version then
|
23
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
+
s.specification_version = 3
|
25
|
+
|
26
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
28
|
+
s.add_development_dependency(%q<fastercsv>, [">= 0"])
|
29
|
+
else
|
30
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
31
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
32
|
+
end
|
33
|
+
else
|
34
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
35
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
36
|
+
end
|
37
|
+
end
|
data/lib/iso_codes.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
module ISOCodes
|
2
|
+
class Base
|
3
|
+
class << self
|
4
|
+
def fields(*field_names)
|
5
|
+
field_names.each do |field|
|
6
|
+
attr_reader field
|
7
|
+
create_finder field
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def find(field, val)
|
12
|
+
data.each do |item|
|
13
|
+
return self.new(item) if item[field.to_sym] == val
|
14
|
+
end
|
15
|
+
|
16
|
+
nil
|
17
|
+
end
|
18
|
+
|
19
|
+
def find_all(field, val)
|
20
|
+
data.collect do |item|
|
21
|
+
if item[field.to_sym] == val
|
22
|
+
self.new(item)
|
23
|
+
end
|
24
|
+
end.compact
|
25
|
+
end
|
26
|
+
|
27
|
+
def all
|
28
|
+
data.collect do |item|
|
29
|
+
self.new(item)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
protected
|
34
|
+
|
35
|
+
def create_finder(field)
|
36
|
+
class_eval %{
|
37
|
+
def self.find_by_#{field}(val)
|
38
|
+
find(:#{field}, val)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.find_all_by_#{field}(val)
|
42
|
+
find_all(:#{field}, val)
|
43
|
+
end
|
44
|
+
}
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def initialize(data)
|
49
|
+
data.each do |k, v|
|
50
|
+
instance_variable_set :"@#{k}", v
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'iso_codes/data/countries'
|
2
|
+
|
3
|
+
module ISOCodes
|
4
|
+
|
5
|
+
class Country < Base
|
6
|
+
fields :name, :a2, :a3, :numeric, :region, :subregion
|
7
|
+
|
8
|
+
def self.data
|
9
|
+
Data::Countries
|
10
|
+
end
|
11
|
+
|
12
|
+
def currency
|
13
|
+
@currency ||= Currency.find_by_country(self)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'iso_codes/data/currencies'
|
2
|
+
|
3
|
+
module ISOCodes
|
4
|
+
|
5
|
+
class Currency < Base
|
6
|
+
fields :name, :code, :numeric, :country_a2
|
7
|
+
|
8
|
+
def self.data
|
9
|
+
Data::Currencies
|
10
|
+
end
|
11
|
+
|
12
|
+
def countries
|
13
|
+
country_a2.collect do |code|
|
14
|
+
Country.find_by_a2(code)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.find_by_country(country)
|
19
|
+
country = country.a2 if country.is_a?(Country)
|
20
|
+
|
21
|
+
data.each do |item|
|
22
|
+
return self.new(item) if item[:country_a2].include?(country)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,251 @@
|
|
1
|
+
module ISOCodes
|
2
|
+
module Data
|
3
|
+
Countries = [
|
4
|
+
{:numeric=>"004", :region=>"Asia", :name=>"Afghanistan", :subregion=>"Southern Asia", :a2=>"AF", :a3=>"AFG"},
|
5
|
+
{:numeric=>"008", :region=>"Europe", :name=>"Albania", :subregion=>"Southern Europe", :a2=>"AL", :a3=>"ALB"},
|
6
|
+
{:numeric=>"012", :region=>"Africa", :name=>"Algeria", :subregion=>"Northern Africa", :a2=>"DZ", :a3=>"DZA"},
|
7
|
+
{:numeric=>"016", :region=>"Oceania", :name=>"American Samoa", :subregion=>"Polynesia", :a2=>"AS", :a3=>"ASM"},
|
8
|
+
{:numeric=>"020", :region=>"Europe", :name=>"Andorra", :subregion=>"Southern Europe", :a2=>"AD", :a3=>"AND"},
|
9
|
+
{:numeric=>"024", :region=>"Africa", :name=>"Angola", :subregion=>"Middle Africa", :a2=>"AO", :a3=>"AGO"},
|
10
|
+
{:numeric=>"660", :region=>"Americas", :name=>"Anguilla", :subregion=>"Caribbean", :a2=>"AI", :a3=>"AIA"},
|
11
|
+
{:numeric=>"010", :region=>nil, :name=>"Antarctica", :subregion=>nil, :a2=>"AQ", :a3=>"ATA"},
|
12
|
+
{:numeric=>"028", :region=>"Americas", :name=>"Antigua and Barbuda", :subregion=>"Caribbean", :a2=>"AG", :a3=>"ATG"},
|
13
|
+
{:numeric=>"032", :region=>"Americas", :name=>"Argentina", :subregion=>"South America", :a2=>"AR", :a3=>"ARG"},
|
14
|
+
{:numeric=>"051", :region=>"Asia", :name=>"Armenia", :subregion=>"Western Asia", :a2=>"AM", :a3=>"ARM"},
|
15
|
+
{:numeric=>"533", :region=>"Americas", :name=>"Aruba", :subregion=>"Caribbean", :a2=>"AW", :a3=>"ABW"},
|
16
|
+
{:numeric=>"036", :region=>"Oceania", :name=>"Australia", :subregion=>"Australia and New Zealand", :a2=>"AU", :a3=>"AUS"},
|
17
|
+
{:numeric=>"040", :region=>"Europe", :name=>"Austria", :subregion=>"Western Europe", :a2=>"AT", :a3=>"AUT"},
|
18
|
+
{:numeric=>"031", :region=>"Asia", :name=>"Azerbaijan", :subregion=>"Western Asia", :a2=>"AZ", :a3=>"AZE"},
|
19
|
+
{:numeric=>"044", :region=>"Americas", :name=>"Bahamas", :subregion=>"Caribbean", :a2=>"BS", :a3=>"BHS"},
|
20
|
+
{:numeric=>"048", :region=>"Asia", :name=>"Bahrain", :subregion=>"Western Asia", :a2=>"BH", :a3=>"BHR"},
|
21
|
+
{:numeric=>"050", :region=>"Asia", :name=>"Bangladesh", :subregion=>"Southern Asia", :a2=>"BD", :a3=>"BGD"},
|
22
|
+
{:numeric=>"052", :region=>"Americas", :name=>"Barbados", :subregion=>"Caribbean", :a2=>"BB", :a3=>"BRB"},
|
23
|
+
{:numeric=>"112", :region=>"Europe", :name=>"Belarus", :subregion=>"Eastern Europe", :a2=>"BY", :a3=>"BLR"},
|
24
|
+
{:numeric=>"056", :region=>"Europe", :name=>"Belgium", :subregion=>"Western Europe", :a2=>"BE", :a3=>"BEL"},
|
25
|
+
{:numeric=>"084", :region=>"Americas", :name=>"Belize", :subregion=>"Central America", :a2=>"BZ", :a3=>"BLZ"},
|
26
|
+
{:numeric=>"204", :region=>"Africa", :name=>"Benin", :subregion=>"Western Africa", :a2=>"BJ", :a3=>"BEN"},
|
27
|
+
{:numeric=>"060", :region=>"Americas", :name=>"Bermuda", :subregion=>"Northern America", :a2=>"BM", :a3=>"BMU"},
|
28
|
+
{:numeric=>"064", :region=>"Asia", :name=>"Bhutan", :subregion=>"Southern Asia", :a2=>"BT", :a3=>"BTN"},
|
29
|
+
{:numeric=>"068", :region=>"Americas", :name=>"Bolivia", :subregion=>"South America", :a2=>"BO", :a3=>"BOL"},
|
30
|
+
{:numeric=>"070", :region=>"Europe", :name=>"Bosnia and Herzegovina", :subregion=>"Southern Europe", :a2=>"BA", :a3=>"BIH"},
|
31
|
+
{:numeric=>"072", :region=>"Africa", :name=>"Botswana", :subregion=>"Southern Africa", :a2=>"BW", :a3=>"BWA"},
|
32
|
+
{:numeric=>"074", :region=>nil, :name=>"Bouvet Island", :subregion=>nil, :a2=>"BV", :a3=>"BVT"},
|
33
|
+
{:numeric=>"076", :region=>"Americas", :name=>"Brazil", :subregion=>"South America", :a2=>"BR", :a3=>"BRA"},
|
34
|
+
{:numeric=>"086", :region=>"Africa", :name=>"British Indian Ocean Territory", :subregion=>"Eastern Africa", :a2=>"IO", :a3=>"IOT"},
|
35
|
+
{:numeric=>"096", :region=>"Asia", :name=>"Brunei Darussalam", :subregion=>"South-Eastern Asia", :a2=>"BN", :a3=>"BRN"},
|
36
|
+
{:numeric=>"100", :region=>"Europe", :name=>"Bulgaria", :subregion=>"Eastern Europe", :a2=>"BG", :a3=>"BGR"},
|
37
|
+
{:numeric=>"854", :region=>"Africa", :name=>"Burkina Faso", :subregion=>"Western Africa", :a2=>"BF", :a3=>"BFA"},
|
38
|
+
{:numeric=>"108", :region=>"Africa", :name=>"Burundi", :subregion=>"Eastern Africa", :a2=>"BI", :a3=>"BDI"},
|
39
|
+
{:numeric=>"116", :region=>"Asia", :name=>"Cambodia", :subregion=>"South-Eastern Asia", :a2=>"KH", :a3=>"KHM"},
|
40
|
+
{:numeric=>"120", :region=>"Africa", :name=>"Cameroon", :subregion=>"Middle Africa", :a2=>"CM", :a3=>"CMR"},
|
41
|
+
{:numeric=>"124", :region=>"Americas", :name=>"Canada", :subregion=>"Northern America", :a2=>"CA", :a3=>"CAN"},
|
42
|
+
{:numeric=>"132", :region=>"Africa", :name=>"Cape Verde", :subregion=>"Western Africa", :a2=>"CV", :a3=>"CPV"},
|
43
|
+
{:numeric=>"136", :region=>"Americas", :name=>"Cayman Islands", :subregion=>"Caribbean", :a2=>"KY", :a3=>"CYM"},
|
44
|
+
{:numeric=>"140", :region=>"Africa", :name=>"Central African Republic", :subregion=>"Middle Africa", :a2=>"CF", :a3=>"CAF"},
|
45
|
+
{:numeric=>"148", :region=>"Africa", :name=>"Chad", :subregion=>"Middle Africa", :a2=>"TD", :a3=>"TCD"},
|
46
|
+
{:numeric=>"152", :region=>"Americas", :name=>"Chile", :subregion=>"South America", :a2=>"CL", :a3=>"CHL"},
|
47
|
+
{:numeric=>"156", :region=>"Asia", :name=>"China", :subregion=>"Eastern Asia", :a2=>"CN", :a3=>"CHN"},
|
48
|
+
{:numeric=>"162", :region=>"Oceania", :name=>"Christmas Island", :subregion=>"Australia and New Zealand", :a2=>"CX", :a3=>"CXR"},
|
49
|
+
{:numeric=>"166", :region=>"Oceania", :name=>"Cocos (Keeling) Islands", :subregion=>"Australia and New Zealand", :a2=>"CC", :a3=>"CCK"},
|
50
|
+
{:numeric=>"170", :region=>"Americas", :name=>"Colombia", :subregion=>"South America", :a2=>"CO", :a3=>"COL"},
|
51
|
+
{:numeric=>"174", :region=>"Africa", :name=>"Comoros", :subregion=>"Eastern Africa", :a2=>"KM", :a3=>"COM"},
|
52
|
+
{:numeric=>"178", :region=>"Africa", :name=>"Congo", :subregion=>"Middle Africa", :a2=>"CG", :a3=>"COG"},
|
53
|
+
{:numeric=>"180", :region=>"Africa", :name=>"Congo, The Democratic Republic Of The", :subregion=>"Middle Africa", :a2=>"CD", :a3=>"COD"},
|
54
|
+
{:numeric=>"184", :region=>"Oceania", :name=>"Cook Islands", :subregion=>"Polynesia", :a2=>"CK", :a3=>"COK"},
|
55
|
+
{:numeric=>"188", :region=>"Americas", :name=>"Costa Rica", :subregion=>"Central America", :a2=>"CR", :a3=>"CRI"},
|
56
|
+
{:numeric=>"191", :region=>"Europe", :name=>"Croatia", :subregion=>"Southern Europe", :a2=>"HR", :a3=>"HRV"},
|
57
|
+
{:numeric=>"192", :region=>"Americas", :name=>"Cuba", :subregion=>"Caribbean", :a2=>"CU", :a3=>"CUB"},
|
58
|
+
{:numeric=>"196", :region=>"Asia", :name=>"Cyprus", :subregion=>"Western Asia", :a2=>"CY", :a3=>"CYP"},
|
59
|
+
{:numeric=>"203", :region=>"Europe", :name=>"Czech Republic", :subregion=>"Eastern Europe", :a2=>"CZ", :a3=>"CZE"},
|
60
|
+
{:numeric=>"384", :region=>"Africa", :name=>"C\303\264te D'Ivoire", :subregion=>"Western Africa", :a2=>"CI", :a3=>"CIV"},
|
61
|
+
{:numeric=>"208", :region=>"Europe", :name=>"Denmark", :subregion=>"Northern Europe", :a2=>"DK", :a3=>"DNK"},
|
62
|
+
{:numeric=>"262", :region=>"Africa", :name=>"Djibouti", :subregion=>"Eastern Africa", :a2=>"DJ", :a3=>"DJI"},
|
63
|
+
{:numeric=>"212", :region=>"Americas", :name=>"Dominica", :subregion=>"Caribbean", :a2=>"DM", :a3=>"DMA"},
|
64
|
+
{:numeric=>"214", :region=>"Americas", :name=>"Dominican Republic", :subregion=>"Caribbean", :a2=>"DO", :a3=>"DOM"},
|
65
|
+
{:numeric=>"218", :region=>"Americas", :name=>"Ecuador", :subregion=>"South America", :a2=>"EC", :a3=>"ECU"},
|
66
|
+
{:numeric=>"818", :region=>"Africa", :name=>"Egypt", :subregion=>"Northern Africa", :a2=>"EG", :a3=>"EGY"},
|
67
|
+
{:numeric=>"222", :region=>"Americas", :name=>"El Salvador", :subregion=>"Central America", :a2=>"SV", :a3=>"SLV"},
|
68
|
+
{:numeric=>"226", :region=>"Africa", :name=>"Equatorial Guinea", :subregion=>"Middle Africa", :a2=>"GQ", :a3=>"GNQ"},
|
69
|
+
{:numeric=>"232", :region=>"Africa", :name=>"Eritrea", :subregion=>"Eastern Africa", :a2=>"ER", :a3=>"ERI"},
|
70
|
+
{:numeric=>"233", :region=>"Europe", :name=>"Estonia", :subregion=>"Northern Europe", :a2=>"EE", :a3=>"EST"},
|
71
|
+
{:numeric=>"231", :region=>"Africa", :name=>"Ethiopia", :subregion=>"Eastern Africa", :a2=>"ET", :a3=>"ETH"},
|
72
|
+
{:numeric=>"238", :region=>"Americas", :name=>"Falkland Islands (Malvinas)", :subregion=>"South America", :a2=>"FK", :a3=>"FLK"},
|
73
|
+
{:numeric=>"234", :region=>"Europe", :name=>"Faroe Islands", :subregion=>"Northern Europe", :a2=>"FO", :a3=>"FRO"},
|
74
|
+
{:numeric=>"242", :region=>"Oceania", :name=>"Fiji", :subregion=>"Melanesia", :a2=>"FJ", :a3=>"FJI"},
|
75
|
+
{:numeric=>"246", :region=>"Europe", :name=>"Finland", :subregion=>"Northern Europe", :a2=>"FI", :a3=>"FIN"},
|
76
|
+
{:numeric=>"250", :region=>"Europe", :name=>"France", :subregion=>"Western Europe", :a2=>"FR", :a3=>"FRA"},
|
77
|
+
{:numeric=>"254", :region=>"Americas", :name=>"French Guiana", :subregion=>"South America", :a2=>"GF", :a3=>"GUF"},
|
78
|
+
{:numeric=>"258", :region=>"Oceania", :name=>"French Polynesia", :subregion=>"Polynesia", :a2=>"PF", :a3=>"PYF"},
|
79
|
+
{:numeric=>"260", :region=>nil, :name=>"French Southern Territories", :subregion=>nil, :a2=>"TF", :a3=>"ATF"},
|
80
|
+
{:numeric=>"266", :region=>"Africa", :name=>"Gabon", :subregion=>"Middle Africa", :a2=>"GA", :a3=>"GAB"},
|
81
|
+
{:numeric=>"270", :region=>"Africa", :name=>"Gambia", :subregion=>"Western Africa", :a2=>"GM", :a3=>"GMB"},
|
82
|
+
{:numeric=>"268", :region=>"Asia", :name=>"Georgia", :subregion=>"Western Asia", :a2=>"GE", :a3=>"GEO"},
|
83
|
+
{:numeric=>"276", :region=>"Europe", :name=>"Germany", :subregion=>"Western Europe", :a2=>"DE", :a3=>"DEU"},
|
84
|
+
{:numeric=>"288", :region=>"Africa", :name=>"Ghana", :subregion=>"Western Africa", :a2=>"GH", :a3=>"GHA"},
|
85
|
+
{:numeric=>"292", :region=>"Europe", :name=>"Gibraltar", :subregion=>"Southern Europe", :a2=>"GI", :a3=>"GIB"},
|
86
|
+
{:numeric=>"300", :region=>"Europe", :name=>"Greece", :subregion=>"Southern Europe", :a2=>"GR", :a3=>"GRC"},
|
87
|
+
{:numeric=>"304", :region=>"Americas", :name=>"Greenland", :subregion=>"Northern America", :a2=>"GL", :a3=>"GRL"},
|
88
|
+
{:numeric=>"308", :region=>"Americas", :name=>"Grenada", :subregion=>"Caribbean", :a2=>"GD", :a3=>"GRD"},
|
89
|
+
{:numeric=>"312", :region=>"Americas", :name=>"Guadeloupe", :subregion=>"Caribbean", :a2=>"GP", :a3=>"GLP"},
|
90
|
+
{:numeric=>"316", :region=>"Oceania", :name=>"Guam", :subregion=>"Micronesia", :a2=>"GU", :a3=>"GUM"},
|
91
|
+
{:numeric=>"320", :region=>"Americas", :name=>"Guatemala", :subregion=>"Central America", :a2=>"GT", :a3=>"GTM"},
|
92
|
+
{:numeric=>"831", :region=>"Europe", :name=>"Guernsey", :subregion=>"Northern Europe", :a2=>"GG", :a3=>"GGY"},
|
93
|
+
{:numeric=>"324", :region=>"Africa", :name=>"Guinea", :subregion=>"Western Africa", :a2=>"GN", :a3=>"GIN"},
|
94
|
+
{:numeric=>"624", :region=>"Africa", :name=>"Guinea-Bissau", :subregion=>"Western Africa", :a2=>"GW", :a3=>"GNB"},
|
95
|
+
{:numeric=>"328", :region=>"Americas", :name=>"Guyana", :subregion=>"South America", :a2=>"GY", :a3=>"GUY"},
|
96
|
+
{:numeric=>"332", :region=>"Americas", :name=>"Haiti", :subregion=>"Caribbean", :a2=>"HT", :a3=>"HTI"},
|
97
|
+
{:numeric=>"334", :region=>nil, :name=>"Heard and McDonald Islands", :subregion=>nil, :a2=>"HM", :a3=>"HMD"},
|
98
|
+
{:numeric=>"336", :region=>"Europe", :name=>"Holy See (Vatican City State)", :subregion=>"Southern Europe", :a2=>"VA", :a3=>"VAT"},
|
99
|
+
{:numeric=>"340", :region=>"Americas", :name=>"Honduras", :subregion=>"Central America", :a2=>"HN", :a3=>"HND"},
|
100
|
+
{:numeric=>"344", :region=>"Asia", :name=>"Hong Kong", :subregion=>"Eastern Asia", :a2=>"HK", :a3=>"HKG"},
|
101
|
+
{:numeric=>"348", :region=>"Europe", :name=>"Hungary", :subregion=>"Eastern Europe", :a2=>"HU", :a3=>"HUN"},
|
102
|
+
{:numeric=>"352", :region=>"Europe", :name=>"Iceland", :subregion=>"Northern Europe", :a2=>"IS", :a3=>"ISL"},
|
103
|
+
{:numeric=>"356", :region=>"Asia", :name=>"India", :subregion=>"Southern Asia", :a2=>"IN", :a3=>"IND"},
|
104
|
+
{:numeric=>"360", :region=>"Asia", :name=>"Indonesia", :subregion=>"South-Eastern Asia", :a2=>"ID", :a3=>"IDN"},
|
105
|
+
{:numeric=>"364", :region=>"Asia", :name=>"Iran, Islamic Republic Of", :subregion=>"Southern Asia", :a2=>"IR", :a3=>"IRN"},
|
106
|
+
{:numeric=>"368", :region=>"Asia", :name=>"Iraq", :subregion=>"Western Asia", :a2=>"IQ", :a3=>"IRQ"},
|
107
|
+
{:numeric=>"372", :region=>"Europe", :name=>"Ireland", :subregion=>"Northern Europe", :a2=>"IE", :a3=>"IRL"},
|
108
|
+
{:numeric=>"833", :region=>"Europe", :name=>"Isle of Man", :subregion=>"Northern Europe", :a2=>"IM", :a3=>"IMN"},
|
109
|
+
{:numeric=>"376", :region=>"Asia", :name=>"Israel", :subregion=>"Western Asia", :a2=>"IL", :a3=>"ISR"},
|
110
|
+
{:numeric=>"380", :region=>"Europe", :name=>"Italy", :subregion=>"Southern Europe", :a2=>"IT", :a3=>"ITA"},
|
111
|
+
{:numeric=>"388", :region=>"Americas", :name=>"Jamaica", :subregion=>"Caribbean", :a2=>"JM", :a3=>"JAM"},
|
112
|
+
{:numeric=>"392", :region=>"Asia", :name=>"Japan", :subregion=>"Eastern Asia", :a2=>"JP", :a3=>"JPN"},
|
113
|
+
{:numeric=>"832", :region=>"Europe", :name=>"Jersey", :subregion=>"Northern Europe", :a2=>"JE", :a3=>"JEY"},
|
114
|
+
{:numeric=>"400", :region=>"Asia", :name=>"Jordan", :subregion=>"Western Asia", :a2=>"JO", :a3=>"JOR"},
|
115
|
+
{:numeric=>"398", :region=>"Asia", :name=>"Kazakhstan", :subregion=>"Central Asia", :a2=>"KZ", :a3=>"KAZ"},
|
116
|
+
{:numeric=>"404", :region=>"Africa", :name=>"Kenya", :subregion=>"Eastern Africa", :a2=>"KE", :a3=>"KEN"},
|
117
|
+
{:numeric=>"296", :region=>"Oceania", :name=>"Kiribati", :subregion=>"Micronesia", :a2=>"KI", :a3=>"KIR"},
|
118
|
+
{:numeric=>"408", :region=>"Asia", :name=>"Korea, Democratic People's Republic Of", :subregion=>"Eastern Asia", :a2=>"KP", :a3=>"PRK"},
|
119
|
+
{:numeric=>"410", :region=>"Asia", :name=>"Korea, Republic of", :subregion=>"Eastern Asia", :a2=>"KR", :a3=>"KOR"},
|
120
|
+
{:numeric=>"414", :region=>"Asia", :name=>"Kuwait", :subregion=>"Western Asia", :a2=>"KW", :a3=>"KWT"},
|
121
|
+
{:numeric=>"417", :region=>"Asia", :name=>"Kyrgyzstan", :subregion=>"Central Asia", :a2=>"KG", :a3=>"KGZ"},
|
122
|
+
{:numeric=>"418", :region=>"Asia", :name=>"Lao People's Democratic Republic", :subregion=>"South-Eastern Asia", :a2=>"LA", :a3=>"LAO"},
|
123
|
+
{:numeric=>"428", :region=>"Europe", :name=>"Latvia", :subregion=>"Northern Europe", :a2=>"LV", :a3=>"LVA"},
|
124
|
+
{:numeric=>"422", :region=>"Asia", :name=>"Lebanon", :subregion=>"Western Asia", :a2=>"LB", :a3=>"LBN"},
|
125
|
+
{:numeric=>"426", :region=>"Africa", :name=>"Lesotho", :subregion=>"Southern Africa", :a2=>"LS", :a3=>"LSO"},
|
126
|
+
{:numeric=>"430", :region=>"Africa", :name=>"Liberia", :subregion=>"Western Africa", :a2=>"LR", :a3=>"LBR"},
|
127
|
+
{:numeric=>"434", :region=>"Africa", :name=>"Libyan Arab Jamahiriya", :subregion=>"Northern Africa", :a2=>"LY", :a3=>"LBY"},
|
128
|
+
{:numeric=>"438", :region=>"Europe", :name=>"Liechtenstein", :subregion=>"Western Europe", :a2=>"LI", :a3=>"LIE"},
|
129
|
+
{:numeric=>"440", :region=>"Europe", :name=>"Lithuania", :subregion=>"Northern Europe", :a2=>"LT", :a3=>"LTU"},
|
130
|
+
{:numeric=>"442", :region=>"Europe", :name=>"Luxembourg", :subregion=>"Western Europe", :a2=>"LU", :a3=>"LUX"},
|
131
|
+
{:numeric=>"446", :region=>"Asia", :name=>"Macao", :subregion=>"Eastern Asia", :a2=>"MO", :a3=>"MAC"},
|
132
|
+
{:numeric=>"807", :region=>"Europe", :name=>"Macedonia, the Former Yugoslav Republic Of", :subregion=>"Southern Europe", :a2=>"MK", :a3=>"MKD"},
|
133
|
+
{:numeric=>"450", :region=>"Africa", :name=>"Madagascar", :subregion=>"Eastern Africa", :a2=>"MG", :a3=>"MDG"},
|
134
|
+
{:numeric=>"454", :region=>"Africa", :name=>"Malawi", :subregion=>"Eastern Africa", :a2=>"MW", :a3=>"MWI"},
|
135
|
+
{:numeric=>"458", :region=>"Asia", :name=>"Malaysia", :subregion=>"South-Eastern Asia", :a2=>"MY", :a3=>"MYS"},
|
136
|
+
{:numeric=>"462", :region=>"Asia", :name=>"Maldives", :subregion=>"Southern Asia", :a2=>"MV", :a3=>"MDV"},
|
137
|
+
{:numeric=>"466", :region=>"Africa", :name=>"Mali", :subregion=>"Western Africa", :a2=>"ML", :a3=>"MLI"},
|
138
|
+
{:numeric=>"470", :region=>"Europe", :name=>"Malta", :subregion=>"Southern Europe", :a2=>"MT", :a3=>"MLT"},
|
139
|
+
{:numeric=>"584", :region=>"Oceania", :name=>"Marshall Islands", :subregion=>"Micronesia", :a2=>"MH", :a3=>"MHL"},
|
140
|
+
{:numeric=>"474", :region=>"Americas", :name=>"Martinique", :subregion=>"Caribbean", :a2=>"MQ", :a3=>"MTQ"},
|
141
|
+
{:numeric=>"478", :region=>"Africa", :name=>"Mauritania", :subregion=>"Western Africa", :a2=>"MR", :a3=>"MRT"},
|
142
|
+
{:numeric=>"480", :region=>"Africa", :name=>"Mauritius", :subregion=>"Eastern Africa", :a2=>"MU", :a3=>"MUS"},
|
143
|
+
{:numeric=>"175", :region=>"Africa", :name=>"Mayotte", :subregion=>"Eastern Africa", :a2=>"YT", :a3=>"MYT"},
|
144
|
+
{:numeric=>"484", :region=>"Americas", :name=>"Mexico", :subregion=>"Central America", :a2=>"MX", :a3=>"MEX"},
|
145
|
+
{:numeric=>"583", :region=>"Oceania", :name=>"Micronesia, Federated States Of", :subregion=>"Micronesia", :a2=>"FM", :a3=>"FSM"},
|
146
|
+
{:numeric=>"498", :region=>"Europe", :name=>"Moldova, Republic of", :subregion=>"Eastern Europe", :a2=>"MD", :a3=>"MDA"},
|
147
|
+
{:numeric=>"492", :region=>"Europe", :name=>"Monaco", :subregion=>"Western Europe", :a2=>"MC", :a3=>"MCO"},
|
148
|
+
{:numeric=>"496", :region=>"Asia", :name=>"Mongolia", :subregion=>"Eastern Asia", :a2=>"MN", :a3=>"MNG"},
|
149
|
+
{:numeric=>"499", :region=>"Europe", :name=>"Montenegro", :subregion=>"Southern Europe", :a2=>"ME", :a3=>"MNE"},
|
150
|
+
{:numeric=>"500", :region=>"Americas", :name=>"Montserrat", :subregion=>"Caribbean", :a2=>"MS", :a3=>"MSR"},
|
151
|
+
{:numeric=>"504", :region=>"Africa", :name=>"Morocco", :subregion=>"Northern Africa", :a2=>"MA", :a3=>"MAR"},
|
152
|
+
{:numeric=>"508", :region=>"Africa", :name=>"Mozambique", :subregion=>"Eastern Africa", :a2=>"MZ", :a3=>"MOZ"},
|
153
|
+
{:numeric=>"104", :region=>"Asia", :name=>"Myanmar", :subregion=>"South-Eastern Asia", :a2=>"MM", :a3=>"MMR"},
|
154
|
+
{:numeric=>"516", :region=>"Africa", :name=>"Namibia", :subregion=>"Southern Africa", :a2=>"NA", :a3=>"NAM"},
|
155
|
+
{:numeric=>"520", :region=>"Oceania", :name=>"Nauru", :subregion=>"Micronesia", :a2=>"NR", :a3=>"NRU"},
|
156
|
+
{:numeric=>"524", :region=>"Asia", :name=>"Nepal", :subregion=>"Southern Asia", :a2=>"NP", :a3=>"NPL"},
|
157
|
+
{:numeric=>"528", :region=>"Europe", :name=>"Netherlands", :subregion=>"Western Europe", :a2=>"NL", :a3=>"NLD"},
|
158
|
+
{:numeric=>"530", :region=>"Americas", :name=>"Netherlands Antilles", :subregion=>"Caribbean", :a2=>"AN", :a3=>"ANT"},
|
159
|
+
{:numeric=>"540", :region=>"Oceania", :name=>"New Caledonia", :subregion=>"Melanesia", :a2=>"NC", :a3=>"NCL"},
|
160
|
+
{:numeric=>"554", :region=>"Oceania", :name=>"New Zealand", :subregion=>"Australia and New Zealand", :a2=>"NZ", :a3=>"NZL"},
|
161
|
+
{:numeric=>"558", :region=>"Americas", :name=>"Nicaragua", :subregion=>"Central America", :a2=>"NI", :a3=>"NIC"},
|
162
|
+
{:numeric=>"562", :region=>"Africa", :name=>"Niger", :subregion=>"Western Africa", :a2=>"NE", :a3=>"NER"},
|
163
|
+
{:numeric=>"566", :region=>"Africa", :name=>"Nigeria", :subregion=>"Western Africa", :a2=>"NG", :a3=>"NGA"},
|
164
|
+
{:numeric=>"570", :region=>"Oceania", :name=>"Niue", :subregion=>"Polynesia", :a2=>"NU", :a3=>"NIU"},
|
165
|
+
{:numeric=>"574", :region=>"Oceania", :name=>"Norfolk Island", :subregion=>"Australia and New Zealand", :a2=>"NF", :a3=>"NFK"},
|
166
|
+
{:numeric=>"580", :region=>"Oceania", :name=>"Northern Mariana Islands", :subregion=>"Micronesia", :a2=>"MP", :a3=>"MNP"},
|
167
|
+
{:numeric=>"578", :region=>"Europe", :name=>"Norway", :subregion=>"Northern Europe", :a2=>"NO", :a3=>"NOR"},
|
168
|
+
{:numeric=>"512", :region=>"Asia", :name=>"Oman", :subregion=>"Western Asia", :a2=>"OM", :a3=>"OMN"},
|
169
|
+
{:numeric=>"586", :region=>"Asia", :name=>"Pakistan", :subregion=>"Southern Asia", :a2=>"PK", :a3=>"PAK"},
|
170
|
+
{:numeric=>"585", :region=>"Oceania", :name=>"Palau", :subregion=>"Micronesia", :a2=>"PW", :a3=>"PLW"},
|
171
|
+
{:numeric=>"275", :region=>"Asia", :name=>"Palestinian Territory, Occupied", :subregion=>"Western Asia", :a2=>"PS", :a3=>"PSE"},
|
172
|
+
{:numeric=>"591", :region=>"Americas", :name=>"Panama", :subregion=>"Central America", :a2=>"PA", :a3=>"PAN"},
|
173
|
+
{:numeric=>"598", :region=>"Oceania", :name=>"Papua New Guinea", :subregion=>"Melanesia", :a2=>"PG", :a3=>"PNG"},
|
174
|
+
{:numeric=>"600", :region=>"Americas", :name=>"Paraguay", :subregion=>"South America", :a2=>"PY", :a3=>"PRY"},
|
175
|
+
{:numeric=>"604", :region=>"Americas", :name=>"Peru", :subregion=>"South America", :a2=>"PE", :a3=>"PER"},
|
176
|
+
{:numeric=>"608", :region=>"Asia", :name=>"Philippines", :subregion=>"South-Eastern Asia", :a2=>"PH", :a3=>"PHL"},
|
177
|
+
{:numeric=>"612", :region=>"Oceania", :name=>"Pitcairn", :subregion=>"Polynesia", :a2=>"PN", :a3=>"PCN"},
|
178
|
+
{:numeric=>"616", :region=>"Europe", :name=>"Poland", :subregion=>"Eastern Europe", :a2=>"PL", :a3=>"POL"},
|
179
|
+
{:numeric=>"620", :region=>"Europe", :name=>"Portugal", :subregion=>"Southern Europe", :a2=>"PT", :a3=>"PRT"},
|
180
|
+
{:numeric=>"630", :region=>"Americas", :name=>"Puerto Rico", :subregion=>"Caribbean", :a2=>"PR", :a3=>"PRI"},
|
181
|
+
{:numeric=>"634", :region=>"Asia", :name=>"Qatar", :subregion=>"Western Asia", :a2=>"QA", :a3=>"QAT"},
|
182
|
+
{:numeric=>"642", :region=>"Europe", :name=>"Romania", :subregion=>"Eastern Europe", :a2=>"RO", :a3=>"ROU"},
|
183
|
+
{:numeric=>"643", :region=>"Europe", :name=>"Russian Federation", :subregion=>"Eastern Europe", :a2=>"RU", :a3=>"RUS"},
|
184
|
+
{:numeric=>"646", :region=>"Africa", :name=>"Rwanda", :subregion=>"Eastern Africa", :a2=>"RW", :a3=>"RWA"},
|
185
|
+
{:numeric=>"638", :region=>"Africa", :name=>"R\303\251union", :subregion=>"Eastern Africa", :a2=>"RE", :a3=>"REU"},
|
186
|
+
{:numeric=>"652", :region=>"Americas", :name=>"Saint Barth\303\251lemy", :subregion=>"Caribbean", :a2=>"BL", :a3=>"BLM"},
|
187
|
+
{:numeric=>"654", :region=>"Africa", :name=>"Saint Helena", :subregion=>"Western Africa", :a2=>"SH", :a3=>"SHN"},
|
188
|
+
{:numeric=>"659", :region=>"Americas", :name=>"Saint Kitts And Nevis", :subregion=>"Caribbean", :a2=>"KN", :a3=>"KNA"},
|
189
|
+
{:numeric=>"662", :region=>"Americas", :name=>"Saint Lucia", :subregion=>"Caribbean", :a2=>"LC", :a3=>"LCA"},
|
190
|
+
{:numeric=>"663", :region=>"Americas", :name=>"Saint Martin", :subregion=>"Caribbean", :a2=>"MF", :a3=>"MAF"},
|
191
|
+
{:numeric=>"666", :region=>"Americas", :name=>"Saint Pierre And Miquelon", :subregion=>"Northern America", :a2=>"PM", :a3=>"SPM"},
|
192
|
+
{:numeric=>"670", :region=>"Americas", :name=>"Saint Vincent And The Grenedines", :subregion=>"Caribbean", :a2=>"VC", :a3=>"VCT"},
|
193
|
+
{:numeric=>"882", :region=>"Oceania", :name=>"Samoa", :subregion=>"Polynesia", :a2=>"WS", :a3=>"WSM"},
|
194
|
+
{:numeric=>"674", :region=>"Europe", :name=>"San Marino", :subregion=>"Southern Europe", :a2=>"SM", :a3=>"SMR"},
|
195
|
+
{:numeric=>"678", :region=>"Africa", :name=>"Sao Tome and Principe", :subregion=>"Middle Africa", :a2=>"ST", :a3=>"STP"},
|
196
|
+
{:numeric=>"682", :region=>"Asia", :name=>"Saudi Arabia", :subregion=>"Western Asia", :a2=>"SA", :a3=>"SAU"},
|
197
|
+
{:numeric=>"686", :region=>"Africa", :name=>"Senegal", :subregion=>"Western Africa", :a2=>"SN", :a3=>"SEN"},
|
198
|
+
{:numeric=>"688", :region=>"Europe", :name=>"Serbia", :subregion=>"Southern Europe", :a2=>"RS", :a3=>"SRB"},
|
199
|
+
{:numeric=>"690", :region=>"Africa", :name=>"Seychelles", :subregion=>"Eastern Africa", :a2=>"SC", :a3=>"SYC"},
|
200
|
+
{:numeric=>"694", :region=>"Africa", :name=>"Sierra Leone", :subregion=>"Western Africa", :a2=>"SL", :a3=>"SLE"},
|
201
|
+
{:numeric=>"702", :region=>"Asia", :name=>"Singapore", :subregion=>"South-Eastern Asia", :a2=>"SG", :a3=>"SGP"},
|
202
|
+
{:numeric=>"703", :region=>"Europe", :name=>"Slovakia", :subregion=>"Eastern Europe", :a2=>"SK", :a3=>"SVK"},
|
203
|
+
{:numeric=>"705", :region=>"Europe", :name=>"Slovenia", :subregion=>"Southern Europe", :a2=>"SI", :a3=>"SVN"},
|
204
|
+
{:numeric=>"090", :region=>"Oceania", :name=>"Solomon Islands", :subregion=>"Melanesia", :a2=>"SB", :a3=>"SLB"},
|
205
|
+
{:numeric=>"706", :region=>"Africa", :name=>"Somalia", :subregion=>"Eastern Africa", :a2=>"SO", :a3=>"SOM"},
|
206
|
+
{:numeric=>"710", :region=>"Africa", :name=>"South Africa", :subregion=>"Southern Africa", :a2=>"ZA", :a3=>"ZAF"},
|
207
|
+
{:numeric=>"239", :region=>"Americas", :name=>"South Georgia and the South Sandwich Islands", :subregion=>"South America", :a2=>"GS", :a3=>"SGS"},
|
208
|
+
{:numeric=>"724", :region=>"Europe", :name=>"Spain", :subregion=>"Southern Europe", :a2=>"ES", :a3=>"ESP"},
|
209
|
+
{:numeric=>"144", :region=>"Asia", :name=>"Sri Lanka", :subregion=>"Southern Asia", :a2=>"LK", :a3=>"LKA"},
|
210
|
+
{:numeric=>"736", :region=>"Africa", :name=>"Sudan", :subregion=>"Northern Africa", :a2=>"SD", :a3=>"SDN"},
|
211
|
+
{:numeric=>"740", :region=>"Americas", :name=>"Suriname", :subregion=>"South America", :a2=>"SR", :a3=>"SUR"},
|
212
|
+
{:numeric=>"744", :region=>"Europe", :name=>"Svalbard And Jan Mayen", :subregion=>"Northern Europe", :a2=>"SJ", :a3=>"SJM"},
|
213
|
+
{:numeric=>"748", :region=>"Africa", :name=>"Swaziland", :subregion=>"Southern Africa", :a2=>"SZ", :a3=>"SWZ"},
|
214
|
+
{:numeric=>"752", :region=>"Europe", :name=>"Sweden", :subregion=>"Northern Europe", :a2=>"SE", :a3=>"SWE"},
|
215
|
+
{:numeric=>"756", :region=>"Europe", :name=>"Switzerland", :subregion=>"Western Europe", :a2=>"CH", :a3=>"CHE"},
|
216
|
+
{:numeric=>"760", :region=>"Asia", :name=>"Syrian Arab Republic", :subregion=>"Western Asia", :a2=>"SY", :a3=>"SYR"},
|
217
|
+
{:numeric=>"158", :region=>"Asia", :name=>"Taiwan, Province Of China", :subregion=>"Eastern Asia", :a2=>"TW", :a3=>"TWN"},
|
218
|
+
{:numeric=>"762", :region=>"Asia", :name=>"Tajikistan", :subregion=>"Central Asia", :a2=>"TJ", :a3=>"TJK"},
|
219
|
+
{:numeric=>"834", :region=>"Africa", :name=>"Tanzania, United Republic of", :subregion=>"Eastern Africa", :a2=>"TZ", :a3=>"TZA"},
|
220
|
+
{:numeric=>"764", :region=>"Asia", :name=>"Thailand", :subregion=>"South-Eastern Asia", :a2=>"TH", :a3=>"THA"},
|
221
|
+
{:numeric=>"626", :region=>"Asia", :name=>"Timor-Leste", :subregion=>"South-Eastern Asia", :a2=>"TL", :a3=>"TLS"},
|
222
|
+
{:numeric=>"768", :region=>"Africa", :name=>"Togo", :subregion=>"Western Africa", :a2=>"TG", :a3=>"TGO"},
|
223
|
+
{:numeric=>"772", :region=>"Oceania", :name=>"Tokelau", :subregion=>"Polynesia", :a2=>"TK", :a3=>"TKL"},
|
224
|
+
{:numeric=>"776", :region=>"Oceania", :name=>"Tonga", :subregion=>"Polynesia", :a2=>"TO", :a3=>"TON"},
|
225
|
+
{:numeric=>"780", :region=>"Americas", :name=>"Trinidad and Tobago", :subregion=>"Caribbean", :a2=>"TT", :a3=>"TTO"},
|
226
|
+
{:numeric=>"788", :region=>"Africa", :name=>"Tunisia", :subregion=>"Northern Africa", :a2=>"TN", :a3=>"TUN"},
|
227
|
+
{:numeric=>"792", :region=>"Asia", :name=>"Turkey", :subregion=>"Western Asia", :a2=>"TR", :a3=>"TUR"},
|
228
|
+
{:numeric=>"795", :region=>"Asia", :name=>"Turkmenistan", :subregion=>"Central Asia", :a2=>"TM", :a3=>"TKM"},
|
229
|
+
{:numeric=>"796", :region=>"Americas", :name=>"Turks and Caicos Islands", :subregion=>"Caribbean", :a2=>"TC", :a3=>"TCA"},
|
230
|
+
{:numeric=>"798", :region=>"Oceania", :name=>"Tuvalu", :subregion=>"Polynesia", :a2=>"TV", :a3=>"TUV"},
|
231
|
+
{:numeric=>"800", :region=>"Africa", :name=>"Uganda", :subregion=>"Eastern Africa", :a2=>"UG", :a3=>"UGA"},
|
232
|
+
{:numeric=>"804", :region=>"Europe", :name=>"Ukraine", :subregion=>"Eastern Europe", :a2=>"UA", :a3=>"UKR"},
|
233
|
+
{:numeric=>"784", :region=>"Asia", :name=>"United Arab Emirates", :subregion=>"Western Asia", :a2=>"AE", :a3=>"ARE"},
|
234
|
+
{:numeric=>"826", :region=>"Europe", :name=>"United Kingdom", :subregion=>"Northern Europe", :a2=>"GB", :a3=>"GBR"},
|
235
|
+
{:numeric=>"840", :region=>"Americas", :name=>"United States", :subregion=>"Northern America", :a2=>"US", :a3=>"USA"},
|
236
|
+
{:numeric=>"581", :region=>"Americas", :name=>"United States Minor Outlying Islands", :subregion=>"Northern America", :a2=>"UM", :a3=>"UMI"},
|
237
|
+
{:numeric=>"858", :region=>"Americas", :name=>"Uruguay", :subregion=>"South America", :a2=>"UY", :a3=>"URY"},
|
238
|
+
{:numeric=>"860", :region=>"Asia", :name=>"Uzbekistan", :subregion=>"Central Asia", :a2=>"UZ", :a3=>"UZB"},
|
239
|
+
{:numeric=>"548", :region=>"Oceania", :name=>"Vanuatu", :subregion=>"Melanesia", :a2=>"VU", :a3=>"VUT"},
|
240
|
+
{:numeric=>"862", :region=>"Americas", :name=>"Venezuela, Bolivarian Republic of", :subregion=>"South America", :a2=>"VE", :a3=>"VEN"},
|
241
|
+
{:numeric=>"704", :region=>"Asia", :name=>"Viet Nam", :subregion=>"South-Eastern Asia", :a2=>"VN", :a3=>"VNM"},
|
242
|
+
{:numeric=>"092", :region=>"Americas", :name=>"Virgin Islands, British", :subregion=>"Caribbean", :a2=>"VG", :a3=>"VGB"},
|
243
|
+
{:numeric=>"850", :region=>"Americas", :name=>"Virgin Islands, U.S.", :subregion=>"Caribbean", :a2=>"VI", :a3=>"VIR"},
|
244
|
+
{:numeric=>"876", :region=>"Oceania", :name=>"Wallis and Futuna", :subregion=>"Polynesia", :a2=>"WF", :a3=>"WLF"},
|
245
|
+
{:numeric=>"732", :region=>"Africa", :name=>"Western Sahara", :subregion=>"Northern Africa", :a2=>"EH", :a3=>"ESH"},
|
246
|
+
{:numeric=>"887", :region=>"Asia", :name=>"Yemen", :subregion=>"Western Asia", :a2=>"YE", :a3=>"YEM"},
|
247
|
+
{:numeric=>"894", :region=>"Africa", :name=>"Zambia", :subregion=>"Eastern Africa", :a2=>"ZM", :a3=>"ZMB"},
|
248
|
+
{:numeric=>"716", :region=>"Africa", :name=>"Zimbabwe", :subregion=>"Eastern Africa", :a2=>"ZW", :a3=>"ZWE"},
|
249
|
+
{:numeric=>"248", :region=>"Europe", :name=>"\303\205land Islands", :subregion=>"Northern Europe", :a2=>"AX", :a3=>"ALA"}]
|
250
|
+
end
|
251
|
+
end
|
@@ -0,0 +1,174 @@
|
|
1
|
+
module ISOCodes
|
2
|
+
module Data
|
3
|
+
Currencies = [
|
4
|
+
{:code=>"AFN", :numeric=>"971", :name=>"Afghani", :country_a2=>["AF"]},
|
5
|
+
{:code=>"ALL", :numeric=>"008", :name=>"Lek", :country_a2=>["AL"]},
|
6
|
+
{:code=>"DZD", :numeric=>"012", :name=>"Algerian Dinar", :country_a2=>["DZ"]},
|
7
|
+
{:code=>"USD", :numeric=>"840", :name=>"US Dollar", :country_a2=>["AS", "IO", "EC", "SV", "GU", "HT", "MH", "FM", "MP", "PW", "PA", "PR", "TL", "TC", "US", "UM", "VG", "VI"]},
|
8
|
+
{:code=>"EUR", :numeric=>"978", :name=>"Euro", :country_a2=>["AD", "AT", "BE", "CY", "FI", "FR", "GF", "TF", "DE", "GR", "GP", "VA", "IE", "IT", "LU", "MT", "MQ", "YT", "MC", "ME", "NL", "PT", "RE", "BL", "MF", "PM", "SM", "SK", "SI", "ES", "AX"]},
|
9
|
+
{:code=>"AOA", :numeric=>"973", :name=>"Kwanza", :country_a2=>["AO"]},
|
10
|
+
{:code=>"XCD", :numeric=>"951", :name=>"East Caribbean Dollar", :country_a2=>["AI", "AG", "DM", "GD", "MS", "KN", "LC", "VC"]},
|
11
|
+
{:code=>"ARS", :numeric=>"032", :name=>"Argentine Peso", :country_a2=>["AR"]},
|
12
|
+
{:code=>"AMD", :numeric=>"051", :name=>"Armenian Dram", :country_a2=>["AM"]},
|
13
|
+
{:code=>"AWG", :numeric=>"533", :name=>"Aruban Guilder", :country_a2=>["AW"]},
|
14
|
+
{:code=>"AUD", :numeric=>"036", :name=>"Australian Dollar", :country_a2=>["AU", "CX", "CC", "HM", "KI", "NR", "NF", "TV"]},
|
15
|
+
{:code=>"AZN", :numeric=>"944", :name=>"Azerbaijanian Manat", :country_a2=>["AZ"]},
|
16
|
+
{:code=>"BSD", :numeric=>"044", :name=>"Bahamian Dollar", :country_a2=>["BS"]},
|
17
|
+
{:code=>"BHD", :numeric=>"048", :name=>"Bahraini Dinar", :country_a2=>["BH"]},
|
18
|
+
{:code=>"BDT", :numeric=>"050", :name=>"Taka", :country_a2=>["BD"]},
|
19
|
+
{:code=>"BBD", :numeric=>"052", :name=>"Barbados Dollar", :country_a2=>["BB"]},
|
20
|
+
{:code=>"BYR", :numeric=>"974", :name=>"Belarussian Ruble", :country_a2=>["BY"]},
|
21
|
+
{:code=>"BZD", :numeric=>"084", :name=>"Belize Dollar", :country_a2=>["BZ"]},
|
22
|
+
{:code=>"XOF", :numeric=>"952", :name=>"CFA Franc BCEAO", :country_a2=>["BJ", "BF", "CI", "GW", "ML", "NE", "SN", "TG"]},
|
23
|
+
{:code=>"BMD", :numeric=>"060", :name=>"Bermudian Dollar", :country_a2=>["BM"]},
|
24
|
+
{:code=>"INR", :numeric=>"356", :name=>"Indian Rupee", :country_a2=>["BT", "IN"]},
|
25
|
+
{:code=>"BTN", :numeric=>"064", :name=>"Ngultrum", :country_a2=>["BT"]},
|
26
|
+
{:code=>"BOB", :numeric=>"068", :name=>"Boliviano", :country_a2=>["BO"]},
|
27
|
+
{:code=>"BOV", :numeric=>"984", :name=>"Mvdol", :country_a2=>["BO"]},
|
28
|
+
{:code=>"BAM", :numeric=>"977", :name=>"Convertible Marks", :country_a2=>["BA"]},
|
29
|
+
{:code=>"BWP", :numeric=>"072", :name=>"Pula", :country_a2=>["BW"]},
|
30
|
+
{:code=>"NOK", :numeric=>"578", :name=>"Norwegian Krone", :country_a2=>["BV", "NO", "SJ"]},
|
31
|
+
{:code=>"BRL", :numeric=>"986", :name=>"Brazilian Real", :country_a2=>["BR"]},
|
32
|
+
{:code=>"BND", :numeric=>"096", :name=>"Brunei Dollar", :country_a2=>["BN"]},
|
33
|
+
{:code=>"BGN", :numeric=>"975", :name=>"Bulgarian Lev", :country_a2=>["BG"]},
|
34
|
+
{:code=>"BIF", :numeric=>"108", :name=>"Burundi Franc", :country_a2=>["BI"]},
|
35
|
+
{:code=>"KHR", :numeric=>"116", :name=>"Riel", :country_a2=>["KH"]},
|
36
|
+
{:code=>"XAF", :numeric=>"950", :name=>"CFA Franc BEAC", :country_a2=>["CM", "CF", "TD", "CG", "GQ", "GA"]},
|
37
|
+
{:code=>"CAD", :numeric=>"124", :name=>"Canadian Dollar", :country_a2=>["CA"]},
|
38
|
+
{:code=>"CVE", :numeric=>"132", :name=>"Cape Verde Escudo", :country_a2=>["CV"]},
|
39
|
+
{:code=>"KYD", :numeric=>"136", :name=>"Cayman Islands Dollar", :country_a2=>["KY"]},
|
40
|
+
{:code=>"CLP", :numeric=>"152", :name=>"Chilean Peso", :country_a2=>["CL"]},
|
41
|
+
{:code=>"CLF", :numeric=>"990", :name=>"Unidades de fomento", :country_a2=>["CL"]},
|
42
|
+
{:code=>"CNY", :numeric=>"156", :name=>"Yuan Renminbi", :country_a2=>["CN"]},
|
43
|
+
{:code=>"COP", :numeric=>"170", :name=>"Colombian Peso", :country_a2=>["CO"]},
|
44
|
+
{:code=>"COU", :numeric=>"970", :name=>"Unidad de Valor real", :country_a2=>["CO"]},
|
45
|
+
{:code=>"KMF", :numeric=>"174", :name=>"Comoro Franc", :country_a2=>["KM"]},
|
46
|
+
{:code=>"CDF", :numeric=>"976", :name=>"Franc Congolais", :country_a2=>["CD"]},
|
47
|
+
{:code=>"NZD", :numeric=>"554", :name=>"New Zealand Dollar", :country_a2=>["CK", "NZ", "NU", "PN", "TK"]},
|
48
|
+
{:code=>"CRC", :numeric=>"188", :name=>"Costa Rican Colon", :country_a2=>["CR"]},
|
49
|
+
{:code=>"HRK", :numeric=>"191", :name=>"Croatian Kuna", :country_a2=>["HR"]},
|
50
|
+
{:code=>"CUP", :numeric=>"192", :name=>"Cuban Peso", :country_a2=>["CU"]},
|
51
|
+
{:code=>"CUC", :numeric=>"931", :name=>"Peso Convertible ", :country_a2=>["CU"]},
|
52
|
+
{:code=>"CZK", :numeric=>"203", :name=>"Czech Koruna", :country_a2=>["CZ"]},
|
53
|
+
{:code=>"DKK", :numeric=>"208", :name=>"Danish Krone", :country_a2=>["DK", "FO", "GL"]},
|
54
|
+
{:code=>"DJF", :numeric=>"262", :name=>"Djibouti Franc", :country_a2=>["DJ"]},
|
55
|
+
{:code=>"DOP", :numeric=>"214", :name=>"Dominican Peso", :country_a2=>["DO"]},
|
56
|
+
{:code=>"EGP", :numeric=>"818", :name=>"Egyptian Pound", :country_a2=>["EG"]},
|
57
|
+
{:code=>"SVC", :numeric=>"222", :name=>"El Salvador Colon", :country_a2=>["SV"]},
|
58
|
+
{:code=>"ERN", :numeric=>"232", :name=>"Nakfa", :country_a2=>["ER"]},
|
59
|
+
{:code=>"EEK", :numeric=>"233", :name=>"Kroon", :country_a2=>["EE"]},
|
60
|
+
{:code=>"ETB", :numeric=>"230", :name=>"Ethiopian Birr", :country_a2=>["ET"]},
|
61
|
+
{:code=>"FKP", :numeric=>"238", :name=>"Falkland Island Pound", :country_a2=>["FK"]},
|
62
|
+
{:code=>"FJD", :numeric=>"242", :name=>"Fiji Dollar", :country_a2=>["FJ"]},
|
63
|
+
{:code=>"XPF", :numeric=>"953", :name=>"CFP Franc", :country_a2=>["PF", "NC", "WF"]},
|
64
|
+
{:code=>"GMD", :numeric=>"270", :name=>"Dalasi", :country_a2=>["GM"]},
|
65
|
+
{:code=>"GEL", :numeric=>"981", :name=>"Lari", :country_a2=>["GE"]},
|
66
|
+
{:code=>"GHS", :numeric=>"936", :name=>"Cedi", :country_a2=>["GH"]},
|
67
|
+
{:code=>"GIP", :numeric=>"292", :name=>"Gibraltar Pound", :country_a2=>["GI"]},
|
68
|
+
{:code=>"GTQ", :numeric=>"320", :name=>"Quetzal", :country_a2=>["GT"]},
|
69
|
+
{:code=>"GBP", :numeric=>"826", :name=>"Pound Sterling", :country_a2=>["GG", "JE", "GB"]},
|
70
|
+
{:code=>"GNF", :numeric=>"324", :name=>"Guinea Franc", :country_a2=>["GN"]},
|
71
|
+
{:code=>"GWP", :numeric=>"624", :name=>"Guinea-Bissau Peso", :country_a2=>["GW"]},
|
72
|
+
{:code=>"GYD", :numeric=>"328", :name=>"Guyana Dollar", :country_a2=>["GY"]},
|
73
|
+
{:code=>"HTG", :numeric=>"332", :name=>"Gourde", :country_a2=>["HT"]},
|
74
|
+
{:code=>"HNL", :numeric=>"340", :name=>"Lempira", :country_a2=>["HN"]},
|
75
|
+
{:code=>"HKD", :numeric=>"344", :name=>"Hong Kong Dollar", :country_a2=>["HK"]},
|
76
|
+
{:code=>"HUF", :numeric=>"348", :name=>"Forint", :country_a2=>["HU"]},
|
77
|
+
{:code=>"ISK", :numeric=>"352", :name=>"Iceland Krona", :country_a2=>["IS"]},
|
78
|
+
{:code=>"IDR", :numeric=>"360", :name=>"Rupiah", :country_a2=>["ID"]},
|
79
|
+
{:code=>"IRR", :numeric=>"364", :name=>"Iranian Rial", :country_a2=>["IR"]},
|
80
|
+
{:code=>"IQD", :numeric=>"368", :name=>"Iraqi Dinar", :country_a2=>["IQ"]},
|
81
|
+
{:code=>"ILS", :numeric=>"376", :name=>"New Israeli Sheqel", :country_a2=>["IL"]},
|
82
|
+
{:code=>"JMD", :numeric=>"388", :name=>"Jamaican Dollar", :country_a2=>["JM"]},
|
83
|
+
{:code=>"JPY", :numeric=>"392", :name=>"Yen", :country_a2=>["JP"]},
|
84
|
+
{:code=>"JOD", :numeric=>"400", :name=>"Jordanian Dinar", :country_a2=>["JO"]},
|
85
|
+
{:code=>"KZT", :numeric=>"398", :name=>"Tenge", :country_a2=>["KZ"]},
|
86
|
+
{:code=>"KES", :numeric=>"404", :name=>"Kenyan Shilling", :country_a2=>["KE"]},
|
87
|
+
{:code=>"KPW", :numeric=>"408", :name=>"North Korean Won", :country_a2=>["KP"]},
|
88
|
+
{:code=>"KRW", :numeric=>"410", :name=>"Won", :country_a2=>["KR"]},
|
89
|
+
{:code=>"KWD", :numeric=>"414", :name=>"Kuwaiti Dinar", :country_a2=>["KW"]},
|
90
|
+
{:code=>"KGS", :numeric=>"417", :name=>"Som", :country_a2=>["KG"]},
|
91
|
+
{:code=>"LAK", :numeric=>"418", :name=>"Kip", :country_a2=>["LA"]},
|
92
|
+
{:code=>"LVL", :numeric=>"428", :name=>"Latvian Lats", :country_a2=>["LV"]},
|
93
|
+
{:code=>"LBP", :numeric=>"422", :name=>"Lebanese Pound", :country_a2=>["LB"]},
|
94
|
+
{:code=>"LSL", :numeric=>"426", :name=>"Loti", :country_a2=>["LS"]},
|
95
|
+
{:code=>"ZAR", :numeric=>"710", :name=>"Rand", :country_a2=>["LS", "NA", "ZA"]},
|
96
|
+
{:code=>"LRD", :numeric=>"430", :name=>"Liberian Dollar", :country_a2=>["LR"]},
|
97
|
+
{:code=>"LYD", :numeric=>"434", :name=>"Libyan Dinar", :country_a2=>["LY"]},
|
98
|
+
{:code=>"CHF", :numeric=>"756", :name=>"Swiss Franc", :country_a2=>["LI", "CH"]},
|
99
|
+
{:code=>"LTL", :numeric=>"440", :name=>"Lithuanian Litas", :country_a2=>["LT"]},
|
100
|
+
{:code=>"MOP", :numeric=>"446", :name=>"Pataca", :country_a2=>["MO"]},
|
101
|
+
{:code=>"MKD", :numeric=>"807", :name=>"Denar", :country_a2=>["MK"]},
|
102
|
+
{:code=>"MGA", :numeric=>"969", :name=>"Malagasy Ariary", :country_a2=>["MG"]},
|
103
|
+
{:code=>"MWK", :numeric=>"454", :name=>"Kwacha", :country_a2=>["MW"]},
|
104
|
+
{:code=>"MYR", :numeric=>"458", :name=>"Malaysian Ringgit", :country_a2=>["MY"]},
|
105
|
+
{:code=>"MVR", :numeric=>"462", :name=>"Rufiyaa", :country_a2=>["MV"]},
|
106
|
+
{:code=>"MRO", :numeric=>"478", :name=>"Ouguiya", :country_a2=>["MR"]},
|
107
|
+
{:code=>"MUR", :numeric=>"480", :name=>"Mauritius Rupee", :country_a2=>["MU"]},
|
108
|
+
{:code=>"MXN", :numeric=>"484", :name=>"Mexican Peso", :country_a2=>["MX"]},
|
109
|
+
{:code=>"MXV", :numeric=>"979", :name=>"Mexican Unidad de Inversion (UDI)", :country_a2=>["MX"]},
|
110
|
+
{:code=>"MDL", :numeric=>"498", :name=>"Moldovan Leu", :country_a2=>["MD"]},
|
111
|
+
{:code=>"MNT", :numeric=>"496", :name=>"Tugrik", :country_a2=>["MN"]},
|
112
|
+
{:code=>"MAD", :numeric=>"504", :name=>"Moroccan Dirham", :country_a2=>["MA", "EH"]},
|
113
|
+
{:code=>"MZN", :numeric=>"943", :name=>"Metical", :country_a2=>["MZ"]},
|
114
|
+
{:code=>"MMK", :numeric=>"104", :name=>"Kyat", :country_a2=>["MM"]},
|
115
|
+
{:code=>"NAD", :numeric=>"516", :name=>"Namibia Dollar", :country_a2=>["NA"]},
|
116
|
+
{:code=>"NPR", :numeric=>"524", :name=>"Nepalese Rupee", :country_a2=>["NP"]},
|
117
|
+
{:code=>"ANG", :numeric=>"532", :name=>"Netherlands Antillian Guilder", :country_a2=>["AN"]},
|
118
|
+
{:code=>"NIO", :numeric=>"558", :name=>"Cordoba Oro", :country_a2=>["NI"]},
|
119
|
+
{:code=>"NGN", :numeric=>"566", :name=>"Naira", :country_a2=>["NG"]},
|
120
|
+
{:code=>"OMR", :numeric=>"512", :name=>"Rial Omani", :country_a2=>["OM"]},
|
121
|
+
{:code=>"PKR", :numeric=>"586", :name=>"Pakistan Rupee", :country_a2=>["PK"]},
|
122
|
+
{:code=>"PAB", :numeric=>"590", :name=>"Balboa", :country_a2=>["PA"]},
|
123
|
+
{:code=>"PGK", :numeric=>"598", :name=>"Kina", :country_a2=>["PG"]},
|
124
|
+
{:code=>"PYG", :numeric=>"600", :name=>"Guarani", :country_a2=>["PY"]},
|
125
|
+
{:code=>"PEN", :numeric=>"604", :name=>"Nuevo Sol", :country_a2=>["PE"]},
|
126
|
+
{:code=>"PHP", :numeric=>"608", :name=>"Philippine Peso", :country_a2=>["PH"]},
|
127
|
+
{:code=>"PLN", :numeric=>"985", :name=>"Zloty", :country_a2=>["PL"]},
|
128
|
+
{:code=>"QAR", :numeric=>"634", :name=>"Qatari Rial", :country_a2=>["QA"]},
|
129
|
+
{:code=>"RON", :numeric=>"946", :name=>"New Leu", :country_a2=>["RO"]},
|
130
|
+
{:code=>"RUB", :numeric=>"643", :name=>"Russian Ruble", :country_a2=>["RU"]},
|
131
|
+
{:code=>"RWF", :numeric=>"646", :name=>"Rwanda Franc", :country_a2=>["RW"]},
|
132
|
+
{:code=>"SHP", :numeric=>"654", :name=>"Saint Helena Pound", :country_a2=>["SH"]},
|
133
|
+
{:code=>"WST", :numeric=>"882", :name=>"Tala", :country_a2=>["WS"]},
|
134
|
+
{:code=>"STD", :numeric=>"678", :name=>"Dobra", :country_a2=>["ST"]},
|
135
|
+
{:code=>"SAR", :numeric=>"682", :name=>"Saudi Riyal", :country_a2=>["SA"]},
|
136
|
+
{:code=>"RSD", :numeric=>"941", :name=>"Serbian Dinar", :country_a2=>["RS"]},
|
137
|
+
{:code=>"SCR", :numeric=>"690", :name=>"Seychelles Rupee", :country_a2=>["SC"]},
|
138
|
+
{:code=>"SLL", :numeric=>"694", :name=>"Leone", :country_a2=>["SL"]},
|
139
|
+
{:code=>"SGD", :numeric=>"702", :name=>"Singapore Dollar", :country_a2=>["SG"]},
|
140
|
+
{:code=>"SBD", :numeric=>"090", :name=>"Solomon Islands Dollar", :country_a2=>["SB"]},
|
141
|
+
{:code=>"SOS", :numeric=>"706", :name=>"Somali Shilling", :country_a2=>["SO"]},
|
142
|
+
{:code=>"LKR", :numeric=>"144", :name=>"Sri Lanka Rupee", :country_a2=>["LK"]},
|
143
|
+
{:code=>"SDG", :numeric=>"938", :name=>"Sudanese Pound", :country_a2=>["SD"]},
|
144
|
+
{:code=>"SRD", :numeric=>"968", :name=>"Surinam Dollar", :country_a2=>["SR"]},
|
145
|
+
{:code=>"SZL", :numeric=>"748", :name=>"Lilangeni", :country_a2=>["SZ"]},
|
146
|
+
{:code=>"SEK", :numeric=>"752", :name=>"Swedish Krona", :country_a2=>["SE"]},
|
147
|
+
{:code=>"CHE", :numeric=>"947", :name=>"WIR Euro", :country_a2=>["CH"]},
|
148
|
+
{:code=>"CHW", :numeric=>"948", :name=>"WIR Franc", :country_a2=>["CH"]},
|
149
|
+
{:code=>"SYP", :numeric=>"760", :name=>"Syrian Pound", :country_a2=>["SY"]},
|
150
|
+
{:code=>"TWD", :numeric=>"901", :name=>"New Taiwan Dollar", :country_a2=>["TW"]},
|
151
|
+
{:code=>"TJS", :numeric=>"972", :name=>"Somoni", :country_a2=>["TJ"]},
|
152
|
+
{:code=>"TZS", :numeric=>"834", :name=>"Tanzanian Shilling", :country_a2=>["TZ"]},
|
153
|
+
{:code=>"THB", :numeric=>"764", :name=>"Baht", :country_a2=>["TH"]},
|
154
|
+
{:code=>"TOP", :numeric=>"776", :name=>"Pa'anga", :country_a2=>["TO"]},
|
155
|
+
{:code=>"TTD", :numeric=>"780", :name=>"Trinidata and Tobago Dollar", :country_a2=>["TT"]},
|
156
|
+
{:code=>"TND", :numeric=>"788", :name=>"Tunisian Dinar", :country_a2=>["TN"]},
|
157
|
+
{:code=>"TRY", :numeric=>"949", :name=>"Turkish Lira", :country_a2=>["TR"]},
|
158
|
+
{:code=>"TMT", :numeric=>"934", :name=>"Manat", :country_a2=>["TM"]},
|
159
|
+
{:code=>"UGX", :numeric=>"800", :name=>"Uganda Shilling", :country_a2=>["UG"]},
|
160
|
+
{:code=>"UAH", :numeric=>"980", :name=>"Hryvnia", :country_a2=>["UA"]},
|
161
|
+
{:code=>"AED", :numeric=>"784", :name=>"UAE Dirham", :country_a2=>["AE"]},
|
162
|
+
{:code=>"USN", :numeric=>"997", :name=>"US Dollar (Next Day)", :country_a2=>["US"]},
|
163
|
+
{:code=>"USS", :numeric=>"998", :name=>"US Dollar (Same Day)", :country_a2=>["US"]},
|
164
|
+
{:code=>"UYU", :numeric=>"858", :name=>"Peso Uruguayo", :country_a2=>["UY"]},
|
165
|
+
{:code=>"UYI", :numeric=>"940", :name=>"Uruguay Peso en Unidades Indexadas", :country_a2=>["UY"]},
|
166
|
+
{:code=>"UZS", :numeric=>"860", :name=>"Uzbekistan Sum", :country_a2=>["UZ"]},
|
167
|
+
{:code=>"VUV", :numeric=>"548", :name=>"Vatu", :country_a2=>["VU"]},
|
168
|
+
{:code=>"VEF", :numeric=>"937", :name=>"Bolivar Fuerte", :country_a2=>["VE"]},
|
169
|
+
{:code=>"VND", :numeric=>"704", :name=>"Dong", :country_a2=>["VN"]},
|
170
|
+
{:code=>"YER", :numeric=>"886", :name=>"Yemeni Rial", :country_a2=>["YE"]},
|
171
|
+
{:code=>"ZMK", :numeric=>"894", :name=>"Zambian Kwacha", :country_a2=>["ZM"]},
|
172
|
+
{:code=>"ZWL", :numeric=>"932", :name=>"Zimbabwe Dollar", :country_a2=>["ZW"]}]
|
173
|
+
end
|
174
|
+
end
|
@@ -0,0 +1,193 @@
|
|
1
|
+
module ISOCodes
|
2
|
+
module Data
|
3
|
+
Languages = [
|
4
|
+
{:name=>"Abkhazian", :a2=>"ab"},
|
5
|
+
{:name=>"Afar", :a2=>"aa"},
|
6
|
+
{:name=>"Afrikaans", :a2=>"af"},
|
7
|
+
{:name=>"Akan", :a2=>"ak"},
|
8
|
+
{:name=>"Albanian", :a2=>"sq"},
|
9
|
+
{:name=>"Amharic", :a2=>"am"},
|
10
|
+
{:name=>"Arabic", :a2=>"ar"},
|
11
|
+
{:name=>"Aragonese", :a2=>"an"},
|
12
|
+
{:name=>"Armenian", :a2=>"hy"},
|
13
|
+
{:name=>"Assamese", :a2=>"as"},
|
14
|
+
{:name=>"Avaric", :a2=>"av"},
|
15
|
+
{:name=>"Avestan", :a2=>"ae"},
|
16
|
+
{:name=>"Aymara", :a2=>"ay"},
|
17
|
+
{:name=>"Azerbaijani", :a2=>"az"},
|
18
|
+
{:name=>"Bambara", :a2=>"bm"},
|
19
|
+
{:name=>"Bashkir", :a2=>"ba"},
|
20
|
+
{:name=>"Basque", :a2=>"eu"},
|
21
|
+
{:name=>"Belarusian", :a2=>"be"},
|
22
|
+
{:name=>"Bengali", :a2=>"bn"},
|
23
|
+
{:name=>"Bihari", :a2=>"bh"},
|
24
|
+
{:name=>"Bislama", :a2=>"bi"},
|
25
|
+
{:name=>"Bosnian", :a2=>"bs"},
|
26
|
+
{:name=>"Breton", :a2=>"br"},
|
27
|
+
{:name=>"Bulgarian", :a2=>"bg"},
|
28
|
+
{:name=>"Burmese", :a2=>"my"},
|
29
|
+
{:name=>"Catalan", :a2=>"ca"},
|
30
|
+
{:name=>"Central Khmer", :a2=>"km"},
|
31
|
+
{:name=>"Chamorro", :a2=>"ch"},
|
32
|
+
{:name=>"Chechen", :a2=>"ce"},
|
33
|
+
{:name=>"Chichewa", :a2=>"ny"},
|
34
|
+
{:name=>"Chinese", :a2=>"zh"},
|
35
|
+
{:name=>"Church Slavic", :a2=>"cu"},
|
36
|
+
{:name=>"Chuvash", :a2=>"cv"},
|
37
|
+
{:name=>"Cornish", :a2=>"kw"},
|
38
|
+
{:name=>"Corsican", :a2=>"co"},
|
39
|
+
{:name=>"Cree", :a2=>"cr"},
|
40
|
+
{:name=>"Croatian", :a2=>"hr"},
|
41
|
+
{:name=>"Czech", :a2=>"cs"},
|
42
|
+
{:name=>"Danish", :a2=>"da"},
|
43
|
+
{:name=>"Divehi", :a2=>"dv"},
|
44
|
+
{:name=>"Dutch; Flemish", :a2=>"nl"},
|
45
|
+
{:name=>"Dzongkha", :a2=>"dz"},
|
46
|
+
{:name=>"English", :a2=>"en"},
|
47
|
+
{:name=>"Esperanto", :a2=>"eo"},
|
48
|
+
{:name=>"Estonian", :a2=>"et"},
|
49
|
+
{:name=>"Ewe", :a2=>"ee"},
|
50
|
+
{:name=>"Faroese", :a2=>"fo"},
|
51
|
+
{:name=>"Fijian", :a2=>"fj"},
|
52
|
+
{:name=>"Finnish", :a2=>"fi"},
|
53
|
+
{:name=>"French", :a2=>"fr"},
|
54
|
+
{:name=>"Fulah", :a2=>"ff"},
|
55
|
+
{:name=>"Galician", :a2=>"gl"},
|
56
|
+
{:name=>"Ganda", :a2=>"lg"},
|
57
|
+
{:name=>"Georgian", :a2=>"ka"},
|
58
|
+
{:name=>"German", :a2=>"de"},
|
59
|
+
{:name=>"Greek", :a2=>"el"},
|
60
|
+
{:name=>"Guarani", :a2=>"gn"},
|
61
|
+
{:name=>"Gujarati", :a2=>"gu"},
|
62
|
+
{:name=>"Haitian Creole", :a2=>"ht"},
|
63
|
+
{:name=>"Hausa", :a2=>"ha"},
|
64
|
+
{:name=>"Hebrew", :a2=>"he"},
|
65
|
+
{:name=>"Herero", :a2=>"hz"},
|
66
|
+
{:name=>"Hindi", :a2=>"hi"},
|
67
|
+
{:name=>"Hiri Motu", :a2=>"ho"},
|
68
|
+
{:name=>"Hungarian", :a2=>"hu"},
|
69
|
+
{:name=>"Icelandic", :a2=>"is"},
|
70
|
+
{:name=>"Ido", :a2=>"io"},
|
71
|
+
{:name=>"Igbo", :a2=>"ig"},
|
72
|
+
{:name=>"Indonesian", :a2=>"id"},
|
73
|
+
{:name=>"Interlingua (International Auxiliary Language Association)", :a2=>"ia"},
|
74
|
+
{:name=>"Interlingue", :a2=>"ie"},
|
75
|
+
{:name=>"Inuktitut", :a2=>"iu"},
|
76
|
+
{:name=>"Inupiaq", :a2=>"ik"},
|
77
|
+
{:name=>"Irish", :a2=>"ga"},
|
78
|
+
{:name=>"Italian", :a2=>"it"},
|
79
|
+
{:name=>"Japanese", :a2=>"ja"},
|
80
|
+
{:name=>"Javanese", :a2=>"jv"},
|
81
|
+
{:name=>"Kalaallisut", :a2=>"kl"},
|
82
|
+
{:name=>"Kannada", :a2=>"kn"},
|
83
|
+
{:name=>"Kanuri", :a2=>"kr"},
|
84
|
+
{:name=>"Kashmiri", :a2=>"ks"},
|
85
|
+
{:name=>"Kazakh", :a2=>"kk"},
|
86
|
+
{:name=>"Kikuyu; Gikuyu", :a2=>"ki"},
|
87
|
+
{:name=>"Kinyarwanda", :a2=>"rw"},
|
88
|
+
{:name=>"Kirghiz", :a2=>"ky"},
|
89
|
+
{:name=>"Komi", :a2=>"kv"},
|
90
|
+
{:name=>"Kongo", :a2=>"kg"},
|
91
|
+
{:name=>"Korean", :a2=>"ko"},
|
92
|
+
{:name=>"Kuanyama; Kwanyama", :a2=>"kj"},
|
93
|
+
{:name=>"Kurdish", :a2=>"ku"},
|
94
|
+
{:name=>"Lao", :a2=>"lo"},
|
95
|
+
{:name=>"Latin", :a2=>"la"},
|
96
|
+
{:name=>"Latvian", :a2=>"lv"},
|
97
|
+
{:name=>"Limburgish", :a2=>"li"},
|
98
|
+
{:name=>"Lingala", :a2=>"ln"},
|
99
|
+
{:name=>"Lithuanian", :a2=>"lt"},
|
100
|
+
{:name=>"Luba-Katanga", :a2=>"lu"},
|
101
|
+
{:name=>"Luxembourgish", :a2=>"lb"},
|
102
|
+
{:name=>"Luxembourgish", :a2=>"ib"},
|
103
|
+
{:name=>"Macedonian", :a2=>"mk"},
|
104
|
+
{:name=>"Malagasy", :a2=>"mg"},
|
105
|
+
{:name=>"Malay", :a2=>"ms"},
|
106
|
+
{:name=>"Malayalam", :a2=>"ml"},
|
107
|
+
{:name=>"Maltese", :a2=>"mt"},
|
108
|
+
{:name=>"Manx", :a2=>"gv"},
|
109
|
+
{:name=>"Maori", :a2=>"mi"},
|
110
|
+
{:name=>"Marathi", :a2=>"mr"},
|
111
|
+
{:name=>"Marshallese", :a2=>"mh"},
|
112
|
+
{:name=>"Moldavian", :a2=>"mo"},
|
113
|
+
{:name=>"Mongolian", :a2=>"mn"},
|
114
|
+
{:name=>"Nauru", :a2=>"na"},
|
115
|
+
{:name=>"Navajo; Navaho", :a2=>"nv"},
|
116
|
+
{:name=>"Ndonga", :a2=>"ng"},
|
117
|
+
{:name=>"Nepali", :a2=>"ne"},
|
118
|
+
{:name=>"North Ndebele", :a2=>"nd"},
|
119
|
+
{:name=>"Northern Sami", :a2=>"se"},
|
120
|
+
{:name=>"Norwegian", :a2=>"no"},
|
121
|
+
{:name=>"Norwegian Bokm\303\245l", :a2=>"nb"},
|
122
|
+
{:name=>"Norwegian Nynorsk", :a2=>"nn"},
|
123
|
+
{:name=>"Occitan", :a2=>"oc"},
|
124
|
+
{:name=>"Ojibwa", :a2=>"oj"},
|
125
|
+
{:name=>"Oriya", :a2=>"or"},
|
126
|
+
{:name=>"Oromo", :a2=>"om"},
|
127
|
+
{:name=>"Ossetian; Ossetic", :a2=>"os"},
|
128
|
+
{:name=>"Pali", :a2=>"pi"},
|
129
|
+
{:name=>"Panjabi; Punjabi", :a2=>"pa"},
|
130
|
+
{:name=>"Persian", :a2=>"fa"},
|
131
|
+
{:name=>"Polish", :a2=>"pl"},
|
132
|
+
{:name=>"Portuguese", :a2=>"pt"},
|
133
|
+
{:name=>"Pushto; Pashto", :a2=>"ps"},
|
134
|
+
{:name=>"Quechua", :a2=>"qu"},
|
135
|
+
{:name=>"Romanian", :a2=>"ro"},
|
136
|
+
{:name=>"Romansh", :a2=>"rm"},
|
137
|
+
{:name=>"Rundi", :a2=>"rn"},
|
138
|
+
{:name=>"Russian", :a2=>"ru"},
|
139
|
+
{:name=>"Rusyn", :a2=>"ry"},
|
140
|
+
{:name=>"Samoan", :a2=>"sm"},
|
141
|
+
{:name=>"Sango", :a2=>"sg"},
|
142
|
+
{:name=>"Sanskrit", :a2=>"sa"},
|
143
|
+
{:name=>"Sardinian", :a2=>"sc"},
|
144
|
+
{:name=>"Scottish Gaelic", :a2=>"gd"},
|
145
|
+
{:name=>"Serbian", :a2=>"sr"},
|
146
|
+
{:name=>"Serbo-Croatian", :a2=>"sh"},
|
147
|
+
{:name=>"Shona", :a2=>"sn"},
|
148
|
+
{:name=>"Sichuan Yi", :a2=>"ii"},
|
149
|
+
{:name=>"Sindhi", :a2=>"sd"},
|
150
|
+
{:name=>"Sinhalese", :a2=>"si"},
|
151
|
+
{:name=>"Slovak", :a2=>"sk"},
|
152
|
+
{:name=>"Slovenian", :a2=>"sl"},
|
153
|
+
{:name=>"Somali", :a2=>"so"},
|
154
|
+
{:name=>"Sotho, Southern", :a2=>"st"},
|
155
|
+
{:name=>"South Ndebele", :a2=>"nr"},
|
156
|
+
{:name=>"Spanish; Castilian", :a2=>"es"},
|
157
|
+
{:name=>"Sundanese", :a2=>"su"},
|
158
|
+
{:name=>"Swahili", :a2=>"sw"},
|
159
|
+
{:name=>"Swati", :a2=>"ss"},
|
160
|
+
{:name=>"Swedish", :a2=>"sv"},
|
161
|
+
{:name=>"Tagalog", :a2=>"tl"},
|
162
|
+
{:name=>"Tahitian", :a2=>"ty"},
|
163
|
+
{:name=>"Tajik", :a2=>"tg"},
|
164
|
+
{:name=>"Tamil", :a2=>"ta"},
|
165
|
+
{:name=>"Tatar", :a2=>"tt"},
|
166
|
+
{:name=>"Telugu", :a2=>"te"},
|
167
|
+
{:name=>"Thai", :a2=>"th"},
|
168
|
+
{:name=>"Tibetan", :a2=>"bo"},
|
169
|
+
{:name=>"Tigrinya", :a2=>"ti"},
|
170
|
+
{:name=>"Tonga", :a2=>"to"},
|
171
|
+
{:name=>"Tsonga", :a2=>"ts"},
|
172
|
+
{:name=>"Tswana", :a2=>"tn"},
|
173
|
+
{:name=>"Turkish", :a2=>"tr"},
|
174
|
+
{:name=>"Turkmen", :a2=>"tk"},
|
175
|
+
{:name=>"Twi", :a2=>"tw"},
|
176
|
+
{:name=>"Uighur", :a2=>"ug"},
|
177
|
+
{:name=>"Ukrainian", :a2=>"uk"},
|
178
|
+
{:name=>"Urdu", :a2=>"ur"},
|
179
|
+
{:name=>"Uzbek", :a2=>"uz"},
|
180
|
+
{:name=>"Venda", :a2=>"ve"},
|
181
|
+
{:name=>"Vietnamese", :a2=>"vi"},
|
182
|
+
{:name=>"Volap\303\274k", :a2=>"vo"},
|
183
|
+
{:name=>"Walloon", :a2=>"wa"},
|
184
|
+
{:name=>"Welsh", :a2=>"cy"},
|
185
|
+
{:name=>"Western Frisian", :a2=>"fy"},
|
186
|
+
{:name=>"Wolof", :a2=>"wo"},
|
187
|
+
{:name=>"Xhosa", :a2=>"xh"},
|
188
|
+
{:name=>"Yiddish", :a2=>"yi"},
|
189
|
+
{:name=>"Yoruba", :a2=>"yo"},
|
190
|
+
{:name=>"Zhuang; Chuang", :a2=>"za"},
|
191
|
+
{:name=>"Zulu", :a2=>"zu"}]
|
192
|
+
end
|
193
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class CountryTest < Test::Unit::TestCase
|
4
|
+
include ISOCodes
|
5
|
+
|
6
|
+
should 'have data' do
|
7
|
+
assert_instance_of Array, Country.data
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'return first matching item for #find' do
|
11
|
+
country = Country.find(:a2, 'GB')
|
12
|
+
assert_instance_of Country, country
|
13
|
+
assert_equal 'GB', country.a2
|
14
|
+
end
|
15
|
+
|
16
|
+
should 'return all array of matching items for #find_all' do
|
17
|
+
countries = Country.find_all_by_region('Europe')
|
18
|
+
assert_instance_of Array, countries
|
19
|
+
assert(countries.all? { |c|
|
20
|
+
c.region == 'Europe'
|
21
|
+
})
|
22
|
+
end
|
23
|
+
|
24
|
+
should 'have auto generated find_by_x methods' do
|
25
|
+
|
26
|
+
%w(name a2 a3 region subregion).each do |field|
|
27
|
+
assert Country.respond_to?("find_by_#{field}")
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
should 'have auto generated find_all_by_x methods' do
|
33
|
+
|
34
|
+
%w(name a2 a3 region subregion).each do |field|
|
35
|
+
assert Country.respond_to?("find_all_by_#{field}")
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
should 'find the currency for a particular country' do
|
41
|
+
country = Country.find_by_a2('GB')
|
42
|
+
assert_instance_of Currency, country.currency
|
43
|
+
assert_equal 'GBP', country.currency.code
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class CurrencyTest < Test::Unit::TestCase
|
4
|
+
include ISOCodes
|
5
|
+
|
6
|
+
should 'have data' do
|
7
|
+
assert_instance_of Array, Currency.data
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'return first matching item for #find' do
|
11
|
+
currency = Currency.find(:code, 'GBP')
|
12
|
+
assert_instance_of Currency, currency
|
13
|
+
assert_equal 'GBP', currency.code
|
14
|
+
end
|
15
|
+
|
16
|
+
should 'have auto generated find_by_x methods' do
|
17
|
+
|
18
|
+
%w(name code numeric country_a2).each do |field|
|
19
|
+
assert Currency.respond_to?("find_by_#{field}")
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
should 'have auto generated find_all_by_x methods' do
|
25
|
+
|
26
|
+
%w(name code numeric country_a2).each do |field|
|
27
|
+
assert Currency.respond_to?("find_all_by_#{field}")
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
should 'return countries for #country' do
|
33
|
+
currency = Currency.find_by_code('USD')
|
34
|
+
assert_instance_of Array, currency.countries
|
35
|
+
assert_instance_of Country, currency.countries.first
|
36
|
+
assert(currency.countries.size > 1)
|
37
|
+
end
|
38
|
+
|
39
|
+
should 'find currency for a country given a Country object' do
|
40
|
+
country = Country.find_by_a2('GB')
|
41
|
+
currency = Currency.find_by_country(country)
|
42
|
+
assert_equal 'GBP', currency.code
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class LanguageTest < Test::Unit::TestCase
|
4
|
+
include ISOCodes
|
5
|
+
|
6
|
+
should 'have data' do
|
7
|
+
assert_instance_of Array, Language.data
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'return first matching item for #find' do
|
11
|
+
language = Language.find(:a2, 'en')
|
12
|
+
assert_instance_of Language, language
|
13
|
+
assert_equal 'en', language.a2
|
14
|
+
end
|
15
|
+
|
16
|
+
should 'have auto generated find_by_x methods' do
|
17
|
+
|
18
|
+
%w(name a2).each do |field|
|
19
|
+
assert Language.respond_to?("find_by_#{field}")
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: danwrong-iso_codes
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: "0.1"
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dan Webb
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-07-27 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: shoulda
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: fastercsv
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
description: Gem for finding and listing ISO codes for countries, currencies and languages
|
36
|
+
email: dan@danwebb.net
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- CHANGELOG
|
43
|
+
- lib/iso_codes/base.rb
|
44
|
+
- lib/iso_codes/country.rb
|
45
|
+
- lib/iso_codes/currency.rb
|
46
|
+
- lib/iso_codes/data/countries.rb
|
47
|
+
- lib/iso_codes/data/currencies.rb
|
48
|
+
- lib/iso_codes/data/languages.rb
|
49
|
+
- lib/iso_codes/language.rb
|
50
|
+
- lib/iso_codes.rb
|
51
|
+
- LICENSE
|
52
|
+
- README
|
53
|
+
files:
|
54
|
+
- CHANGELOG
|
55
|
+
- lib/iso_codes/base.rb
|
56
|
+
- lib/iso_codes/country.rb
|
57
|
+
- lib/iso_codes/currency.rb
|
58
|
+
- lib/iso_codes/data/countries.rb
|
59
|
+
- lib/iso_codes/data/currencies.rb
|
60
|
+
- lib/iso_codes/data/languages.rb
|
61
|
+
- lib/iso_codes/language.rb
|
62
|
+
- lib/iso_codes.rb
|
63
|
+
- LICENSE
|
64
|
+
- Manifest
|
65
|
+
- Rakefile
|
66
|
+
- README
|
67
|
+
- test/country_test.rb
|
68
|
+
- test/currency_test.rb
|
69
|
+
- test/language_test.rb
|
70
|
+
- test/test_helper.rb
|
71
|
+
- iso_codes.gemspec
|
72
|
+
has_rdoc: false
|
73
|
+
homepage: http://github.com/danwrong/iso_codes/
|
74
|
+
licenses:
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options:
|
77
|
+
- --line-numbers
|
78
|
+
- --inline-source
|
79
|
+
- --title
|
80
|
+
- Iso_codes
|
81
|
+
- --main
|
82
|
+
- README
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: "0"
|
90
|
+
version:
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: "1.2"
|
96
|
+
version:
|
97
|
+
requirements: []
|
98
|
+
|
99
|
+
rubyforge_project: iso_codes
|
100
|
+
rubygems_version: 1.3.5
|
101
|
+
signing_key:
|
102
|
+
specification_version: 3
|
103
|
+
summary: Gem for finding and listing ISO codes for countries, currencies and languages
|
104
|
+
test_files:
|
105
|
+
- test/country_test.rb
|
106
|
+
- test/currency_test.rb
|
107
|
+
- test/language_test.rb
|
108
|
+
- test/test_helper.rb
|