diff --git a/lib/clabe.rb b/lib/clabe.rb index c437ba7..8b317f3 100644 --- a/lib/clabe.rb +++ b/lib/clabe.rb @@ -149,10 +149,10 @@ module Clabe "025" => "San Felipe MX-BCN", "026" => "San Quintin MX-BCN", "027" => "Tecate MX-BCN", - "027" => "Tijuana", + # "027" => "Tijuana", "028" => "La Mesa", - "028" => "Playas de Rosarito MX-BCN", - "028" => "Tijuana", # see first occurrence at 27 + # "028" => "Playas de Rosarito MX-BCN", + # "028" => "Tijuana", # see first occurrence at 27 "040" => "La Paz MX-BCS", "041" => "Cabo San Lucas MX-BCS", "042" => "Ciudad Constitución MX-BCS", @@ -170,10 +170,10 @@ module Clabe "056" => "Palizada MX-CAM", "057" => "Seybaplaya MX-CAM", "060" => "Gómez Palacio", - "060" => "Torreón MX-COA", + # "060" => "Torreón MX-COA", "061" => "Abasolo MX-COA", "062" => "Acuña MX-COA", - "062" => "Ciudad Acuña", + # "062" => "Ciudad Acuña", "063" => "Allende MX-COA", "064" => "Francisco I. Madero MX-COA", "065" => "Frontera MX-COA", @@ -184,7 +184,7 @@ module Clabe "070" => "Muzquiz MX-COA", "071" => "Nava MX-COA", "072" => "Nueva Rosita", - "072" => "Nva Rosita MX-COA", + # "072" => "Nva Rosita MX-COA", "073" => "Palau MX-COA", "074" => "Parras de la Fuente MX-COA", "075" => "Piedras Negras MX-COA", @@ -204,7 +204,7 @@ module Clabe "097" => "Tecomán MX-COL", "098" => "Villa de Alvarez MX-COL", "100" => "Terán", - "100" => "Tuxtla Gutiérrez MX-CHP", + # "100" => "Tuxtla Gutiérrez MX-CHP", "101" => "Acapetahua MX-CHP", "102" => "Angel Albino Corzo MX-CHP", "103" => "Arriaga MX-CHP", @@ -214,7 +214,7 @@ module Clabe "107" => "Cintalapa MX-CHP", "108" => "Ciudad Hidalgo MX-CHP", "109" => "Comitán de Dominguez MX-CHP", - "109" => "Villa Las Rosas", + # "109" => "Villa Las Rosas", "110" => "Copainala MX-CHP", "111" => "Chiapa de Corso MX-CHP", "112" => "Chicomuselo MX-CHP", @@ -244,57 +244,57 @@ module Clabe "136" => "Tuxtla Chico MX-CHP", "137" => "Venustiano Carranza MX-CHP", "138" => "Villa Corzo MX-CHP", - "138" => "Villa Flores", + # "138" => "Villa Flores", "140" => "Yajalón MX-CHP", "150" => "Chihuahua MX-CHH", - "150" => "Ciudad Delicias", + # "150" => "Ciudad Delicias", "151" => "Ahumada MX-CHH", "152" => "Anahuac MX-CHH", - "152" => "Ciudad Anáhuac", + # "152" => "Ciudad Anáhuac", "153" => "Ascension MX-CHH", "154" => "Buenaventura MX-CHH", "155" => "Camargo MX-CHH", - "155" => "Ciudad Camargo", + # "155" => "Ciudad Camargo", "156" => "Casas Grandes MX-CHH", "157" => "Creel MX-CHH", "158" => "Ciudad Cuauhtémoc", - "158" => "Cuauhtemoc MX-CHH", + # "158" => "Cuauhtemoc MX-CHH", "159" => "Gomez Farias MX-CHH", "160" => "Guachochi MX-CHH", "161" => "Ciudad Guerrero", - "161" => "Guerrero MX-CHH", + # "161" => "Guerrero MX-CHH", "162" => "Hidalgo del Parral MX-CHH", - "162" => "Parral", + # "162" => "Parral", "163" => "Ciudad Jiménez MX-CHH", "164" => "Ciudad Juárez MX-CHH", "165" => "Ciudad Madera", - "165" => "Madera MX-CHH", + # "165" => "Madera MX-CHH", "166" => "Meoqui MX-CHH", "167" => "El Molino de Namiquipa", - "167" => "Namiquipa MX-CHH", + # "167" => "Namiquipa MX-CHH", "168" => "Nuevo Casas Grandes", - "168" => "Nvo Casas Grandes MX-CHH", + # "168" => "Nvo Casas Grandes MX-CHH", "169" => "Ojinaga MX-CHH", "170" => "Praxedis G. Guerrero MX-CHH", "171" => "Puerto Palomas MX-CHH", "172" => "Santa Barbara MX-CHH", "173" => "Saucillo MX-CHH", "180" => "Atizapan", - "180" => "Chalco", - "180" => "Ciudad de México MX-CMX", - "180" => "Coacalco", - "180" => "Cuautitlán Izcalli", - "180" => "Ecatepec", - "180" => "Huehuetoca", - "180" => "Huixquilucan", - "180" => "Ixtapaluca", - "180" => "Los Reyes la Paz", - "180" => "Naucalpan", - "180" => "Nezahualcóyotl", - "180" => "Tecamac", - "180" => "Teotihuacán", - "180" => "Texcoco", - "180" => "Tlalnepantla", + # "180" => "Chalco", + # "180" => "Ciudad de México MX-CMX", + # "180" => "Coacalco", + # "180" => "Cuautitlán Izcalli", + # "180" => "Ecatepec", + # "180" => "Huehuetoca", + # "180" => "Huixquilucan", + # "180" => "Ixtapaluca", + # "180" => "Los Reyes la Paz", + # "180" => "Naucalpan", + # "180" => "Nezahualcóyotl", + # "180" => "Tecamac", + # "180" => "Teotihuacán", + # "180" => "Texcoco", + # "180" => "Tlalnepantla", "190" => "Durango MX-DUR", "191" => "Canatlan MX-DUR", "192" => "Cuencame MX-DUR", @@ -336,7 +336,7 @@ module Clabe "235" => "San Diego de la Union MX-GUA", "236" => "San Felipe Progreso MX-GUA", "237" => "Purísima de Bustos", - "237" => "San Francisco del Rincoón MX-GUA", + # "237" => "San Francisco del Rincoón MX-GUA", "238" => "San José Iturbide MX-GUA", "239" => "San Luis de la Paz MX-GUA", "240" => "San Miguel de Allende MX-GUA", @@ -362,10 +362,10 @@ module Clabe "270" => "Chilapa de Alvarez MX-GRO", "271" => "Huitzuco MX-GRO", "272" => "Iguala MX-GRO", - "272" => "La Sabana", + # "272" => "La Sabana", "273" => "Olinala MX-GRO", "274" => "Cuajinicuilapa", - "274" => "Ometepec MX-GRO", + # "274" => "Ometepec MX-GRO", "275" => "San Marcos MX-GRO", "276" => "Taxco de Alarcon MX-GRO", "277" => "Petatlan MX-GRO", @@ -379,7 +379,7 @@ module Clabe "292" => "Apam MX-HID", "293" => "Atotonilco el Grande MX-HID", "294" => "Ciudad Sahagún MX-HID", - "294" => "Teocaltiche", + # "294" => "Teocaltiche", "295" => "Cuautepec de Hinojosa MX-HID", "296" => "Huejutla de Reyes MX-HID", "297" => "Huichapan MX-HID", @@ -401,11 +401,11 @@ module Clabe "313" => "Zacualtipán MX-HID", "314" => "Zimapán MX-HID", "320" => "El Salto MX-JAL", - "320" => "Guadalajara", - "320" => "San Pedro Tlaquepaque", - "320" => "Tlajomulco", - "320" => "Tonala", - "320" => "Zapopan", + # "320" => "Guadalajara", + # "320" => "San Pedro Tlaquepaque", + # "320" => "Tlajomulco", + # "320" => "Tonala", + # "320" => "Zapopan", "321" => "Acatic MX-JAL", "322" => "Acatlan de Juarez MX-JAL", "323" => "Ahualulco de Mercado MX-JAL", @@ -417,11 +417,11 @@ module Clabe "329" => "Atenguillo MX-JAL", "330" => "Atotonilco el Alto MX-JAL", "331" => "Atequiza", - "331" => "Atotonilquillo MX-JAL", + # "331" => "Atotonilquillo MX-JAL", "332" => "Atoyac MX-JAL", "333" => "Autlán de Navarro MX-JAL", "334" => "Ayotlan MX-JAL", - "334" => "Azteca", + # "334" => "Azteca", "335" => "Ayutla MX-JAL", "336" => "Bajio de San Jose MX-JAL", "337" => "Belen del Refugio MX-JAL", @@ -463,9 +463,9 @@ module Clabe "373" => "Pihuamo MX-JAL", "374" => "Poncitlan MX-JAL", "375" => "Las Juntas", - "375" => "Nuevo Vallarta", - "375" => "Pitillal", - "375" => "Puerto Vallarta MX-JAL", + # "375" => "Nuevo Vallarta", + # "375" => "Pitillal", + # "375" => "Puerto Vallarta MX-JAL", "376" => "Purificacion MX-JAL", "377" => "Quitupan MX-JAL", "378" => "San Ignacio Cerro G. MX-JAL", @@ -495,7 +495,7 @@ module Clabe "402" => "Totatiche MX-JAL", "403" => "Tototlán MX-JAL", "404" => "Túxpam", - "404" => "Tuxpan MX-JAL", + # "404" => "Tuxpan MX-JAL", "405" => "Union de San Antonio MX-JAL", "406" => "Union de Tula MX-JAL", "407" => "Valle de Guadalupe MX-JAL", @@ -526,7 +526,7 @@ module Clabe "435" => "Jilotepec MX-MEX", "436" => "Jocotitlan MX-MEX", "437" => "Chimalhuacan MX-MEX", - "437" => "La Paz (Reyes Acaq.) MX-MEX", + # "437" => "La Paz (Reyes Acaq.) MX-MEX", "438" => "Lerma MX-MEX", "439" => "Luvianos MX-MEX", "440" => "Malinalco MX-MEX", @@ -541,10 +541,10 @@ module Clabe "449" => "Temoaya MX-MEX", "450" => "Tenancingo MX-MEX", "451" => "Tenago del Valle", - "451" => "Tenango de Arista MX-MEX", + # "451" => "Tenango de Arista MX-MEX", "452" => "Texcaltitlan MX-MEX", "453" => "Santiago Tiangistenco", - "453" => "Tianguistenco MX-MEX", + # "453" => "Tianguistenco MX-MEX", "454" => "Tonatico MX-MEX", "455" => "Tultepec MX-MEX", "456" => "Tultitlán MX-MEX", @@ -587,7 +587,7 @@ module Clabe "499" => "Maravatío MX-MIC", "500" => "San Jose de Gracia MX-MIC", "501" => "Nueva Italia", - "501" => "Nva Italia de Ruiz MX-MIC", + # "501" => "Nva Italia de Ruiz MX-MIC", "502" => "Pajacuaran MX-MIC", "503" => "Panindicuaro MX-MIC", "504" => "Paracho MX-MIC", @@ -627,7 +627,7 @@ module Clabe "540" => "Cuernavaca MX-MOR", "541" => "Axochiapan MX-MOR", "542" => "Cuautla MX-MOR", - "542" => "Oaxtepec, Morelos", + # "542" => "Oaxtepec, Morelos", "543" => "Jiutepec MX-MOR", "544" => "Jojutla MX-MOR", "545" => "Puente de Ixtla MX-MOR", @@ -657,13 +657,13 @@ module Clabe "576" => "Villa Hidalgo MX-NAY", "577" => "Xalisco MX-NAY", "580" => "Apodaca MX-NLE", - "580" => "Cadereyta", - "580" => "Ciudad Guadalupe", - "580" => "General Escobedo", - "580" => "Monterrey", - "580" => "San Nicolás de los Garza", - "580" => "San Pedro Garza García", - "580" => "Santa Catarina", + # "580" => "Cadereyta", + # "580" => "Ciudad Guadalupe", + # "580" => "General Escobedo", + # "580" => "Monterrey", + # "580" => "San Nicolás de los Garza", + # "580" => "San Pedro Garza García", + # "580" => "Santa Catarina", "581" => "Abasolo MX-NLE", "582" => "Agualeguas MX-NLE", "583" => "Allende MX-NLE", @@ -685,13 +685,13 @@ module Clabe "599" => "Sabinas Hidalgo MX-NLE", "600" => "Salinas Victoria MX-NLE", "601" => "El Cercado", - "601" => "Santiago MX-NLE", - "601" => "Villa de Santiago", + # "601" => "Santiago MX-NLE", + # "601" => "Villa de Santiago", "610" => "Oaxaca MX-OAX", "611" => "Asuncion Nochixtlan MX-OAX", "612" => "Guelatao MX-OAX", "613" => "Heroica Cd de Tlaxiaco MX-OAX", - "613" => "Tlaxiaco", + # "613" => "Tlaxiaco", "614" => "Huajuapan de León MX-OAX", "615" => "Huautla MX-OAX", "616" => "Ixtepec MX-OAX", @@ -706,36 +706,36 @@ module Clabe "625" => "Putla MX-OAX", "626" => "Salina Cruz MX-OAX", "627" => "Lagunas", - "627" => "San Andres Lagunas MX-OAX", + # "627" => "San Andres Lagunas MX-OAX", "628" => "San Juan Bautista T. MX-OAX", - "628" => "Tuxtepec", + # "628" => "Tuxtepec", "629" => "San Pedro Mixtepec MX-OAX", "630" => "Pochutla", - "630" => "San Pedro Pochutla MX-OAX", + # "630" => "San Pedro Pochutla MX-OAX", "631" => "San Pedro Tapanatepec MX-OAX", "632" => "Santa Lucía del Camino MX-OAX", "633" => "Santa Maria del Tule MX-OAX", "634" => "Bahías de Huatulco", - "634" => "Santa Maria Huatulco MX-OAX", + # "634" => "Santa Maria Huatulco MX-OAX", "635" => "Santiago Juxtlahuaca MX-OAX", "636" => "Pinotepa Nacional", - "636" => "Santiago Pinotepa Nal MX-OAX", + # "636" => "Santiago Pinotepa Nal MX-OAX", "637" => "Sto Domingo Tehuantepec MX-OAX", - "637" => "Tehuantepec", + # "637" => "Tehuantepec", "638" => "Tlacolula D Matamoros MX-OAX", "639" => "Villa de Tamazulapam MX-OAX", "640" => "Zimatlán MX-OAX", "650" => "Cholula", - "650" => "Cuautlancingo MX-PUE", - "650" => "La Resurrección", - "650" => "Puebla", - "650" => "San Baltazar Campeche", + # "650" => "Cuautlancingo MX-PUE", + # "650" => "La Resurrección", + # "650" => "Puebla", + # "650" => "San Baltazar Campeche", "651" => "Acatlan MX-PUE", "652" => "Acatzingo MX-PUE", "653" => "Amozoc MX-PUE", "654" => "Atlixco MX-PUE", "655" => "Ciudad Serdan MX-PUE", - "655" => "Los Heroes de Puebla MX-PUE", + # "655" => "Los Heroes de Puebla MX-PUE", "656" => "Cuetzalan MX-PUE", "657" => "Chiautla MX-PUE", "658" => "Chignahuapan MX-PUE", @@ -749,20 +749,20 @@ module Clabe "666" => "Rafael Lara Grajales MX-PUE", "667" => "San Martín Texmelucan MX-PUE", "668" => "San Felipe Hueyotlipan", - "668" => "Sto Tomas Hueyotlipan MX-PUE", + # "668" => "Sto Tomas Hueyotlipan MX-PUE", "669" => "Tecamachalco MX-PUE", "670" => "Tehuacán MX-PUE", "671" => "San Lorenzo", - "671" => "Tepeaca MX-PUE", + # "671" => "Tepeaca MX-PUE", "672" => "Teziutlán MX-PUE", "673" => "Tlatlauquitepec MX-PUE", "674" => "Xicotepec de Juárez MX-PUE", "675" => "Zacapoaxtla MX-PUE", "676" => "Zacatlán MX-PUE", "680" => "El Pueblito Correg. MX-QUE", - "680" => "Pedro Escobedo", - "680" => "Querétaro", - "680" => "Villa Corregidora", + # "680" => "Pedro Escobedo", + # "680" => "Querétaro", + # "680" => "Villa Corregidora", "681" => "Amealco MX-QUE", "682" => "Cadereyta MX-QUE", "683" => "Ezequiel Montes MX-QUE", @@ -771,7 +771,7 @@ module Clabe "686" => "Tequisquiapan MX-QUE", "690" => "Chetumal MX-ROO", "691" => "Cancún MX-ROO", - "691" => "Col. Puerto Juárez", + # "691" => "Col. Puerto Juárez", "692" => "Cozumel MX-ROO", "693" => "Isla Mujeres MX-ROO", "694" => "Playa del Carmen MX-ROO", @@ -812,7 +812,7 @@ module Clabe "741" => "Guasave MX-SIN", "742" => "La Cruz de Elota MX-SIN", "743" => "Los Mochis MX-SIN", - "743" => "Topolobampo", + # "743" => "Topolobampo", "744" => "Mazatlán MX-SIN", "745" => "Mocorito MX-SIN", "746" => "Navolato MX-SIN", @@ -828,11 +828,11 @@ module Clabe "765" => "Caborca MX-SON", "766" => "Cananea MX-SON", "767" => "Ciudad Obregón MX-SON", - "767" => "Esperanza", + # "767" => "Esperanza", "768" => "Cumpas MX-SON", "769" => "Empalme MX-SON", "770" => "Guaymas MX-SON", - "770" => "San Carlos", + # "770" => "San Carlos", "771" => "Huatabampo MX-SON", "772" => "Luis B. Sanchez MX-SON", "773" => "Magdalena de Kino MX-SON", @@ -847,10 +847,10 @@ module Clabe "782" => "Ures MX-SON", "783" => "Villa Juarez (Irrigacion) MX-SON", "790" => "Tamulte", - "790" => "Villa Hermosa MX-TAB", + # "790" => "Villa Hermosa MX-TAB", "791" => "Balancan MX-TAB", "792" => "Cárdenas", - "792" => "Cardenas MX-TAB", + # "792" => "Cardenas MX-TAB", "793" => "Ciudad Pemex MX-TAB", "794" => "Comalcalco MX-TAB", "795" => "Cunduacan MX-TAB", @@ -870,7 +870,7 @@ module Clabe "811" => "Altamira MX-TAM", "812" => "Camargo MX-TAM", "813" => "Ciudad Madero MX-TAM", - "813" => "Tampico", + # "813" => "Tampico", "814" => "Ciudad Mante MX-TAM", "815" => "Ciudad Miguel Aleman MX-TAM", "816" => "Gonzalez MX-TAM", @@ -879,9 +879,9 @@ module Clabe "819" => "Mier MX-TAM", "820" => "Nva Ciudad Guerrero MX-TAM", "821" => "Colombia", - "821" => "Nuevo Laredo MX-TAM", + # "821" => "Nuevo Laredo MX-TAM", "822" => "Hidalgo MX-TAM", - "822" => "Reynosa", + # "822" => "Reynosa", "823" => "Río Bravo MX-TAM", "824" => "San Fernando MX-TAM", "825" => "Soto la Marina MX-TAM", @@ -892,14 +892,14 @@ module Clabe "832" => "Apizaco MX-TLA", "833" => "Calpulalpan MX-TLA", "834" => "Chiautempan MX-TLA", - "834" => "Santa Ana Chiautempan", + # "834" => "Santa Ana Chiautempan", "835" => "Huamantla MX-TLA", "836" => "Papalotla MX-TLA", "837" => "Santa Maria Nativitas MX-TLA", "838" => "Tlaxco MX-TLA", "839" => "Zacatelco MX-TLA", "840" => "Jalapa", - "840" => "Xalapa MX-VER", + # "840" => "Xalapa MX-VER", "841" => "Acayucan MX-VER", "842" => "Adalberto Tejeda MX-VER", "843" => "Agua Dulce MX-VER", @@ -931,11 +931,11 @@ module Clabe "870" => "Jesus Carranza MX-VER", "871" => "Juan Rodríguez Clara MX-VER", "872" => "La Antigua MX-VER", - "872" => "Villa José Cardel", + # "872" => "Villa José Cardel", "873" => "Las Choapas MX-VER", "874" => "Lerdo de Tejada MX-VER", "875" => "Los Naranjos MX-VER", - "875" => "Naranjos", + # "875" => "Naranjos", "876" => "Martínez de la Torre MX-VER", "877" => "Minatitlán MX-VER", "878" => "Misantla MX-VER", @@ -955,7 +955,7 @@ module Clabe "892" => "Soledad de Doblado MX-VER", "893" => "Tamiahua MX-VER", "894" => "Platón Sánchez", - "894" => "Tantoyuca MX-VER", + # "894" => "Tantoyuca MX-VER", "895" => "Tempoal de Sanchez MX-VER", "896" => "Teocelo MX-VER", "897" => "Tezonapa MX-VER", @@ -965,10 +965,10 @@ module Clabe "901" => "Tlapacoyan MX-VER", "902" => "Tres Valles MX-VER", "903" => "Túxpam de Rodríguez Cano", - "903" => "Tuxpan MX-VER", + # "903" => "Tuxpan MX-VER", "904" => "Vega de Alatorre MX-VER", "905" => "Ciudad Industrial Framboyan", - "905" => "Veracruz MX-VER", + # "905" => "Veracruz MX-VER", "906" => "Xico MX-VER", "910" => "Mérida MX-YUC", "911" => "Izamal MX-YUC", @@ -976,7 +976,7 @@ module Clabe "913" => "Motul MX-YUC", "914" => "Oxkutzcab MX-YUC", "915" => "Progreso", - "915" => "Puerto Progreso MX-YUC", + # "915" => "Puerto Progreso MX-YUC", "916" => "Tekax MX-YUC", "917" => "Ticul MX-YUC", "918" => "Tizimín MX-YUC", @@ -1015,10 +1015,10 @@ module Clabe "960" => "Victor Rosales MX-ZAC", "961" => "Villa Gonzalez Ortega MX-ZAC", "962" => "Villanueva MX-ZAC", + "969" => "Cuenta de fondos de pago electrónico", "974" => "Crédito Automotriz", + # "974" => "Crédito personal" "975" => "Tarjeta de Crédito", - "969" => "Cuenta de fondos de pago electrónico", - "974" => "Crédito personal" }.freeze CLABE_WEIGHT_FACTOR_MAP = [3, 7, 1].freeze diff --git a/spec/clabe_spec.rb b/spec/clabe_spec.rb index 2b004fe..69bf370 100644 --- a/spec/clabe_spec.rb +++ b/spec/clabe_spec.rb @@ -6,8 +6,8 @@ { clabe: '00000000000000000a', is_valid: false, bank_tag: nil, city: nil }, { clabe: '002010077777777779', is_valid: false, bank_tag: nil, city: nil }, { clabe: '000000000000000000', is_valid: false, bank_tag: nil, city: nil }, - { clabe: '002114016003269412', is_valid: true, bank_tag: 'BANAMEX', city: 'Huixtla', code: '002' }, - { clabe: '032180000118359719', is_valid: true, bank_tag: 'IXE', city: 'Atizapan, Chalco, Ciudad de México, Coacalco, Cuautitlán, Cuautitlán Izcalli, Ecatepec, Huehuetoca, Huixquilucan, Ixtapaluca, Los Reyes La Paz, Naucalpan, Nezahualcóyotl, Tecamac, Teotihuacán, Texcoco, Tlalnepantla', code: '032' } + { clabe: '002114016003269412', is_valid: true, bank_tag: 'BANAMEX', city: 'Huixtla MX-CHP', code: '002' }, + { clabe: '032180000118359719', is_valid: true, bank_tag: 'IXE', city: 'Atizapan', code: '032' } ] it 'validate' do