- # index.coffee

- ¶

      mout = require 'mout/object'

- ¶

  Implements iso 3166-1-alpha-2 lookup

      class Iso31661a2

          constructor: ->

- ¶

  Given an iso country code, returns an english country name

          getCountry: (code) ->
              Iso31661a2::countries[code]

- ¶

  Given an english country name, returns an iso code

          getCode: (country) ->
              ret = null
              if country?
                  ret = Object.keys(Iso31661a2::countries)[idx] if mout.values(Iso31661a2::countries).indexOf(country) != -1
              ret

- ¶

  Returns a list of all english country names

          getCountries: ->
              mout.values Iso31661a2::countries

- ¶

  Returns a list of all iso country codes

          getCodes: ->
              Object.keys(Iso31661a2::countries)

- ¶

  Get the internal list of countries and region codes

          getData: ->
              Iso31661a2::countries

- ¶

  the actual list data

          Iso31661a2::countries =
              AF: "Afghanistan"
              AX: "Åland Islands"
              AL: "Albania"
              DZ: "Algeria"
              AS: "American Samoa"
              AD: "Andorra"
              AO: "Angola"
              AI: "Anguilla"
              AQ: "Antarctica"
              AG: "Antigua and Barbuda"
              AR: "Argentina"
              AM: "Armenia"
              AW: "Aruba"
              AU: "Australia"
              AT: "Austria"
              AZ: "Azerbaijan"
              BS: "Bahamas"
              BH: "Bahrain"
              BD: "Bangladesh"
              BB: "Barbados"
              BY: "Belarus"
              BE: "Belgium"
              BZ: "Belize"
              BJ: "Benin"
              BM: "Bermuda"
              BT: "Bhutan"
              BO: "Bolivia, Plurinational State of"
              BQ: "Bonaire, Sint Eustatius and Saba"
              BA: "Bosnia and Herzegovina"
              BW: "Botswana"
              BV: "Bouvet Island"
              BR: "Brazil"
              IO: "British Indian Ocean Territory"
              BN: "Brunei Darussalam"
              BG: "Bulgaria"
              BF: "Burkina Faso"
              BI: "Burundi"
              KH: "Cambodia"
              CM: "Cameroon"
              CA: "Canada"
              CV: "Cape Verde"
              KY: "Cayman Islands"
              CF: "Central African Republic"
              TD: "Chad"
              CL: "Chile"
              CN: "China"
              CX: "Christmas Island"
              CC: "Cocos (Keeling) Islands"
              CO: "Colombia"
              KM: "Comoros"
              CG: "Congo"
              CD: "Congo, the Democratic Republic of the"
              CK: "Cook Islands"
              CR: "Costa Rica"
              CI: "Côte d'Ivoire"
              HR: "Croatia"
              CU: "Cuba"
              CW: "Curaçao"
              CY: "Cyprus"
              CZ: "Czech Republic"
              DK: "Denmark"
              DJ: "Djibouti"
              DM: "Dominica"
              DO: "Dominican Republic"
              EC: "Ecuador"
              EG: "Egypt"
              SV: "El Salvador"
              GQ: "Equatorial Guinea"
              ER: "Eritrea"
              EE: "Estonia"
              ET: "Ethiopia"
              FK: "Falkland Islands (Malvinas)"
              FO: "Faroe Islands"
              FJ: "Fiji"
              FI: "Finland"
              FR: "France"
              GF: "French Guiana"
              PF: "French Polynesia"
              TF: "French Southern Territories"
              GA: "Gabon"
              GM: "Gambia"
              GE: "Georgia"
              DE: "Germany"
              GH: "Ghana"
              GI: "Gibraltar"
              GR: "Greece"
              GL: "Greenland"
              GD: "Grenada"
              GP: "Guadeloupe"
              GU: "Guam"
              GT: "Guatemala"
              GG: "Guernsey"
              GN: "Guinea"
              GW: "Guinea-Bissau"
              GY: "Guyana"
              HT: "Haiti"
              HM: "Heard Island and McDonald Mcdonald Islands"
              VA: "Holy See (Vatican City State)"
              HN: "Honduras"
              HK: "Hong Kong"
              HU: "Hungary"
              IS: "Iceland"
              IN: "India"
              ID: "Indonesia"
              IR: "Iran, Islamic Republic of"
              IQ: "Iraq"
              IE: "Ireland"
              IM: "Isle of Man"
              IL: "Israel"
              IT: "Italy"
              JM: "Jamaica"
              JP: "Japan"
              JE: "Jersey"
              JO: "Jordan"
              KZ: "Kazakhstan"
              KE: "Kenya"
              KI: "Kiribati"
              KP: "Korea, Democratic People's Republic of"
              KR: "Korea, Republic of"
              KW: "Kuwait"
              KG: "Kyrgyzstan"
              LA: "Lao People's Democratic Republic"
              LV: "Latvia"
              LB: "Lebanon"
              LS: "Lesotho"
              LR: "Liberia"
              LY: "Libya"
              LI: "Liechtenstein"
              LT: "Lithuania"
              LU: "Luxembourg"
              MO: "Macao"
              MK: "Macedonia, the Former Yugoslav Republic of"
              MG: "Madagascar"
              MW: "Malawi"
              MY: "Malaysia"
              MV: "Maldives"
              ML: "Mali"
              MT: "Malta"
              MH: "Marshall Islands"
              MQ: "Martinique"
              MR: "Mauritania"
              MU: "Mauritius"
              YT: "Mayotte"
              MX: "Mexico"
              FM: "Micronesia, Federated States of"
              MD: "Moldova, Republic of"
              MC: "Monaco"
              MN: "Mongolia"
              ME: "Montenegro"
              MS: "Montserrat"
              MA: "Morocco"
              MZ: "Mozambique"
              MM: "Myanmar"
              NA: "Namibia"
              NR: "Nauru"
              NP: "Nepal"
              NL: "Netherlands"
              NC: "New Caledonia"
              NZ: "New Zealand"
              NI: "Nicaragua"
              NE: "Niger"
              NG: "Nigeria"
              NU: "Niue"
              NF: "Norfolk Island"
              MP: "Northern Mariana Islands"
              NO: "Norway"
              OM: "Oman"
              PK: "Pakistan"
              PW: "Palau"
              PS: "Palestine, State of"
              PA: "Panama"
              PG: "Papua New Guinea"
              PY: "Paraguay"
              PE: "Peru"
              PH: "Philippines"
              PN: "Pitcairn"
              PL: "Poland"
              PT: "Portugal"
              PR: "Puerto Rico"
              QA: "Qatar"
              RE: "Réunion"
              RO: "Romania"
              RU: "Russian Federation"
              RW: "Rwanda"
              BL: "Saint Barthélemy"
              SH: "Saint Helena, Ascension and Tristan da Cunha"
              KN: "Saint Kitts and Nevis"
              LC: "Saint Lucia"
              MF: "Saint Martin (French part)"
              PM: "Saint Pierre and Miquelon"
              VC: "Saint Vincent and the Grenadines"
              WS: "Samoa"
              SM: "San Marino"
              ST: "Sao Tome and Principe"
              SA: "Saudi Arabia"
              SN: "Senegal"
              RS: "Serbia"
              SC: "Seychelles"
              SL: "Sierra Leone"
              SG: "Singapore"
              SX: "Sint Maarten (Dutch part)"
              SK: "Slovakia"
              SI: "Slovenia"
              SB: "Solomon Islands"
              SO: "Somalia"
              ZA: "South Africa"
              GS: "South Georgia and the South Sandwich Islands"
              SS: "South Sudan"
              ES: "Spain"
              LK: "Sri Lanka"
              SD: "Sudan"
              SR: "Suriname"
              SJ: "Svalbard and Jan Mayen"
              SZ: "Swaziland"
              SE: "Sweden"
              CH: "Switzerland"
              SY: "Syrian Arab Republic"
              TW: "Taiwan, Province of China"
              TJ: "Tajikistan"
              TZ: "Tanzania, United Republic of"
              TH: "Thailand"
              TL: "Timor-Leste"
              TG: "Togo"
              TK: "Tokelau"
              TO: "Tonga"
              TT: "Trinidad and Tobago"
              TN: "Tunisia"
              TR: "Turkey"
              TM: "Turkmenistan"
              TC: "Turks and Caicos Islands"
              TV: "Tuvalu"
              UG: "Uganda"
              UA: "Ukraine"
              AE: "United Arab Emirates"
              GB: "United Kingdom"
              US: "United States"
              UM: "United States Minor Outlying Islands"
              UY: "Uruguay"
              UZ: "Uzbekistan"
              VU: "Vanuatu"
              VE: "Venezuela, Bolivarian Republic of"
              VN: "Viet Nam"
              VG: "Virgin Islands, British"
              VI: "Virgin Islands, U.S."
              WF: "Wallis and Futuna"
              EH: "Western Sahara"
              YE: "Yemen"
              ZM: "Zambia"
              ZW: "Zimbabwe"

      singleton = null

- ¶

  returns a singleton

      module.exports = ->
          singleton ?= new Iso31661a2()