Valida tu código de Ruby con Rubocop en VS Code

Una de las características más importantes de un buen desarrollador es poder colaborar en equipo, sobre todo cuando las aplicaciones se vuelven extensas y complicadas.

Jorge Escalante
Sep 3, 2018 · 4 min read

Es importante que nuestro código sea fácil de leer no solo por nosotros, sino también por el resto de desarrolladores con los que colaboremos. Con el objetivo de poder revisarlo, agregarle nuevas características y solucionar problemas que no imaginamos.

Existe una gran variedad de buenas prácticas y tecnologías que nos ayudan con la administración de nuestro código. Podemos mencionar desde pruebas unitarias hasta una extensa documentación con diagramas UML. Pero en esta publicación me gustaría hablar del uso de la guía de estilos de Ruby y cómo utilizarla en las aplicaciones que desarrollemos en este lenguaje.

La guía de estilos se caracteriza por ser un recopilado de las mejores prácticas que utilizan los desarrolladores en un entorno real y profesional. Busca que nuestro estilo de programación tenga una misma estructura respecto a otros desarrolladores. Y sea administrado por la comunidad de desarrolladores, en este caso de Ruby.

Utiliza Rubocop para validar tu código

La guía de estilos de Ruby es extensa, soluciona la mayoría de dudas que un desarrollador puede llegar a tener con reglas definidas sobre estructura, sintaxis, clases, manejos de excepciones y muchas secciones más.

Aprenderse todas las reglas es algo complicado, el número es muy grande y cada una tiene variantes dependiendo del contexto. Afortunadamente existen analizadores de código como Rubocop que verifican automáticamente la estructura de nuestro código y el cumplimiento de cada una de las reglas definidas en la guía de estilos.

Rubocop es extremadamente fácil de instalar y como cualquier otra gema la podemos instalar de dos formas: global o local.

# Instalación globalgem install rubocop# Instalación por proyectogem 'rubocop', require: false

Independientemente de la opción que escojamos para la instalación de la gema. Podremos validar nuestro código escrito en Ruby en base a la guía de estilos de la comunidad, con el siguiente comando en la terminal:

# Válida todos los archivos del directorio
rubocop
# Válida solo un archivo
rubocop nombre_archivo.rb

Una vez ejecutado el comando, Rubocop nos ayudará en ver qué reglas estamos cumpliendo y cuáles no. Al finalizar nos imprimirá en pantalla el resultado de su análisis.

# Analizando un archivo con un error de estiloInspecting 1 file
C
Offenses:main.rb:3:6: C: Style/StringLiterals: Prefer single-quoted strings when you don't need string interpolation or special symbols.
puts "Hello world"
^^^^^^^^^^^^^
1 file inspected, 1 offense detected

Una de las características más importantes de Rubocop es la flexibilidad con las reglas que aplica a tu código. A través de un archivo de configuración podemos indicarle que reglas queremos aplicar y cuáles serían los valores aceptados en base a tus habilidades técnicas y las del equipo.

Por defecto Rubocop busca el archivo de configuración en el directorio donde nos encontramos. Este archivo debe llamarse .rubocop.yml pero podemos renombrarlo al nombre que nos sea más útil y adjuntarlo como parámetro en el comando de ejecución.

# Rubocop utilizará mi_guia.yml como su guía de estilos
rubocop -c mi_guia.yml

Facilita la validación de tu código en VS Code y WSL

Puede ser algo tedioso estar ejecutando el comando cada vez que realizamos cambios sobre nuestro código. Visual Studio Code, a través de su sistema de extensiones, nos da la posibilidad de incorporar el análisis de Rubocop en el editor y ver por medio de alertas y cuadros de dialogo las reglas que no estamos cumpliendo.

Para que funcione el análisis de Rubocop necesitarás dos extensiones si estamos utilizando el subsistema de Windows para Linux. La primera es Ruby y nos provee el soporte del lenguaje y opciones para debugging. La segunda es ruby-rubocop que nos ayuda en la ejecución del análisis de Rubocop automáticamente.

Una vez instaladas ambas extensiones nos daremos cuenta que no se ejecuta el análisis de nuestros archivos. El motivo es porque Visual Studio Code se ejecuta desde Windows 10 e instalamos Rubocop desde el subsistema de Windows para Linux, por lo tanto no hay conexión entre ambos sistemas.

Con un pequeño ajuste en el editor y un archivo ejecutable en Windows, podrás habilitar la validación automática en Visual Studio Code.

Iniciemos creando un archivo de extensión .bat en un directorio donde nadie lo elimine y este seguro. El contenido del archivo solamente ejecuta una terminal bash con el comando rubocop, sus parámetros de configuración y utiliza la ubicación de los archivos binarios.

# A mi archivo lo llamare rubocop.bat
@echo off
bash.exe -c "~/.rbenv/shims/rubocop %*"

Por último debemos ir a la sección de ajustes de Visual Studio Code, puedes ir con el atajo (CTRL + ,). En esta sección debemos agregar la siguiente linea donde le indicamos el directorio del archivo .bat que creamos en el paso anterior:

# IMPORTANTE: DEBE SER LA RUTA DONDE SE ENCUENTRA EL ARCHIVO
{
"ruby.rubocop.executePath": "C:\\Users\\TU_USUARIO\\Documents\\VSCode\\"
}

Una vez guardada esta opción debemos reiniciar nuestro editor de texto y abrir un archivo de Ruby para ver si todo esta funcionado. Podrás darte cuenta rompiendo alguna regla de la guía de estilos y guardando el archivo, esto hará que se ejecute Rubocop y lancé el cuadro de dialogo con la información del error.

Rubocop integrado con Visual Studio Code

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade