lifen-ruby-style 0.2.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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