# Utilitarios
### Configuraciones Visual Studio Code
Configuracions de Visual Studio para no crear cambios en el código que no lo son, cuando se tabula.
> Dentro de Visual Studiuo Preferences -> Settings -> Search Setting -> `tab` -> Tab Size = 2
`Editor: Tab Size anotar => 2`
>Dentro de Visual Studio Preferences -> Settings -> Search Setting -> `emmet` -> Edit in setting.son
Incluir y después guardar:
```json=
"emmet.includeLanguages": { "erb": "html", "ruby": "html"}
```
### Plugins de ayuda
Dentro de Visual Studio Preferences -> Extensions
1. `Ruby` by Pen Lv: Sintaxis .erb de los html.erb
2. `endwise` by Kai Wood: Agregar end al final de un método de manera automática
3. `Ruby Solargraph` autompletar con respecto a una clase.
Opcionales
1. `Docker` by Microsoft: Para interactuar con docker desde VS.
2. `MongoDB for VS`by MongoDB: Interactuar con MongoDB desde VS.
>**Nota:** para facilidad y centralización, se creó la carpeta `.vscode`que contiene las configuraciones a nivel de extensiones y configuraciones. Es una buena práctica recomendad por los creadores de VS Code.
Referencias:
- [Plugins necesario en Rails VS](https://dev.to/vvo/the-three-extensions-you-need-for-rails-in-vs-code-5h7j)
### Actualizaciones de imagen docker
Cuando se actualiza la imagen de Docker para incluir librerías, paquetes, etc. Lo ideal es borrar la imagen y volver a descargarla.
*Pararse sobre la carpeta del proyecto `/../../trainingapp`*
```bash=
#detener el docker
docker stop ${PWD##*/}
```
>**NOTA:** si hay otra instancia de docker que usa la imagen, hay que detenerla
Eliminar la imagen Docker
```bash=
docker rmi tundervirld/ruby-2.6.4:existing-app-rails-mongo-5.2
```
El siguiente paso es volver a levantar la aplicación:
```bash=
#esto descarga nuevamente la imagen Docker y ejecuta la aplicación.
docker run -it --rm -d \
--env-file .env.docker \
-p 2020:3000 \
--network docker-compose-base-server_base-server-network \
-v $(pwd):/myrailsapp \
--name ${PWD##*/} \
tundervirld/ruby-2.6.4:existing-app-rails-mongo-5.2
```
Es probable que se necesite instalar las dependencias de `YARN`, esto por que se excluyo del repositorio en archivo `yarn.lock`, para evitar temas de conflictos y errores dificiles de trackear al levantar la aplicación
```bash=
yarn install
```
Eso es todo, con F5 en navegador, la aplicación debería levantar.