# encoding: UTF-8 # A simple module containing all countries as of 2010. # module Sinatra::Country @all = { :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", :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", :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 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 => "Libyan Arab Jamahiriya", :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", :AN => "Netherlands Antilles", :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 => "Palestinian Territory, Occupied", :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", :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", :SK => "Slovakia", :SI => "Slovenia", :SB => "Solomon Islands", :SO => "Somalia", :ZA => "South Africa", :GS => "South Georgia and the South Sandwich Islands", :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", :VA => "Vatican City State", :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" } # @example # # p Country.to_select # [["Afghanistan", "AF"], ["Åland Islands", "AX"], ["Albania", "AL"], # ["Algeria", "DZ"], ["American Samoa", "AS"], ... ["Zimbabwe", "ZW"]] # # @return [Array] a collection of pairs with the first element being # country name and the last element being the code. # # @see Sinatra#country_choices def to_select all.map { |code, name| [name, code.to_s] } end # Retrieves the country name given a country code. # @example # # Sinatra::Country["US"] == "United States" # # => true # # Sinatra::Country[:US] == "United States" # # => true # # @param [#to_sym] code The country code in 2 letter all caps format. # @return [String] The corresponding country name given the code. # @return [nil] nil if no matching country code. def [](code) all[code.to_sym] if not code.to_s.empty? end # For use with seeding dummy data. # @return [Symbol] a randomized country code. def random all.keys.shuffle.first end # Gives all countries in a Hash. # # @return [Hash] the code => name pairs of all countries. def all @all end module_function :all, :to_select, :[], :random end