Skip to content

Instantly share code, notes, and snippets.

@we4tech
Last active August 29, 2015 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save we4tech/95e143103a349df14684 to your computer and use it in GitHub Desktop.
Save we4tech/95e143103a349df14684 to your computer and use it in GitHub Desktop.
Countries with states
class State
STATES = {
'US' => {
'AL' => 'Alabama',
'AK' => 'Alaska',
'AZ' => 'Arizona',
'AR' => 'Arkansas',
'CA' => 'California',
'CO' => 'Colorado',
'CT' => 'Connecticut',
'DE' => 'Delaware',
'DC' => 'District of Columbia',
'FL' => 'Florida',
'GA' => 'Georgia',
'HI' => 'Hawaii',
'ID' => 'Idaho',
'IL' => 'Illinois',
'IN' => 'Indiana',
'IA' => 'Iowa',
'KS' => 'Kansas',
'KY' => 'Kentucky',
'LA' => 'Louisiana',
'ME' => 'Maine',
'MD' => 'Maryland',
'MA' => 'Massachusetts',
'MI' => 'Michigan',
'MN' => 'Minnesota',
'MS' => 'Mississippi',
'MO' => 'Missouri',
'MT' => 'Montana',
'NE' => 'Nebraska',
'NV' => 'Nevada',
'NH' => 'New Hampshire',
'NJ' => 'New Jersey',
'NM' => 'New Mexico',
'NY' => 'New York',
'NC' => 'North Carolina',
'ND' => 'North Dakota',
'OH' => 'Ohio',
'OK' => 'Oklahoma',
'OR' => 'Oregon',
'PA' => 'Pennsylvania',
'PR' => 'Puerto Rico',
'RI' => 'Rhode Island',
'SC' => 'South Carolina',
'SD' => 'South Dakota',
'TN' => 'Tennessee',
'TX' => 'Texas',
'UT' => 'Utah',
'VT' => 'Vermont',
'VA' => 'Virginia',
'WA' => 'Washington',
'WV' => 'West Virginia',
'WI' => 'Wisconsin',
'WY' => 'Wyoming'
},
'CA' => {
'AB' => 'Alberta',
'BC' => 'British Columbia',
'MB' => 'Manitoba',
'NB' => 'New Brunswick',
'NF' => 'Newfoundland',
'NT' => 'Northwest Territories',
'NS' => 'Nova Scotia',
'NU' => 'Nunavut',
'ON' => 'Ontario',
'PE' => 'Prince Edward Island',
'PQ' => 'Quebec',
'SK' => 'Saskatchewan',
'YT' => 'Yukon'
},
'MX' => {
'AG' => 'Aguascalientes',
'BJ' => 'Baja California',
'BS' => 'Baja California Sur',
'CP' => 'Campeche',
'CH' => 'Chiapas',
'CI' => 'Chihuahua',
'CU' => 'Coahuila de Zaragoza',
'CL' => 'Colima',
'DF' => 'Distrito Federal',
'DG' => 'Durango',
'EM' => 'Estado Mexico',
'GJ' => 'Guanajuato',
'GR' => 'Guerrero',
'HG' => 'Hidalgo', 'JA' => 'Jalisco',
'MX' => 'Mexico', 'MH' => 'Michoacan',
'MR' => 'Morelos', 'NA' => 'Nayarit',
'NL' => 'Nuevo Leon', 'OA' => 'Oaxaca',
'PU' => 'Puebla', 'QA' => 'Queretaro', 'QR' => 'Quintana Roo', 'SL' => 'San Luis Potosi',
'SI' => 'Sinaloa', 'SO' => 'Sonora', 'TA' => 'Tabasco', 'TM' => 'Tamaulipas',
'TL' => 'Tlaxca'
},
'BR' => {
'de' => "State or Province2-digit Co", 'AC' => 'Acre', 'AL' => 'Alagoas', 'AP' => 'Amapa', 'AM' => 'Amazonas', 'BA' => 'Bahia', 'CE' => 'Ceara', 'DF' => 'Distrito Federal', 'ES' => 'Espirito Santo', 'GO' => 'Goias', 'MA' => 'Maranhao', 'MT' => 'Mato Grosso', 'MS' => 'Mato Grosso do Sul', 'MG' => 'Minas Gerais', 'PA' => 'Para', 'PB' => 'Paraiba', 'PR' => 'Parana', 'PE' => 'Pernambuco', 'PI' => 'Piaui', 'RN' => 'Rio Grande do Norte', 'RS' => 'Rio Grande do Sul', 'RJ' => 'Rio de Janeiro', 'RO' => 'Rondonia', 'RR' => 'Roraima', 'SC' => 'Santa Catarina', 'SP' => 'Sao Paulo', 'SE' => 'Sergipe', 'TO' => 'Tocantins'
},
'AU' => {
'CT' => 'Australian Capital Territory', 'NS' => 'New South Wales', 'NT' => 'Northern Territory', 'QL' => 'Queensland', 'SA' => 'South Australia', 'TS' => 'Tasmania', 'VI' => 'Victoria', 'WA' => 'Western Australia'
}
}
class << self
def state?(country_code)
STATES.include?(country_code.upcase)
end
def states(country_code)
STATES[country_code.upcase] || {}
end
def state_name(country_code, state_code)
(STATES[country_code.upcase] || {})[state_code.upcase]
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment