lifen-ruby-style 0.2.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: effc68d9ce8a6e338df992ce1144e24026ad90ea7bbf0762eb29385fe84f5eee
4
- data.tar.gz: f3ffb929dfdff48ede8b10aacc691446734ff7ee56d43af2e65810f732682500
3
+ metadata.gz: f1f86ee33406608d1b9b2cf8d14d80585a09dcb798a2528c1b06a7205d61bb47
4
+ data.tar.gz: 42914e1c8155e225d5fcedce3d9d14ef8d5116b51df50213cd24f899aca039c8
5
5
  SHA512:
6
- metadata.gz: 43fee525fe66c4b4047773346e13470d5db00421502e5f830945af58a8c8e1b5de83cc991ba3c47ccb888003d0fbd0a38b50770c828312f8ae1619ff3777437c
7
- data.tar.gz: 6f1af839efdfd60fe409f0910822d50051347078b6e2267653a2093822e5d6c5c0aa863f994c0f14c824d7fde30034a75cabc989ccc632f23d5eb6cf366561bb
6
+ metadata.gz: b86279d1645d36567b71689f3f5b634086975cf0be3f0f29436da8ff9171d3739df1017aa21b8f4323ff423dab23410b315cbb12f11008a081fa9e6e31d3dadc
7
+ data.tar.gz: 28df7786610a74fe2b4bdc7534409f857962020002c7bce2271c18dfd10bf717e25ddaf0d4f3bfcf1785d2430f36feb4cf80ed700585ce812180fc2c3943ce4e
data/.overcommit.yml ADDED
@@ -0,0 +1,55 @@
1
+ # Use this file to configure the Overcommit hooks you wish to use. This will
2
+ # extend the default configuration defined in:
3
+ # https://github.com/sds/overcommit/blob/master/config/default.yml
4
+ #
5
+ # At the topmost level of this YAML file is a key representing type of hook
6
+ # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
7
+ # customize each hook, such as whether to only run it on certain files (via
8
+ # `include`), whether to only display output if it fails (via `quiet`), etc.
9
+ #
10
+ # For a complete list of hooks, see:
11
+ # https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
12
+ #
13
+ # For a complete list of options that you can use to customize hooks, see:
14
+ # https://github.com/sds/overcommit#configuration
15
+ #
16
+ # Uncomment the following lines to make the configuration take effect.
17
+
18
+ PreCommit:
19
+ Pronto:
20
+ enabled: true
21
+
22
+ GoFmt:
23
+ enabled: false
24
+
25
+ CommitMsg:
26
+ CapitalizedSubject:
27
+ enabled: false
28
+
29
+ SingleLineSubject:
30
+ enabled: true
31
+ on_warn: fail
32
+
33
+ TextWidth:
34
+ enabled: true
35
+ on_warn: fail
36
+
37
+ TrailingPeriod:
38
+ enabled: true
39
+ on_warn: fail
40
+ #PreCommit:
41
+ # RuboCop:
42
+ # enabled: true
43
+ # on_warn: fail # Treat all warnings as failures
44
+ #
45
+ # TrailingWhitespace:
46
+ # enabled: true
47
+ # exclude:
48
+ # - '**/db/structure.sql' # Ignore trailing whitespace in generated files
49
+ #
50
+ #PostCheckout:
51
+ # ALL: # Special hook name that customizes all hooks of this type
52
+ # quiet: true # Change all post-checkout hooks to only display output on failure
53
+ #
54
+ # IndexTags:
55
+ # enabled: true # Generate a tags file with `ctags` each time HEAD changes
data/.rubocop.yml CHANGED
@@ -1 +1 @@
1
- inherit_from: default.yml
1
+ inherit_from: default_rubocop.yml
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify dependencies in percy-style.gemspec
data/README.md CHANGED
@@ -1,10 +1,40 @@
1
1
  # lifen-ruby-style
2
2
 
3
- Configuration de Rubocop chez Lifen.
3
+ **Ensembe des outils et bonnes pratiques Ruby chez Lifen :**
4
+
5
+ 1. Le [Guide de style Lifen](./style_guide.md) présente les guidelines Lifen et détaille les règles de style.
6
+
7
+ 2. [RuboCop](https://github.com/rubocop-hq/rubocop) est un outil statique d'analyse et de formattage du code, qui repose sur le [guide de style](https://github.com/rubocop-hq/ruby-style-guide) de la communauté Ruby et que nous configurons selon le [guide de style Lifen](./style_guide.md). Nous utilisons plusieurs extensions :
8
+
9
+ - [Rubocop-performance](https://github.com/rubocop-hq/rubocop-performance) pour la performance et l'optimisation
10
+ - [Rubocop-rspec](https://github.com/rubocop-hq/rubocop-rspec) pour l'analyse des tests RSpec
11
+ - [Rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) pour les vérifications spécifiques à Rails.
12
+
13
+ 3. [Pronto](https://github.com/prontolabs/pronto) permet de lancer simultanément **plusieurs outils d'analyse** (e.g. Rubocop, Reek, Fasterer) **sur un sous-ensemble de lignes** (e.g. le contenu de l'index ou le diff entre 2 commits). Nous ne l'utilisons pour le moment que pour l'analyse Rubocop. [Pronto Rubocop](https://github.com/prontolabs/pronto-rubocop) est l'extension qui va permettre de lancer RuboCop via Pronto.
14
+
15
+ 4. [Overcommit](https://github.com/sds/overcommit) permet de gérer et paramétrer les hooks Git.
16
+
17
+ ## Sommaire
18
+
19
+ - [Installation](#installation)
20
+ - [Usage](#usage)
21
+ - [Rubocop](#rubocop)
22
+ - [Pronto](#pronto)
23
+ - [Overcommit](#overcommit)
24
+ - [Utilisation d'une version locale](#utilisation-dune-version-locale)
25
+ - [Contributions](#contributions)
26
+ - [TODO](#todo)
27
+ - [Archives](#archives)
4
28
 
5
29
  ## Installation
6
30
 
7
- Il suffit d'ajouter dans le `Gemfile` :
31
+ <details>
32
+
33
+ <summary>Pour un nouveau projet ou un repo Lifen non configuré</summary>
34
+
35
+ ### 1. Ajout de la gem au projet
36
+
37
+ Ajouter dans le `Gemfile` :
8
38
 
9
39
  ```ruby
10
40
  group :test, :development do
@@ -18,67 +48,364 @@ Ou dans le `.gemspec` s'il s'agit d'une gem :
18
48
  spec.add_development_dependency 'lifen-ruby-style'
19
49
  ```
20
50
 
21
- Puis :
51
+ ### 2. Config Rubocop
52
+
53
+ Créer le fichier `.rubocop.yml` avec le code suivant :
54
+
55
+ ```yaml
56
+ inherit_gem:
57
+ lifen-ruby-style:
58
+ - default_rubocop.yml
59
+ ```
60
+
61
+ ### 3. Config Overcommit
62
+
63
+ Créer le fichier `.overcommit.yml` à partir du contenu de [ce fichier](./default_overcommit.yml).
64
+
65
+ Note : Il n'est pas nécessaire d'ajouter Rubocop dans les dépendances de l'application.
66
+
67
+ </details>
68
+
69
+ <details>
70
+ <summary>Pour un repo Lifen déjà configuré</summary>
71
+
72
+ ### 1. Installer les dépendences :
22
73
 
23
74
  ```bash
24
75
  $ bundle install
25
76
  ```
26
77
 
27
- Il faut enfin créer le fichier `.rubocop.yml` avec le code suivant :
78
+ En cas de problème avec l'installation de la sous-dépendance `rugged` il faudra vous assurer que `cmake` est installé sur votre machine. Si elle n'est pas installée il faudra le faire de la façon suivante :
79
+ ```bash
80
+ brew install cmake
81
+ ```
28
82
 
29
- ```yaml
30
- inherit_gem:
31
- lifen-ruby-style:
32
- - default.yml
83
+ ### 2. Installer les hooks Git :
84
+
85
+ ```bash
86
+ $ bundle exec overcommit --install
33
87
  ```
34
88
 
35
- Il n'est pas nécessaire d'ajouter Rubocop dans les dépendances de l'application.
89
+ </details>
36
90
 
37
- Il faut ensuite ajouter un "hook" git en créant le fichier `.git/hooks/pre-commit` avec :
91
+ <details>
92
+ <summary>Recommandations spécifiques pour VSCode</summary>
38
93
 
94
+ ### 1. Configuration générale
95
+
96
+ ```json
97
+ "editor.tabSize": 2, // Uses 2 spaces for indentation
98
+ "editor.rulers": [
99
+ 80,
100
+ 120
101
+ ], // Add rulers at 80 and 120 characters
102
+ "files.trimTrailingWhitespace": true, // Remove trailing auto inserted whitespaces
103
+ "files.insertFinalNewline": true, // Insert a final new line at the end of the file when saving it
104
+ "files.associations": {
105
+ "Gemfile": "ruby",
106
+ }, // Use Ruby language mode for Gemfiles
39
107
  ```
40
- #!/bin/bash
41
108
 
42
- git status -s | grep -E 'A|M' | awk '{print $2}' | xargs rubocop --display-cop-names --extra-details --parallel --force-exclusion
109
+ ### 2. Extension ruby
110
+
111
+ - Installer l'extension [rebornix.ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby), qui intègre notamment `RuboCop`.
112
+
113
+ Note : Inutile d'installer [ruby-rubocop](https://marketplace.visualstudio.com/items?itemName=misogi.ruby-rubocop) qui fait doublon et qui introduit des conflits avec les environnement `rvm`.
114
+
115
+ - Paramétrage recommandé de l'extension :
116
+
117
+ ```json
118
+ "ruby.useBundler": true, // run non-lint commands with bundle exec
119
+ "ruby.useLanguageServer": true, // use the internal language server (see below)
120
+ "ruby.lint": {
121
+ "rubocop": {
122
+ "useBundler": true // enable rubocop via bundler
123
+ }
124
+ },
125
+ "ruby.format": "rubocop", // use rubocop for formatting
126
+ ```
127
+
128
+ - **FORCER RUBOCOP À RESPECTER LES EXCLUSIONS DÉFINIES DANS LE FICHIER DE PARAMÉTRAGE :**
129
+
130
+ ```bash
131
+ $ echo '--force-exclusion' > .rubocop
132
+ ```
133
+
134
+ - Paramétrage recommandé pour l'auto-formatting :
135
+
136
+ ```json
137
+ "[ruby]": {
138
+ "editor.formatOnPaste": true, // auto-format ruby code when pasting
139
+ "editor.formatOnSave": true // auto-format ruby code when saving
140
+ },
141
+ ```
142
+
143
+ ou
144
+
145
+ ```json
146
+ "editor.formatOnPaste": true, // auto-format code when pasting
147
+ "editor.formatOnSave": true, // auto-format code when saving
148
+ ```
149
+
150
+ ### 3. Bonus - Autres extensions utiles :
151
+
152
+ - [Bracket Pair Colorizer 2](https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2)
153
+ - [Endwise](https://marketplace.visualstudio.com/items?itemName=kaiwood.endwise)
154
+ - [Git Blame](https://marketplace.visualstudio.com/items?itemName=waderyan.gitblame)
155
+ - [Rails Go to Spec ](https://marketplace.visualstudio.com/items?itemName=sporto.rails-go-to-spec)
156
+ - [RSpec Snippets](https://marketplace.visualstudio.com/items?itemName=karunamurti.rspec-snippets)
157
+
158
+ </details>
159
+
160
+ <details>
161
+ <summary>Recommandations spécifiques pour Sublime Text</summary>
162
+
163
+ ### Configuration de Sublime Text
164
+ Il faut aller dans `Preferences > Settings` et modifier le fichier `Preferences.sublime-settings -- User` et y ajouter les paramètres suivants :
165
+ ```json
166
+ {
167
+ ...,
168
+ "rulers":
169
+ [
170
+ 80,
171
+ 120
172
+ ],
173
+ "tab_size": 2,
174
+ "translate_tabs_to_spaces": true,
175
+ "trim_trailing_white_space_on_save": true,
176
+ "word_wrap": "true",
177
+ ...
178
+ }
179
+ ```
180
+
181
+ ### Configuration de Rubocop
182
+ #### 1. Installation du plugin
183
+ Il faut installer l'extension [sublime_rubocop](https://packagecontrol.io/packages/RuboCop)
184
+
185
+ Et tout devrait marcher par défaut si votre système n'utilise pas rvm ou rbenv. Le cas échéant il faut personnaliser la configuration en allant dans `Preferences > Package Settings > Rubocop > Settings - User` et mettre la configuration qui va bien dans le fichier, par exemple ceci si vous utilisez Rbenv :
43
186
  ```
187
+ {
188
+ "check_for_rvm": false,
189
+ "check_for_rbenv": true,
190
+ "rbenv_path": "/usr/local/bin/rbenv"
191
+ }
192
+ ```
193
+
194
+ #### 2. Utilisation
195
+ Une fois le plugin installé vous accéderez à des commandes supplémentaires liées à Rubocop et vous pourrez par exemple :
196
+ - Corriger automatiquement des fichiers
197
+ - Activer/Désactiver l'auto-check des fichiers
198
+
199
+ </details>
200
+
201
+ <details>
202
+ <summary>Recommandations spécifiques pour VIM (`dense-analysis/ale`)</summary>
203
+
204
+ ### 1. Installation
205
+
206
+ #### via Plug (recommandé)
207
+
208
+ - Ajoutez à votre `.vimrc` (dans la liste des plugins):
209
+
210
+ ```
211
+ Plug 'dense-analysis/ale'
212
+ ```
213
+
214
+ - Lancez `:PlugInstall`
215
+
216
+ #### Autres méthodes
217
+
218
+ Voir https://github.com/dense-analysis/ale#3-installation
219
+
220
+ ### 2. Configuration recommandée
221
+
222
+ Dans votre `.vimrc`:
223
+
224
+ - Pour que le linter passe lorsque le texte change (hors sauvegardes):
225
+
226
+ ```
227
+ let g:ale_lint_on_text_changed = 'never'
228
+ ```
229
+
230
+ - Pour que le linter passe lorsque la touche 'enter' est pressée:
231
+
232
+ ```
233
+ let g:ale_lint_on_enter = 1
234
+ ```
235
+
236
+ - Pour que le linter nettoie les petites imperfections à la sauvegarde:
237
+ ```
238
+ let g:ale_fix_on_save = 1
239
+ let g:ale_fixers = {
240
+ \ 'ruby': 'rubocop',
241
+ \ 'javascript': 'eslint'
242
+ \}
243
+ ```
244
+ (il faut aussi configurer les "fixers")
245
+
246
+ ### Pour aller plus loin
247
+
248
+ https://github.com/dense-analysis/ale
249
+
250
+ </details>
44
251
 
45
252
  ## Usage
46
253
 
47
- ### En local
254
+ ### Workflow
48
255
 
49
- Lancement de Rubocop pour vérifier :
256
+ - Je code ma feature en local. Mon environnement (projet + IDE) étant configuré, je suis alerté en direct des règles de style que j'enfreins. Certaines sont mêmes corrigées automatiquement, lors de la sauvegarde du fichier.
257
+ - Je commit :
258
+ - Un hook de pre-commit lance une analyse Pronto (= RuboCop pour le moment) sur les lignes "staged". D'autres vérifications fournies par défaut par la gem `overcommit` sont également faites. Si l'analye renvoie des erreurs, le commit est bloqué.
259
+ - Un hook vérifie le message de commit
260
+ - Si je veux bypasser les hooks (déconseillé) : `OVERCOMMIT_DISABLE=1 git commit ...`
261
+ - Je push (pas de hooks paramétrés pour l'instant)
262
+
263
+ ### Commandes Rubocop
264
+
265
+ Pour de la vérification :
50
266
 
51
267
  ```bash
52
- $ bundle exec rubocop
268
+ $ bundle exec rubocop # checks all the repo
269
+ $ bundle exec rubocop [PATH] # checks the path
270
+ $ bundle exec rubocop --fail-fast # inspect files in order of modification time and stop after the first file
53
271
  ```
54
272
 
55
- Lancement de Rubocop pour corriger automatiquement :
273
+ Pour de la correction automatique :
56
274
 
57
275
  ```bash
58
- $ bundle exec rubocop -a
276
+ $ bundle exec rubocop -a # auto-correct offenses.
277
+ $ bundle exec rubocop --safe # run only safe cops.
278
+ $ bundle exec rubocop --safe-auto-correct # run auto-correct only when it's safe.
279
+ $ bundle exec rubocop --lint # run only lint cops.
280
+ $ bundle exec rubocop --fix-layout # run only layout cops, with auto-correct on.
59
281
  ```
60
282
 
61
- ### Sur CircleCI
283
+ Liste des commandes disponibles :
62
284
 
63
- Il suffit d'ajouter dans le flow un job avant les tests (ou en parallèles) avec la commande suivante :
285
+ ```bash
286
+ $ bundle exec rubocop --help
287
+ ```
288
+
289
+ ### Commandes Pronto
64
290
 
65
291
  ```bash
66
- 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
292
+ $ bundle exec pronto run [PATH] # Runs Pronto on the diff between last commit and master
67
293
  ```
68
294
 
69
- ## Evolution des règles
295
+ Vous pouvez ajouter les options suivantes :
296
+
297
+ ```bash
298
+ -c, [--commit=COMMIT] # Runs Pronto on the diff between last commit and specified commit
299
+ -i, --index # Analyze changes not staged for commit (does not include untracked files)
300
+ --unstaged, --no-unstaged # Analyze only untracked files
301
+ --staged, --no-staged # Analyze changes to be committed (git staging area)
302
+ ```
70
303
 
71
- Pour modifier la configuration, le plus simple est de le faire sur un projet en local en modifiant le `Gemfile` :
304
+ Liste des commandes disponibles :
72
305
 
73
- ```ruby
74
- group :development, :test do
75
- gem 'lifen-ruby-style', path: '../lifen-ruby-style'
76
- end
306
+ ```bash
307
+ $ bundle exec pronto --help
308
+ $ bundle exec pronto help run
77
309
  ```
78
310
 
79
- ainsi que le fichier `.rubocop.yml` :
311
+ ### Commandes Overcommit
80
312
 
81
- ```yaml
82
- inherit_from:
83
- - ../lifen-ruby-style/default.yml
84
- ```
313
+ ```bash
314
+ $ OVERCOMMIT_DISABLE=1 git [command] # Executes the git command without running the hooks
315
+ $ bundle exec overcommit --run # Run pre-commit hook against all git tracked files
316
+ ```
317
+
318
+ Liste des commandes disponibles :
319
+
320
+ ```bash
321
+ $ bundle exec overcommit --help
322
+ ```
323
+
324
+ ### CI
325
+
326
+ Créer un flow avec la commande `bundle exec overcommit --run`.
327
+
328
+ ## Utilisation d'une version locale
329
+
330
+ Pour utiliser une version locale de la gem `lifen-ruby-style` :
331
+
332
+ - Cloner le repo
333
+
334
+ ```bash
335
+ git clone git@github.com:honestica/lifen-ruby-style.git
336
+ ```
337
+
338
+ - Modifier le `Gemfile` de votre projet local (e.g. Alphonse) :
339
+
340
+ ```ruby
341
+ group :development, :test do
342
+ gem 'lifen-ruby-style', path: '../lifen-ruby-style'
343
+ end
344
+ ```
345
+
346
+ - Modifier le fichier `.rubocop.yml` :
347
+
348
+ ```yaml
349
+ inherit_from:
350
+ - ../lifen-ruby-style/default_rubocop.yml
351
+ ```
352
+
353
+ - Créer le fichier `.overcommit.yml` et coller le contenu du fichier `lifen-ruby-style/default_overcommit.yml`
354
+
355
+ - Installer les dépendences et les hooks Git :
356
+
357
+ ```bash
358
+ $ bundle install
359
+ $ bundle exec overcommit --install
360
+ ```
361
+
362
+ - Vous pouvez maintenant apporter des modifications à la gem (repo `lifen-ruby-style`) et les visualiser sur votre projet local (e.g. `alphonse`).
363
+
364
+ **ATTENTION : La configuration d'overcommit n'est pas liée automatiquement au projet, il faut la copier/coller dans le projet cible après avoir effectué des changements.**
365
+
366
+ ## Contributions
367
+
368
+ Comme pour n'importe quel autre projet :
369
+
370
+ - cloner le repo
371
+ - créer une nouvelle branche
372
+ - soumettre une PR
373
+
374
+ Vous allez vouloir tester localement les modifications de règle de style que vous proposez. L'idée est d'utiliser votre version locale de la gem `lifen-ruby-style` sur un projet local (e.g. Alphonse), suivre les instructions pour l'[utilisation d'une version locale](#utilisation-dune-version-locale).
375
+
376
+ **ATTENTION : La configuration d'overcommit n'est pas liée automatiquement au projet, il faut la copier/coller dans le projet cible après avoir effectué des changements.**
377
+
378
+ ## TODO
379
+
380
+ [ ] Recommandations spécifiques pour Sublime Text
381
+ [ ] Lier la configuration d'overcommit aux repos
382
+ [ ] Ajouter un hook de pre-push ?
383
+ [ ] Ajouter le hook de pre-commit au CI
384
+ [ ] Ajouter `pronto-faster` si pertinent
385
+ [ ] Ajouter `pronto-reek` si pertinent
386
+ [ ] Ajouter `pronto-slim_lint` si pertinent
387
+ [ ] Ajouter `pronto-scss` si pertinent
388
+
389
+ ## Archives
390
+
391
+ <details><summary>Ajouter un "hook" git d'exécution de rubocop</summary>
392
+
393
+ Créer le fichier `.git/hooks/pre-commit` avec :
394
+
395
+ ```bash
396
+ #!/bin/bash
397
+
398
+ git status -s | grep -E 'A|M' | awk '{print $2}' | xargs rubocop --display-cop-names --extra-details --parallel --force-exclusion
399
+ ```
400
+
401
+ </details>
402
+
403
+ <details><summary>Ajouter rubocop au CircleCI</summary>
404
+
405
+ Il suffit d'ajouter dans le flow un job avant les tests (ou en parallèles) avec la commande suivante :
406
+
407
+ ```bash
408
+ 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
409
+ ```
410
+
411
+ </details>
data/Rakefile CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
@@ -0,0 +1,55 @@
1
+ # Use this file to configure the Overcommit hooks you wish to use. This will
2
+ # extend the default configuration defined in:
3
+ # https://github.com/sds/overcommit/blob/master/config/default.yml
4
+ #
5
+ # At the topmost level of this YAML file is a key representing type of hook
6
+ # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
7
+ # customize each hook, such as whether to only run it on certain files (via
8
+ # `include`), whether to only display output if it fails (via `quiet`), etc.
9
+ #
10
+ # For a complete list of hooks, see:
11
+ # https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
12
+ #
13
+ # For a complete list of options that you can use to customize hooks, see:
14
+ # https://github.com/sds/overcommit#configuration
15
+ #
16
+ # Uncomment the following lines to make the configuration take effect.
17
+
18
+ PreCommit:
19
+ Pronto:
20
+ enabled: true
21
+
22
+ GoFmt:
23
+ enabled: false
24
+
25
+ CommitMsg:
26
+ CapitalizedSubject:
27
+ enabled: false
28
+
29
+ SingleLineSubject:
30
+ enabled: true
31
+ on_warn: fail
32
+
33
+ TextWidth:
34
+ enabled: true
35
+ on_warn: fail
36
+
37
+ TrailingPeriod:
38
+ enabled: true
39
+ on_warn: fail
40
+ #PreCommit:
41
+ # RuboCop:
42
+ # enabled: true
43
+ # on_warn: fail # Treat all warnings as failures
44
+ #
45
+ # TrailingWhitespace:
46
+ # enabled: true
47
+ # exclude:
48
+ # - '**/db/structure.sql' # Ignore trailing whitespace in generated files
49
+ #
50
+ #PostCheckout:
51
+ # ALL: # Special hook name that customizes all hooks of this type
52
+ # quiet: true # Change all post-checkout hooks to only display output on failure
53
+ #
54
+ # IndexTags:
55
+ # enabled: true # Generate a tags file with `ctags` each time HEAD changes