En la parte 1 (Aventuras sobre rieles – Parte 1) preparamos el sistema para trabajar con ruby y con rails, y además creamos el proyecto blog. Esto nos creo la carpeta del proyecto y dentro muchísimos archivos, carpetas y subcarpetas. El objetivo de este artículo es entender que es lo que tenemos como base antes de comenzar a trabajar.
/app
Contiene el código principal de la aplicación: controladores, modelos, vistas, helpers, mailers, canales, jobs y assets. La mayor parte del desarrollo se centra en esta carpeta.
/bin
Contiene el script rails que inicia la aplicación. Además puede contener otros scripts para setup, deploy y ejecución de la aplicación.
/config
Archivos de configuración para rutas de la aplicación, bases de datos, etc.
/db
Contiene archivos de esquema y migraciones para la base de datos.
/lib
Contiene módulos para extender la funcionalidad de la aplicación.
/log
Archivos de registro de la aplicación.
/node_modules
Módulos de nodejs.
/public
Es la única carpeta expuesta de la aplicación. Contiene archivos estáticos y assets compilados.
/storage
Archivos de Active Storage para servicios de almacenamiento en la nube.
/test
/tmp
Archivos temporales como cache o pid.
/vendor
Un lugar para código de terceros.
/
En la raíz del proyecto hay varios archivos:
- .browserslistrc: se utiliza para indicar los browser soportados por la aplicación.
- .gitignore: indica los archivos o carpetas que quedarán fuera del control de versiones, típicamente porque son archivos temporales o generados por la aplicación.
- .ruby-gemset: si utlizamos rvm nos sirve para indicar el gemset utilizado en el proyecto
- .ruby-version: si utilizamos rvm nos sirve para indicar la versión de ruby utilizada en el proyecto
- babel.config.js: Babel es un proyecto que permite utilizar las nuevas funcionalidades de javascript hoy mismo, a la vez que convierte el código en su contrapartida compatible con todos los navegadores. Este es el archivo de configuración de Babel.
- config.ru: Archivo de configuración para Rack.
- Gemfile / Gemfile.lock: Indica las dependencias requeridas por la aplicación para funcionar. Estos archivos son utilizados por Bundler.
- package.json: Indica las dependencias de npm que son requeridas por la aplicación. Es utilizado por Yarn.
- postcss.config.js: Archivo de configuración de webpack.
- Rakefile: Este archivo localiza y carga tareas que pueden ser ejecutadas desde la línea de comandos. Las definiciones de esas tareas se encuentran en componentes de Rails. Las tareas propias se agregan vía archivos en /lib/tasks.
- README.md: Documentación de la aplicación.
- yarn.lock: Archivo generado por yarn que asegura que al desplegar la aplicación se instalarán las mismas versiones de todos los módulos de terceros.
Y esto concluye la descripción del contenido del proyecto. En el próximo artículo comenzaremos a modificarlo… aún no salimos de la estación!