Skip to content

Commit

Permalink
Tweak es-MX locale data for addresses (#727)
Browse files Browse the repository at this point in the history
* Upcase Address#building_number S/N and remove duplicated entries in es-MX.yml

* Add countries and country abbreviations for es-MX locale

* Allow for empty collections without failing

e.g.

```yml
---
es-MX:
  faker:
    address:
      city_prefix: []
```

```ruby
Faker::Addess.city_prefix
```

* Add option to suffix city with state for es-MX

* Add address.time_zone to es-MX locale

* Add several secondary_address options to es-MX locale

Uses bothify method to allow for interior/apartment numbers using letters and
numbers e.g. A1
  • Loading branch information
joiggama authored and stympy committed Dec 17, 2016
1 parent 16891ac commit 4f34ec6
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 13 deletions.
2 changes: 1 addition & 1 deletion lib/faker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def regexify(re)
def fetch(key)
fetched = translate("faker.#{key}")
fetched = fetched.sample if fetched.respond_to?(:sample)
if fetched.match(/^\//) and fetched.match(/\/$/) # A regex
if fetched && fetched.match(/^\//) and fetched.match(/\/$/) # A regex
regexify(fetched)
else
fetched
Expand Down
6 changes: 3 additions & 3 deletions lib/faker/address.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ class Address < Base
flexible :address

class << self
def city
parse('address.city')
def city(options = {})
parse(options[:with_state] ? 'address.city_with_state' : 'address.city')
end

def street_name
Expand All @@ -16,7 +16,7 @@ def street_address(include_secondary = false)
end

def secondary_address
numerify(fetch('address.secondary_address'))
bothify(fetch('address.secondary_address'))
end

def building_number
Expand Down
17 changes: 12 additions & 5 deletions lib/locales/es-MX.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,27 @@
es-MX:
faker:
address:
city_prefix: [Ecatepec, Guadalajara, Puebla, Juárez, Tijuana, León, Zapopan, Monterrey, Nezahualcóyotl, Chihuahua, Naucalpan, Mérida, San Luis Potosí, Aguascalientes, Hermosillo, Saltillo, Mexicali, Culiacán, Guadalupe, Acapulco, Tlalnepantla, Cancún, Querétaro, Chimalhuacán, Torreón, Morelia, Reynosa, Tlaquepaque, Tuxtla, Durango, Toluca, Apodaca, Matamoros, San Nicolás de los Garza, Veracruz, Xalapa, Tonalá, Mazatlán, Irapuato, Nuevo Laredo, Xico, Villahermosa, General Escobedo, Celaya, Cuernavaca, Tepic, Ixtapaluca]
building_number: ['s/n.', '#', '##', '#', '##']
city_prefix: []
city_suffix: []
country: [Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Antártida, Arabia Saudita, Argelia, Argentina, Armenia, Aruba, Australia, Austria, Autoridad Nacional Palestina, Azerbaiyán, Bahamas, Bangladés, Barbados, Baréin, Belice, Benín, Bermudas, Bielorrusia, Birmania, Bolivia, Bonaire, San Eustaquio y Saba, Bosnia y Herzegovina, Botsuana, Brasil, Brunéi, Bulgaria, Burkina Faso, Burundi, Bután, Bélgica, Cabo Verde, Camboya, Camerún, Canadá, Chad, Chile, China, Chipre, Ciudad del Vaticano, Colombia, Comoras, Corea del Norte, Corea del Sur, Costa Rica, Costa de Marfil, Croacia, Cuba, Curaçao, Dinamarca, Dominica, Ecuador, Egipto, El Salvador, Emiratos Árabes Unidos, Eritrea, Eslovaquia, Eslovenia, España, Estados Unidos, Estonia, Etiopía, Filipinas, Finlandia, Fiyi, Francia, Gabón, Gambia, Georgia, Ghana, Gibraltar, Granada, Grecia, Groenlandia, Guadalupe, Guam, Guatemala, Guayana Francesa, Guernsey, Guinea, Guinea Ecuatorial, Guinea-Bissau, Guyana, Haití, Honduras, Hong Kong, Hungría, India, Indonesia, Irak, Irlanda, Irán, Isla Bouvet, Isla de Man, Isla de Navidad, Islandia, Islas Caimán, Islas Cocos, Islas Cook, Islas Faroe, Islas Georgias del Sur y Sandwich del Sur, Islas Heard y McDonald, Islas Malvinas, Islas Marianas del Norte, Islas Marshall, Islas Pitcairn, Islas Salomón, Islas Turcas y Caicos, Islas Vírgenes Británicas, Islas Vírgenes de los Estados Unidos, Islas ultramarinas de Estados Unidos, Israel, Italia, Jamaica, Japón, Jersey, Jordania, Kazajistán, Kenia, Kirguistán, Kiribati, Kuwait, Laos, Lesoto, Letonia, Liberia, Libia, Liechtenstein, Lituania, Luxemburgo, Líbano, Macao, Madagascar, Malasia, Malaui, Maldivas, Malta, Malí, Marruecos, Martinica, Mauricio, Mauritania, Mayotte, Micronesia, Moldavia, Mongolia, Montenegro, Montserrat, Mozambique, México, Mónaco, Namibia, Nauru, Nepal, Nicaragua, Nigeria, Niue, Norfolk, Noruega, Nueva Caledonia, Nueva Zelanda, Níger, Omán, Pakistán, Palaos, Panamá, Papúa Nueva Guinea, Paraguay, Países Bajos, Perú, Polinesia Francesa, Polonia, Portugal, Qatar, Reino Unido, Rep. Dem. del Congo, República Centroafricana, República Checa, República Dominicana, República de Macedonia, República del Congo, Reunión, Ruanda, Rumania, Rusia, Samoa, Samoa Estadounidense, San Bartolomé, San Cristóbal y Nieves, San Marino, San Martín, San Martín (parte holandesa), San Pedro y Miquelón, San Vicente y las Granadinas, Santa Helena, A. y T., Santa Lucía, Santo Tomé y Príncipe, Senegal, Serbia, Seychelles, Sierra Leona, Singapur, Siria, Somalia, Sri Lanka, Suazilandia, Sudáfrica, Sudán, Sudán del Sur, Suecia, Suiza, Surinam, Svalbard y Jan Mayen, Sáhara Occidental, Tailandia, Taiwán, Tanzania, Tayikistán, Territorio Británico del Océano Índico, Territorios Australes Franceses, Timor Oriental, Togo, Tokelau, Tonga, Trinidad y Tobago, Turkmenistán, Turquía, Tuvalu, Túnez, Ucrania, Uganda, Uruguay, Uzbekistán, Vanuatu, Venezuela, Vietnam, Wallis y Futuna, Yemen, Yibuti, Zambia, Zimbabue, Åland]
country_code: [AND, ARE, AFG, ATG, AIA, ALB, ARM, AGO, ATA, ARG, ASM, AUT, AUS, ABW, ALA, AZE, BIH, BRB, BGD, BEL, BFA, BGR, BHR, BDI, BEN, BLM, BMU, BRN, BOL, BES, BRA, BHS, BTN, BVT, BWA, BLR, BLZ, CAN, CCK, COD, CAF, COG, CHE, CIV, COK, CHL, CMR, CHN, COL, CRI, CUB, CPV, CUW, CXR, CYP, CZE, DEU, DJI, DNK, DMA, DOM, DZA, ECU, EST, EGY, ESH, ERI, ESP, ETH, FIN, FJI, FLK, FSM, FRO, FRA, GAB, GBR, GRD, GEO, GUF, GGY, GHA, GIB, GRL, GMB, GIN, GLP, GNQ, GRC, SGS, GTM, GUM, GNB, GUY, HKG, HMD, HND, HRV, HTI, HUN, IDN, IRL, ISR, IMN, IND, IOT, IRQ, IRN, ISL, ITA, JEY, JAM, JOR, JPN, KEN, KGZ, KHM, KIR, COM, KNA, PRK, KOR, KWT, CYM, KAZ, LAO, LBN, LCA, LIE, LKA, LBR, LSO, LTU, LUX, LVA, LBY, MAR, MCO, MDA, MNE, MAF, MDG, MHL, MKD, MLI, MMR, MNG, MAC, MNP, MTQ, MRT, MSR, MLT, MUS, MDV, MWI, MEX, MYS, MOZ, NAM, NCL, NER, NFK, NGA, NIC, NLD, NOR, NPL, NRU, NIU, NZL, OMN, PAN, PER, PYF, PNG, PHL, PAK, POL, SPM, PCN, PSE, PRT, PLW, PRY, QAT, REU, ROU, SRB, RUS, RWA, SAU, SLB, SYC, SDN, SWE, SGP, SHN, SVN, SJM, SVK, SLE, SMR, SEN, SOM, SUR, SSD, STP, SLV, SXM, SYR, SWZ, TCA, TCD, ATF, TGO, THA, TJK, TKL, TLS, TKM, TUN, TON, TUR, TTO, TUV, TWN, TZA, UKR, UGA, UMI, USA, URY, UZB, VAT, VCT, VEN, VGB, VIR, VNM, VUT, WLF, WSM, YEM, MYT, ZAF, ZMB, ZWE]
building_number: ['S/N', '#', '##', '###', '####', '#####']
municipality: [Abasolo, Acapulco, Actopan, Acuña, Aguascalientes, Ahome, Ahuacatlán, Ahuacuotzingo, Ahuatlan, Alaquines, Altar, Amatlán de Cañas, Angostura, Apan, Apaseo el Alto, Apizaco, Apodaca, Aporo, Aquila, Armería, Arroyo Seco, Arteaga, Asientos, Atenco, Atenguillo, Atolinga, Atzalan, Ayapango, Azcapotzalco, Bacadehuachi, Bacalar, Bacanora, Badiraguato, Benito Juárez, Brise, Buenaventura, Burgos, Bustamante, Cabo Corrientes, Caborca, Calakmul, Calera, Calnali, Calvillo, Camargo, Campeche, Canatlán, Cancún, Candelaria, Cantamayec, Carbo, Carmen, Catorce, Celaya, Centla, Centro, Cerritos, Chalchihuites, Champotón, Chanal, Chapulhuacán, Chapultepec, Chavinda, Chiautempan, Chichiquila, Chicoasen, Chietla, Chihuahua, Chimalhuacán, Choix, Citlaltepetl, Ciudad Madero, Ciudad Valles, Coatzacoalcos, Cocula, Colima, Comala, Comondú, Comonfort, Compostela, Copainala, Copalillo, Copanatoyac, Coquimatlán, Coronango, Cosio, Coyame del Sotol, Coyoacán, Cozumel, Cualac, Cuatro Ciénegas, Cuauhtémoc, Cucurpe, Cuencame, Cuernavaca, Culiacán, Cunduacán, Cárdenas, Doctor Mora, Durango, Dzidzantun, Ecatepec, El Fuerte, El Llano, El Mante, El Marqués, El Naranjo, El Salvador, Emiliano Zapata, Ensenada, Epazoyucan, Epitacio Huerta, Erongaricuaro, Escarcega, Esperanza, Ezequiel Montes, Galeana, Genaro Codina, General Escobedo, González, Gral. Zaragoza, Guachochi, Guadalajara, Guadalupe, Guanacevi, Guerrero, Gómez Palacio, Hecelchakan, Hermosillo, Hocaba, Hopelchen, Huajicori, Hualahuises, Huanimaro, Huayacocotla, Huejucar, Hueyotlipan, Huimilpan, Huixquilucan, Hunucma, Iliatenco, Inde, Irapuato, Irimbo, Isla Mujeres, Ixil, Ixtapaluca, Ixtlahuacán, Ixtlan de Juárez, Ixtlán del Río, Iztacalco, Jalpa de Méndez, Jalpan de Serra, Jamapa, Jesús María, Jiutepec, Jonuta, Juárez, Kaua, La Huerta, La Independencia, La Paz, La Yesca, Las Margaritas, Lazaro Cárdenas, Lerdo, León, Lolotla, Loreto, Los Cabos, Luvianos, López, Magdalena, Manzanillo, Marin, Matamoros, Matehuala, Mazapil, Mazatepec, Mazatlan, Mazatlán, Mecatlan, Melchor Ocampo, Metepec, Metztitlán, Mexicali, Mezquital, Mier y Noriega, Miguel Hidalgo, Milpa Alta, Minatitlán, Miquihuana, Moctezuma, Monclova, Monte Escobedo, Montemorelos, Monterrey, Morelia, Morelos, Moroleón, Mulege, Méndez, Mérida, Nacajuca, Nadadores, Naucalpan, Naupan, Nava, Navolato, Nazareno Etla, Nazas, Nezahualcóyotl, Nombre de Dios, Nuevo Laredo, Nuevo Zoquiapam, Ocampo, Ojinaga, Othón P. Blanco, Oxkutzcab, Palizada, Panuco, Paracuaro, Patzcuaro, Pedro Escobedo, Penjamo, Pinal de Amoles, Poncitlan, Progreso, Puebla, Puente de Ixtla, Queretaro, Querétaro, Rayones, Reynosa, Rincón de Romos, Romita, Rosario, Salamanca, Salinas Victoria, Saltillo, Salto de Agua, San Blas, San Buenaventura, San Carlos, San Ignacio, San Juan, San Juan del Río, San Lorenzo, San Luis Potosí, San Marcos, San Miguel Yotao, San Nicolas, San Nicolás de los Garza, Santa Catarina, Santiago Nuyoo, Santiago Tenango, Saric, Sinaloa, Singuilucan, Solidaridad, Soteapan, Suchiate, Susticacán, Tacotalpa, Tahdziu, Tamazunchale, Tancanhuitz, Tapachula, Tapilula, Taxco de Alarcón, Teapa, Tecamac, Tecate, Tecomán, Tecuala, Temosachic, Tenabo, Tenango del Aire, Tenosique, Teocaltiche, Tepalcingo, Tepezala, Tepic, Tepoztlan, Tetecala, Tetepango, Tijuana, Tlacuilotepec, Tlalchapa, Tlalnepantla, Tlalpan, Tlaquepaque, Tlayacapan, Tocatlan, Tochimilco, Tocumbo, Tolimán, Toluca, Tonalá, Tonatico, Torreón, Totolac, Tulum, Tuxpan, Tuxtla, Umán, Unión Hidalgo, Uruachi, Valladolid, Vanegas, Veracruz, Villa Victoria, Villa de Álvarez, Villa del Carbón, Villahermosa, Xalapa, Xalisco, Xaloztoc, Xico, Xicohtzinco, Xochihuehuetlán, Xochimilco, Xochistlahuaca, Xochitepec, Yauhquemehcan, Yecapixtla, Yogana, Zacatecas, Zacatepec, Zapopan, Zaragoza, Zongolica, Álvaro Obregón]
street_prefix: [Arroyo, Avenida, Bajada, Barranco, Calle, Camino, Carretera, Conjunto, Entrada, Escalinata, Explanada, Glorieta, Grupo, Huerta, Jardines, Lago, Manzana, Mercado, Monte, Muelle, Parque, Pasaje, Paseo, Plaza, Privada, Prolongación, Quinta, Rampa, Rincón, Salida, Sector, Subida, Vía]
secondary_address: ['Depto. ###', 'Interior ###', 'Piso #']
secondary_address: ['Apartamento ##', 'Departamento ###', 'Depto. ###', 'Interior ###', 'Interior ?#', 'Int. #','Piso #', 'Piso ##', '#ª Planta', 'Planta alta', 'Planta baja']
postcode: ['#####']
state: [Aguascalientes, Baja California, Baja California Sur, Campeche, Coahuila, Colima, Chiapas, Chihuahua, Ciudad de México, Durango, Guanajuato, Guerrero, Hidalgo, Jalisco, México, Michoacán, Morelos, Nayarit, Nuevo León, Oaxaca, Puebla, Querétaro, Quintana Roo, San Luis Potosí, Sinaloa, Sonora, Tabasco, Tamaulipas, Tlaxcala, Veracruz, Yucatán, Zacatecas]
state_abbr: [AGU, BCN, BCS, CAM, CHP, CHH, COA, COL, DIF, DUR, GUA, GRO, HID, JAL, MEX, MIC, MOR, NAY, NLE, OAX, PUE, QUE, ROO, SLP, SIN, SON, TAB, TAM, TLA, VER, YUC, ZAC]
time_zone: [África/Argel, África/Cairo, África/Casablanca, África/Harare, África/Johannesburgo, África/Monrovia, África/Nairobi, América/Argentina/Buenos_Aires, América/Bogotá, América/Caracas, América/Chicago, América/Chihuahua, América/Ciudad_de_México, América/Denver, América/Guatemala, América/Guyana, América/Halifax, América/Indiana/Indianapolis, América/Juneau, América/La_Paz, América/Lima, América/Los_Angeles, América/Mazatlán, América/Monterrey, América/Nueva_York, América/Nuuk, América/Phoenix, América/Regina, América/San_Juan_de_Terranova, América/Santiago, América/São_Paulo, América/Tijuana, Asia/Almatý, Asia/Bagdad, Asia/Bakú, Asia/Bangkok, Asia/Calcuta, Asia/Chongqing, Asia/Colombo, Asia/Daca, Asia/Ekaterimburgo, Asia/Ereván, Asia/Hong_Kong, Asia/Irkutsk, Asia/Jerusalén, Asia/Kabul, Asia/Kamchatka, Asia/Karachi, Asia/Katmandú, Asia/Krasnoyarsk, Asia/Kuala_Lumpur, Asia/Kuwait, Asia/Magadán, Asia/Mascate, Asia/Novosibirsk, Asia/Rangún, Asia/Riad, Asia/Seúl, Asia/Shanghai, Asia/Singapur, Asia/Taipéi, Asia/Taskent, Asia/Teherán, Asia/Tiflis, Asia/Tokio, Asia/Ulán_Bator, Asia/Urumchi, Asia/Vladivostok, Asia/Yakarta, Asia/Yakutsk, Atlantic/Azores, Atlantic/Cabo_Verde, Atlantic/Georgia_Del_Sur, Australia/Adelaida, Australia/Brisbane, Australia/Darwin, Australia/Hobart, Australia/Melbourne, Australia/Perth, Australia/Sydney, Etc/UTC, Europa/Atenas, Europa/Belgrado, Europa/Berlín, Europa/Bratislava, Europa/Bruselas, Europa/Bucarest, Europa/Budapest, Europa/Copenhague, Europa/Dublín, Europa/Estambul, Europa/Estocolmo, Europa/Helsinki, Europa/Kiev, Europa/Lisboa, Europa/Liubliana, Europa/Londres, Europa/Madrid, Europa/Minsk, Europa/Moscú, Europa/Paris, Europa/Praga, Europa/Riga, Europa/Roma, Europa/Sarajevo, Europa/Skopie, Europa/Sofía, Europa/Tallin, Europa/Viena, Europa/Vilna, Europa/Warsaw Europa/Zagreb, Europa/Ámsterdam, Pacífico/Apia, Pacífico/Auckland, Pacífico/Fakaofo, Pacífico/Fiji, Pacífico/Guaján, Pacífico/Honolulú, Pacífico/Islas_Midway, Pacífico/Majuro, Pacífico/Numea, Pacífico/Pago_Pago, Pacífico/Puerto_Moresby, Pacífico/Tongatapu]
city:
- "#{city_prefix}"
- "#{municipality}"
city_with_state:
- "#{municipality}, #{state}"
street_name:
- "#{street_prefix} #{Name.first_name}"
- "#{street_prefix} #{Name.first_name} #{Name.last_name}"
- "#{street_prefix} #{state}"
- "#{street_prefix} #{city_prefix}"
- "#{street_prefix} #{municipality}"
street_address:
- "#{street_name} #{building_number}"
- "#{street_name} #{building_number} #{secondary_address}"
Expand Down
20 changes: 16 additions & 4 deletions test/test_es_mx_locale.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,27 @@ def teardown
Faker::Config.locale = nil
end

def test_es_mx_methods
assert Faker::Address.city_prefix.is_a? String
def test_es_mx_address
assert Faker::Address.street_prefix.is_a? String
assert Faker::Address.secondary_address.is_a? String
assert Faker::Address.state.is_a? String
assert Faker::Address.state_abbr.is_a? String
assert Faker::Address.city.is_a? String
assert Faker::Address.building_number.is_a? String
assert Faker::Address.street_name.is_a? String
assert Faker::Address.street_address.is_a? String
end

def test_es_mx_address_city
assert Faker::Address.city_prefix.nil?
assert Faker::Address.city.is_a?(String)
assert Faker::Address.city(with_state: true).is_a?(String)
assert Faker::Address.city(with_state: true).split(', ').count == 2
end

def test_es_mx_address_secondary
assert Faker::Address.secondary_address.is_a? String
end

def test_es_mx_methods
assert Faker::Company.suffix.is_a? String
assert Faker::Company.prefix.is_a? String
assert Faker::Company.name.is_a? String
Expand All @@ -31,4 +42,5 @@ def test_es_mx_methods
assert Faker::Name.prefix.is_a? String
assert Faker::Name.name.is_a? String
end

end

0 comments on commit 4f34ec6

Please sign in to comment.