iso_codes 0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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 +109 -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,109 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: 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 +01: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: true
|
73
|
+
homepage: http://github.com/danwrong/iso_codes/
|
74
|
+
licenses: []
|
75
|
+
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options:
|
78
|
+
- --line-numbers
|
79
|
+
- --inline-source
|
80
|
+
- --title
|
81
|
+
- Iso_codes
|
82
|
+
- --main
|
83
|
+
- README
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: "0"
|
91
|
+
version:
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: "1.2"
|
97
|
+
version:
|
98
|
+
requirements: []
|
99
|
+
|
100
|
+
rubyforge_project: iso_codes
|
101
|
+
rubygems_version: 1.3.4
|
102
|
+
signing_key:
|
103
|
+
specification_version: 3
|
104
|
+
summary: Gem for finding and listing ISO codes for countries, currencies and languages
|
105
|
+
test_files:
|
106
|
+
- test/country_test.rb
|
107
|
+
- test/currency_test.rb
|
108
|
+
- test/language_test.rb
|
109
|
+
- test/test_helper.rb
|