Garantizando consistencia en el estilo de código Ruby con Rubocop

En todo proyecto de software es importante mantener consistencia en el código, muchas veces hay diferentes formas de hacer las cosas a nivel de sintaxis (en Ruby especialmente), por ejemplo se pueden usar { } para bloques de código o Do End por eso es importante definir un standard a usar y para eso hay herramientas como Rubocop que nos ayudan a verificar esto.

Para usarlo basta con instalar la gema:

1
$ gem install rubocop

También la podemos requerir en nuestro ‘Gemfile’

1
gem ‘rubocop’, require: false

Luego de esto, dentro de un proyecto podemos ejecutar el comando:

1
$ rubocop

El cual nos dará warnings de las validaciones standard que trae la gema, cabe destacar que hay algunas cosas que la herramienta puede corregir automáticamente pasando el argumento ‘-a’ al ejecutarla:

1
$ rubocop -a

Esto corrige indentación y otras cosas automáticamente, podemos ver la configuración por defecto que trae la gema en el archivo default.yml

En el caso de Rails la gema no hace revisiones específicas para esto menos que se le indique con el parámetro -R el cual podemos combinar con el parámetro -a para hacer los fixes automáticos que sean posibles.

1
$ rubocop -Ra

También podemos establecer nuestra propia configuración, creando un archivo ‘.rubocop.yml’ y especificando nuestras opciones como este ejemplo:

1
2
3
4
5
6
7
8
9
10
AllCops:
RunRailsCops: true
Exclude:
- ‘db/**/*’
- ‘config/**/*’
- ‘script/**/*’
- !ruby/regexp /old_and_unused\.rb$/
- ‘Guardfile’
Metrics/LineLength:
Max: 99

Una buena práctica es poner la ejecución de esta revisión en hook de Git para garantizar que se suba código que cumpla con las revisiones de Rubocop

Hasta la próxima.

avatar

Blog neyDroid

Desarrollando Vagancias