lifen-ruby-style
Configuration de Rubocop chez Lifen.
Installation
Il suffit d'ajouter dans le Gemfile
:
group :test, :development do
gem 'lifen-ruby-style'
end
Ou dans le .gemspec
s'il s'agit d'une gem :
spec.add_development_dependency 'lifen-ruby-style'
Puis :
$ bundle install
Il faut enfin créer le fichier .rubocop.yml
avec le code suivant :
inherit_gem:
lifen-ruby-style:
- default.yml
Il n'est pas nécessaire d'ajouter Rubocop dans les dépendances de l'application.
Il faut ensuite ajouter un "hook" git en créant le fichier .git/hooks/pre-commit
avec :
#!/bin/bash
git status -s | grep -E 'A|M' | awk '{print $2}' | xargs rubocop --display-cop-names --extra-details --parallel --force-exclusion
Usage
En local
Lancement de Rubocop pour vérifier :
$ bundle exec rubocop
Lancement de Rubocop pour corriger automatiquement :
$ bundle exec rubocop -a
Sur CircleCI
Il suffit d'ajouter dans le flow un job avant les tests (ou en parallèles) avec la commande suivante :
git diff-tree -r --no-commit-id --name-status 'origin/develop..HEAD' | grep -E 'A|M' | awk '{print $2}' | xargs --no-run-if-empty bundle exec rubocop --config .rubocop.yml --force-exclusion --fail-level warn
Evolution des règles
Pour modifier la configuration, le plus simple est de le faire sur un projet en local en modifiant le Gemfile
:
group :development, :test do
gem 'lifen-ruby-style', path: '../lifen-ruby-style'
end
ainsi que le fichier .rubocop.yml
:
inherit_from:
- ../lifen-ruby-style/default.yml