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|R' | 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-only 'origin/develop..HEAD' | 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