Skip to content

Instantly share code, notes, and snippets.

@postmodern
Created March 20, 2010 00:38
Show Gist options
  • Save postmodern/338364 to your computer and use it in GitHub Desktop.
Save postmodern/338364 to your computer and use it in GitHub Desktop.
A DataMapper model for representing Countries.
require 'dm-core'
require 'dm-validations'
require 'dm-predefined'
class Country
include DataMapper::Resource
include DataMapper::Migrations
include DataMapper::Predefined
# The primary key of the Country
property :id, Serial
# The name of the Country
property :name, String, :required => true, :unique => true
# The ISO 3166-1993 Country Code
property :code, String, :length => 2, :unique => true
predefine :PA, :name => "Panama", :code => "PA"
predefine :TV, :name => "Tuvalu", :code => "TV"
predefine :BO, :name => "Bolivia", :code => "BO"
predefine :NU, :name => "Niue", :code => "NU"
predefine :AD, :name => "Andorra", :code => "AD"
predefine :LB, :name => "Lebanon", :code => "LB"
predefine :YU, :name => "Yugoslavia", :code => "YU"
predefine :MW, :name => "Malawi", :code => "MW"
predefine :PT, :name => "Portugal", :code => "PT"
predefine :MH, :name => "Marshall Islands", :code => "MH"
predefine :BR, :name => "Brazil", :code => "BR"
predefine :ET, :name => "Ethiopia", :code => "ET"
predefine :TW, :name => "Taiwan", :code => "TW"
predefine :BD, :name => "Bangladesh", :code => "BD"
predefine :FK, :name => "Malvinas", :code => "FK"
predefine :DO, :name => "Dominican Republic", :code => "DO"
predefine :HN, :name => "Honduras", :code => "HN"
predefine :BE, :name => "Belgium", :code => "BE"
predefine :AM, :name => "Armenia", :code => "AM"
predefine :PW, :name => "Palau", :code => "PW"
predefine :KH, :name => "Cambodia", :code => "KH"
predefine :BS, :name => "Bahama", :code => "BS"
predefine :AN, :name => "Netherlands Antilles", :code => "AN"
predefine :CN, :name => "China", :code => "CN"
predefine :LY, :name => "Libyan Arab Jamahiriya", :code => "LY"
predefine :PR, :name => "Puerto Rico", :code => "PR"
predefine :EG, :name => "Egypt", :code => "EG"
predefine :BU, :name => "Burma", :code => "BU"
predefine :LT, :name => "Lithuania", :code => "LT"
predefine :BJ, :name => "Benin", :code => "BJ"
predefine :MP, :name => "Northern Mariana Islands", :code => "MP"
predefine :GE, :name => "Georgia", :code => "GE"
predefine :OM, :name => "Oman", :code => "OM"
predefine :AZ, :name => "Azerbaijan", :code => "AZ"
predefine :CI, :name => "Ivory Coast", :code => "CI"
predefine :VA, :name => "Vatican City State", :code => "VA"
predefine :AS, :name => "American Samoa", :code => "AS"
predefine :ST, :name => "Sao Tome", :code => "ST"
predefine :DJ, :name => "Djibouti", :code => "DJ"
predefine :KI, :name => "Kiribati", :code => "KI"
predefine :SY, :name => "Syrian Arab Republic", :code => "SY"
predefine :KN, :name => "St Kittsand Nevis", :code => "KN"
predefine :GB, :name => "Great Britain", :code => "GB"
predefine :LI, :name => "Liechtenstein", :code => "LI"
predefine :VE, :name => "Venezuela", :code => "VE"
predefine :NF, :name => "Norfolk Island", :code => "NF"
predefine :LR, :name => "Liberia", :code => "LR"
predefine :NP, :name => "Nepal", :code => "NP"
predefine :SN, :name => "Senegal", :code => "SN"
predefine :IE, :name => "Ireland", :code => "IE"
predefine :IR, :name => "Islamic Republic of Iran", :code => "IR"
predefine :SA, :name => "Saudi Arabia", :code => "SA"
predefine :MM, :name => "Myanmar", :code => "MM"
predefine :FO, :name => "Faroe Islands", :code => "FO"
predefine :SL, :name => "Sierra Leone", :code => "SL"
predefine :MD, :name => "Moldova", :code => "MD"
predefine :HT, :name => "Haiti", :code => "HT"
predefine :RE, :name => "Reunion", :code => "RE"
predefine :NI, :name => "Nicaragua", :code => "NI"
predefine :ZW, :name => "Zimbabwe", :code => "ZW"
predefine :NL, :name => "Netherlands", :code => "NL"
predefine :GH, :name => "Ghana", :code => "GH"
predefine :CC, :name => "Cocos Islands", :code => "CC"
predefine :SZ, :name => "Swaziland", :code => "SZ"
predefine :EE, :name => "Estonia", :code => "EE"
predefine :LS, :name => "Lesotho", :code => "LS"
predefine :RW, :name => "Rwanda", :code => "RW"
predefine :NA, :name => "Namibia", :code => "NA"
predefine :IQ, :name => "Iraq", :code => "IQ"
predefine :KM, :name => "Comoros", :code => "KM"
predefine :CX, :name => "Christmas Island", :code => "CX"
predefine :RO, :name => "Romania", :code => "RO"
predefine :SJ, :name => "Svalbard Jan Mayen Islands", :code => "SJ"
predefine :GD, :name => "Grenada", :code => "GD"
predefine :BZ, :name => "Belize", :code => "BZ"
predefine :GN, :name => "Guinea", :code => "GN"
predefine :VU, :name => "Vanuatu", :code => "VU"
predefine :ZM, :name => "Zambia", :code => "ZM"
predefine :PN, :name => "Pitcairn", :code => "PN"
predefine :CL, :name => "Chile", :code => "CL"
predefine :AO, :name => "Angola", :code => "AO"
predefine :MZ, :name => "Mozambique", :code => "MZ"
predefine :TC, :name => "Turks Caicos Islands", :code => "TC"
predefine :YE, :name => "Yemen", :code => "YE"
predefine :CF, :name => "Central African Republic", :code => "CF"
predefine :TJ, :name => "Tajikistan", :code => "TJ"
predefine :AU, :name => "Australia", :code => "AU"
predefine :DM, :name => "Dominica", :code => "DM"
predefine :ES, :name => "Spain", :code => "ES"
predefine :PH, :name => "Philippines", :code => "PH"
predefine :CM, :name => "Cameroon", :code => "CM"
predefine :TP, :name => "East Timor", :code => "TP"
predefine :TF, :name => "French Southern Territories", :code => "TF"
predefine :NE, :name => "Niger", :code => "NE"
predefine :WS, :name => "Samoa", :code => "WS"
predefine :MA, :name => "Morocco", :code => "MA"
predefine :SK, :name => "Slovakia", :code => "SK"
predefine :RU, :name => "Russian Federation", :code => "RU"
predefine :CK, :name => "Cook Iislands", :code => "CK"
predefine :KE, :name => "Kenya", :code => "KE"
predefine :TO, :name => "Tonga", :code => "TO"
predefine :BF, :name => "Burkina Faso", :code => "BF"
predefine :MS, :name => "Monserrat", :code => "MS"
predefine :IT, :name => "Italy", :code => "IT"
predefine :NR, :name => "Nauru", :code => "NR"
predefine :GF, :name => "French Guiana", :code => "GF"
predefine :UG, :name => "Uganda", :code => "UG"
predefine :MU, :name => "Mauritius", :code => "MU"
predefine :GM, :name => "Gambia", :code => "GM"
predefine :KZ, :name => "Kazakhstan", :code => "KZ"
predefine :JP, :name => "Japan", :code => "JP"
predefine :BB, :name => "Barbados", :code => "BB"
predefine :GY, :name => "Guyana", :code => "GY"
predefine :CZ, :name => "Czech Republic", :code => "CZ"
predefine :UA, :name => "Ukraine", :code => "UA"
predefine :BI, :name => "Burundi", :code => "BI"
predefine :GT, :name => "Guatemala", :code => "GT"
predefine :SE, :name => "Sweden", :code => "SE"
predefine :LA, :name => "Lao", :code => "LA"
predefine :BV, :name => "Bouvet Island", :code => "BV"
predefine :IL, :name => "Israel", :code => "IL"
predefine :AL, :name => "Albania", :code => "AL"
predefine :WF, :name => "Wallis Futuna Islands", :code => "WF"
predefine :AR, :name => "Argentina", :code => "AR"
predefine :GS, :name => "South Georgia and the South Sandwich Islands", :code => "GS"
predefine :JM, :name => "Jamaica", :code => "JM"
predefine :LU, :name => "Luxembourg", :code => "LU"
predefine :PF, :name => "French Polynesia", :code => "PF"
predefine :PK, :name => "Pakistan", :code => "PK"
predefine :IO, :name => "British Indian Ocean Territory", :code => "IO"
predefine :CG, :name => "Congo", :code => "CG"
predefine :BY, :name => "Belarus", :code => "BY"
predefine :TH, :name => "Thailand", :code => "TH"
predefine :BN, :name => "Brunei Darussalam", :code => "BN"
predefine :IS, :name => "Iceland", :code => "IS"
predefine :DK, :name => "Denmark", :code => "DK"
predefine :FI, :name => "Finland", :code => "FI"
predefine :AG, :name => "Antigua Barbuda", :code => "AG"
predefine :GU, :name => "Guam", :code => "GU"
predefine :KG, :name => "Kyrgyzstan", :code => "KG"
predefine :TM, :name => "Turkmenistan", :code => "TM"
predefine :ZR, :name => "Zaire", :code => "ZR"
predefine :EH, :name => "Western Sahara", :code => "EH"
predefine :PM, :name => "St Pierre Miquelon", :code => "PM"
predefine :QA, :name => "Qatar", :code => "QA"
predefine :GR, :name => "Greece", :code => "GR"
predefine :MC, :name => "Monaco", :code => "MC"
predefine :GQ, :name => "Equatorial Guinea", :code => "GQ"
predefine :NG, :name => "Nigeria", :code => "NG"
predefine :SH, :name => "St Helena", :code => "SH"
predefine :PG, :name => "Papua New Guinea", :code => "PG"
predefine :AI, :name => "Anguilla", :code => "AI"
predefine :CH, :name => "Switzerland", :code => "CH"
predefine :MY, :name => "Malaysia", :code => "MY"
predefine :ZZ, :name => "Unknownorunspecifiedcountry", :code => "ZZ"
predefine :SV, :name => "El Salvador", :code => "SV"
predefine :BH, :name => "Bahrain", :code => "BH"
predefine :TT, :name => "Trinidad Tobago", :code => "TT"
predefine :TK, :name => "Tokelau", :code => "TK"
predefine :KR, :name => "Korea", :code => "KR"
predefine :FX, :name => "France Metropolitan", :code => "FX"
predefine :BG, :name => "Bulgaria", :code => "BG"
predefine :UY, :name => "Uruguay", :code => "UY"
predefine :CS, :name => "Czechoslovakia", :code => "CS"
predefine :MN, :name => "Mongolia", :code => "MN"
predefine :MX, :name => "Mexico", :code => "MX"
predefine :MR, :name => "Mauritania", :code => "MR"
predefine :PE, :name => "Peru", :code => "PE"
predefine :CV, :name => "Cape Verde", :code => "CV"
predefine :VN, :name => "Viet Nam", :code => "VN"
predefine :BM, :name => "Bermuda", :code => "BM"
predefine :KW, :name => "Kuwait", :code => "KW"
predefine :FM, :name => "Micronesia", :code => "FM"
predefine :MQ, :name => "Martinique", :code => "MQ"
predefine :AQ, :name => "Antarctica", :code => "AQ"
predefine :LK, :name => "Sri Lanka", :code => "LK"
predefine :AT, :name => "Austria", :code => "AT"
predefine :ML, :name => "Mali", :code => "ML"
predefine :TN, :name => "Tunisia", :code => "TN"
predefine :JO, :name => "Jordan", :code => "JO"
predefine :PY, :name => "Paraguay", :code => "PY"
predefine :TD, :name => "Chad", :code => "TD"
predefine :IN, :name => "India", :code => "IN"
predefine :VG, :name => "British Virgin Islands", :code => "VG"
predefine :MV, :name => "Maldives", :code => "MV"
predefine :MT, :name => "Malta", :code => "MT"
predefine :NC, :name => "New Caledonia", :code => "NC"
predefine :YT, :name => "Mayotte", :code => "YT"
predefine :UM, :name => "United States Minor Outlying Islands", :code => "UM"
predefine :BW, :name => "Botswana", :code => "BW"
predefine :NO, :name => "Norway", :code => "NO"
predefine :ER, :name => "Eritrea", :code => "ER"
predefine :ID, :name => "Indonesia", :code => "ID"
predefine :US, :name => "United States of America", :code => "US"
predefine :HK, :name => "Hong Kong", :code => "HK"
predefine :ZA, :name => "South Africa", :code => "ZA"
predefine :GW, :name => "Guinea Bissau", :code => "GW"
predefine :FJ, :name => "Fiji", :code => "FJ"
predefine :HR, :name => "Croatia", :code => "HR"
predefine :CA, :name => "Canada", :code => "CA"
predefine :SR, :name => "Suriname", :code => "SR"
predefine :GP, :name => "Guadeloupe", :code => "GP"
predefine :UZ, :name => "Uzbekistan", :code => "UZ"
predefine :DE, :name => "Germany", :code => "DE"
predefine :MG, :name => "Madagascar", :code => "MG"
predefine :HU, :name => "Hungary", :code => "HU"
predefine :SI, :name => "Slovenia", :code => "SI"
predefine :TG, :name => "Togo", :code => "TG"
predefine :CY, :name => "Cyprus", :code => "CY"
predefine :CR, :name => "Costa Rica", :code => "CR"
predefine :VI, :name => "United States Virgin Islands", :code => "VI"
predefine :GL, :name => "Greenland", :code => "GL"
predefine :CO, :name => "Colombia", :code => "CO"
predefine :SG, :name => "Singapore", :code => "SG"
predefine :SO, :name => "Somalia", :code => "SO"
predefine :LC, :name => "Saint Lucia", :code => "LC"
predefine :CU, :name => "Cuba", :code => "CU"
predefine :DZ, :name => "Algeria", :code => "DZ"
predefine :SM, :name => "San Marino", :code => "SM"
predefine :TZ, :name => "Tanzania", :code => "TZ"
predefine :GA, :name => "Gabon", :code => "GA"
predefine :GI, :name => "Gibraltar", :code => "GI"
predefine :EC, :name => "Ecuador", :code => "EC"
predefine :BA, :name => "Bosniaand Herzegovina", :code => "BA"
predefine :AF, :name => "Afghanistan", :code => "AF"
predefine :HM, :name => "Heard Mc Donald Islands", :code => "HM"
predefine :LV, :name => "Latvia", :code => "LV"
predefine :NZ, :name => "New Zealand", :code => "NZ"
predefine :FR, :name => "France", :code => "FR"
predefine :AW, :name => "Aruba", :code => "AW"
predefine :KY, :name => "Cayman Islands", :code => "KY"
predefine :AE, :name => "United Arab Emirates", :code => "AE"
predefine :MO, :name => "Macau", :code => "MO"
predefine :TR, :name => "Turkey", :code => "TR"
predefine :PL, :name => "Poland", :code => "PL"
predefine :SB, :name => "Solomon Islands", :code => "SB"
predefine :SD, :name => "Sudan", :code => "SD"
predefine :NT, :name => "Neutral Zone", :code => "NT"
predefine :VC, :name => "St Vincent Grenadines", :code => "VC"
predefine :BT, :name => "Bhutan", :code => "BT"
predefine :SC, :name => "Seychelles", :code => "SC"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment