-
Notifications
You must be signed in to change notification settings - Fork 6
First RUN, Forrest! RUN!
-
MongoDB >= 2.4.0 por asuntos de
$geoIntersects
que usamos para hacer queries de tipo point-in-polygon - Rubbbbbby 2.0 porqué me rehuso a hacer keys tipo string en mis hashes
- Coffeescript >= 1.7.0 porqué JAVASCRIPT
- Y lo que sea que venga en el Gemfile, además de passenger.
¡Pero, Roberto, no mencionaste esto como requisito! Pues no, pero no le deseo a nadie un apache2 mal configurado, ni la lentitud de shotgun :/
Por si las moscas, así está configurado mi vhost de nginx:
server {
listen 80;
server_name representantes.dev;
access_log off;
error_log off;
root /path/to/representantes/public;
passenger_enabled on;
passenger_app_env development;
}
Claro que, si nomás vamos a contribuir con distritos ó representantes, y nomás queremos verificar, siempre se puede correr ruby app.rb
.
Necesitamos las dependencias adecuadas
bundle install
Pa que cualquiera de las madres jale, necesitamos de ahuevo ingestar a mongo las secciones electorales, y se hace así:
cd bin
./distritos
Ahora, en la consola de mongo podríamos ver algo como:
db.distritos.findOne({_id: 'df-9-12'}, {secciones:false})
// { "_id" : "df-9-12", "tipo" : "federal", "entidad" : "9" }
db.secciones.findOne({_id: '9-4581'}, {coords: false})
/* {
"_id" : "9-4581",
"entidad" : 9,
"municipio" : 0,
"idMGN" : 46630,
"seccion" : 4581,
"tipo" : 2
} */
Ahora sí, podemos ingestar a nuestros amiguitos representantes a la db, y esto lo hacemos en corto:
# Primero Senadores, porque son más poquitos y su página se caga MUY SEGUIDO
# TODO: hacer más aguantador a fallas estos asuntos
./crawl senado:comisiones
./crawl senado:actores
# asistencias y votaciones son opcionales, si quieres ver localmente las grafiquitas
./crawl senado:asistencias
./crawl senado:votaciones
# Luego diputados
./crawl diputados:comisiones
./crawl diputados:actores
# idem
./crawl senado:asistencias
./crawl senado:votaciones
# Finalmente, las imágenes de los mismos
./imagenes
Y en mongo veríamos algo tipo:
db.actores.findOne({distrito: 'df-9-12'}, {inasistencias: false, votaciones:false})
/* {
"_id" : ObjectId("535a177d6d6172a974020000"),
"cabecera" : "Cuauhtémoc",
"camara" : "diputados",
"correo" : "jose.munoz@congreso.gob.mx",
"curul" : "K-413",
"distrito" : "df-9-12",
(...)
*/
Para comenzar a hacer tus asuntos, sólo tienes que seguir las instrucciones de bin/camaras/ejemplo.md
Cómo puedes usar sprockets
para compilar al vuelo SASS y Coffeescript, entonces es cosa de que entres a http://representantes.dev y listo.