GemRailsApp: Fundamentos y Concepto

Podemos decir que los programadores familiarizados con el desarrollo de aplicaciones de escritorio (ya sea en Windows o Linux) y con el proceso de compile/build/release se encontrarán con cierta similitud en esta implementación.

Usando Gems y Rake como herramientas comunes, crear un camino posible para distribuir aplicaciones rails (rails app), simplificando el proceso de actualización mediante la distribución local (archivos .gem) o remota (mediante un gem_server), permitiendo a usuarios no-tan-técnicos realizar el proceso de actualización.

Qué no son estas modificaciones

Esto no es un reemplazo de SwitchTower1, donde el programador tiene completo control del entorno donde se instala y funciona la aplicación. Esto no es Productize your Rails App2, donde el programador extiende su desarrollo (base), creando versiones específicas (sites) para diferentes clientes.

He tomado como inspiración parte del trabajo de Scott Barron de su aplicación EliteJournal.

Conceptos a tener en claro

Para simplificar y evitar repetición, hay que diferenciar dónde se encuentra nuestra aplicación de dónde está almacenada la configuración de la aplicación.

Sabemos que RAILS_ROOT hace refencia al directorio raíz donde el código de nuestra aplicación recide, pero no es donde la configuración de esta será almacenada.

INSTANCE significará de ahora en más, el lugar donde residirán los elementos que sean parte de nuestra aplicación pero que sean propios de cada configuración.

A continuación: hackeo dentro de una aplicación rails



1 SwitchTower, ver también el capítulo en el manual de Rails.

2 Productize your Rails App (rails_product)