Entradas desde September 2008 ↓

Migraciones y CSV con FasterCSV

En nuestras aplicaciones a veces es necesario cargar en la base de datos gran cantidad de registros que deben estar ahí siempre.

Un buen ejemplo de esto podría ser una lista de países con sus respectivas provincias y ciudades, algo con lo que seguro os encontraréis algún día si no lo habéis hecho ya.

Normalmente, antes de conocer Rails y su filosofía, si me hubiese encontrado esto lo habría importado a la base de datos de forma manual.

Ante esto, he visto que algunos optan por cargar todos esos datos en la misma migración para que esta se ejecute cuando sea necesaria, pero para ello deben jugar con la consola hasta conseguir la cadena de texto con los datos que les interesa y la pegan en la migración para posteriormente procesarlas con por ejemplo un Model.create(:mi => “hash”).

Si necesitas volcar en la DB 1000 registros el resultado del archivo que se encargue de la migración puede ser enorme, no quiero ni imaginarme una maquina modestilla intentando abrir un fichero con miles de registros y encima queriéndolos colorear…

Continue reading →

Youtube-g con Geodata

Youtube-g es una gema de Ruby que permite acceder de forma bastante cómoda a los datos proporcionados por la Api de YouTube.

Aunque esta gema en sí es genial aún le faltan bastantes métodos en comparación con lo que permite la API de YouTube. Pero como software libre que es los demás podemos además de usarla y distribuirla, podemos mejorarla.

Esto siempre se ha podido hacer, pero la verdad es que GitHub casi que anima más a hacerlo, así que yo como otros tantos hice un fork de Youtube-g, le añadí una pequeña funcionalidad, avisé al autor desde el propio GitHub y ya están disponibles los cambios en el proyecto principal.

Los métodos añadidos son sencillos, pero supongo que a alguien le será útil, ahora desde la gema puedes saber si un vídeo de YouTube tiene geodatos y en caso afirmativo permite sacarlos.

Si estáis interesados en la gema recordad bajaros la original, y no los forks a menos que estéis interesados en algo que no se haya implementado aún.

PD: A pesar de lo que dice la Wikipedia de los forks, en GitHub un fork no tiene porque nacer para seguir creciendo por un camino distinto, si no que las mejoras pueden añadirse al proyecto original, supongo que como en todos lados.

PPD:
Git Powa!