lifen-ruby-style 1.0.1 → 1.0.6
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 +4 -4
- data/.overcommit.yml +1 -1
- data/README.md +26 -6
- data/default_overcommit.yml +1 -1
- data/default_rubocop.yml +82 -1
- data/lib/lifen/ruby_style/version.rb +1 -1
- data/lifen-ruby-style.gemspec +1 -1
- data/style_guide.md +22 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20241f5f06c6ce3ee92e87f234e659542f0565687e1e7102a79f837226c912fc
|
4
|
+
data.tar.gz: 7e58e92ccb1990f69f7aa22dacf6cdba5b3e95de1768a2b7b0213be9b7df3c8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bbb9623066e0401253254f700006ea14d257f3aa3e0e2a2be563015d3a18a837f0844abb073558e2277825ddddaa46b9582caf107e26b85776faf10ae8d7f08
|
7
|
+
data.tar.gz: 5987a28429905604738cd997de2cd3e505069dba0bd26744bc25b7e6314dc25b80db503a92c28e95307418e5ce5995116abc0fb98bdb706e99014aca95394cba
|
data/.overcommit.yml
CHANGED
@@ -19,6 +19,7 @@ PreCommit:
|
|
19
19
|
RuboCop:
|
20
20
|
enabled: true
|
21
21
|
command: ["bundle", "exec", "rubocop"]
|
22
|
+
problem_on_unmodified_line: ignore
|
22
23
|
|
23
24
|
GoFmt:
|
24
25
|
enabled: false
|
@@ -33,7 +34,6 @@ CommitMsg:
|
|
33
34
|
|
34
35
|
TextWidth:
|
35
36
|
enabled: true
|
36
|
-
on_warn: fail
|
37
37
|
|
38
38
|
TrailingPeriod:
|
39
39
|
enabled: true
|
data/README.md
CHANGED
@@ -61,7 +61,7 @@ $ echo '--force-exclusion' > .rubocop
|
|
61
61
|
### 3. Config Overcommit
|
62
62
|
|
63
63
|
```bash
|
64
|
-
$ curl https://raw.githubusercontent.com/honestica/lifen-ruby-style/master/default_overcommit.yml > .
|
64
|
+
$ curl https://raw.githubusercontent.com/honestica/lifen-ruby-style/master/default_overcommit.yml > .overcommit.yml
|
65
65
|
```
|
66
66
|
|
67
67
|
### 4. Installer les dépendances
|
@@ -123,17 +123,20 @@ $ bundle exec overcommit --install
|
|
123
123
|
- Paramétrage recommandé pour l'auto-formatting :
|
124
124
|
|
125
125
|
```json
|
126
|
+
"editor.formatOnPaste": true, // global auto-format code when pasting
|
127
|
+
"editor.formatOnSave": true, // global auto-format code when saving
|
126
128
|
"[ruby]": {
|
127
|
-
"editor.
|
128
|
-
"editor.formatOnSave": true // auto-format ruby code when saving
|
129
|
+
"editor.formatOnSave": false // disable auto-format on save only for ruby files
|
129
130
|
},
|
130
131
|
```
|
131
132
|
|
132
133
|
ou
|
133
134
|
|
134
135
|
```json
|
135
|
-
"
|
136
|
-
|
136
|
+
"[ruby]": {
|
137
|
+
"editor.formatOnPaste": true, // auto-format ruby code when pasting
|
138
|
+
"editor.formatOnSave": false // auto-format ruby code when saving
|
139
|
+
},
|
137
140
|
```
|
138
141
|
|
139
142
|
### 3. Bonus - Autres extensions utiles :
|
@@ -250,12 +253,28 @@ https://github.com/dense-analysis/ale
|
|
250
253
|
### Workflow
|
251
254
|
|
252
255
|
- 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.
|
256
|
+
- Pour ignorer manuellement RuboCop sur des lignes données :
|
257
|
+
|
258
|
+
```ruby
|
259
|
+
"I want to ignore the Style/StringLiterals rule on this line only" # rubocop:disable Style/StringLiterals
|
260
|
+
|
261
|
+
# rubocop:disable Style/StringLiterals
|
262
|
+
"I want to ignore the Style/StringLiterals rule on this line."
|
263
|
+
"and also on this one, because I like double quotes."
|
264
|
+
# rubocop:enable Style/StringLiterals
|
265
|
+
```
|
266
|
+
|
253
267
|
- Je commit :
|
254
268
|
- Un hook de pre-commit lance une analyse RuboCop sur les fichiers "staged". Si l'analye renvoie des erreurs, le commit est bloqué.
|
255
269
|
- Un hook vérifie le message de commit
|
256
270
|
- Si je veux bypasser les hooks (déconseillé) : `OVERCOMMIT_DISABLE=1 git commit ...`
|
257
271
|
- Je push (pas de hooks de pre-push paramétrés pour l'instant)
|
258
272
|
|
273
|
+
Attention :
|
274
|
+
|
275
|
+
- si vous faites "Ctrl+C" pendant qu'un hook overcommit tourne, overcommit fait un `git stash save` et vous pouvez retrouver ce qui a disparu avec `git stast list / show / pop`
|
276
|
+
- dans le même registre, ne faites pas de `watch .git/hooks/pre-commit`, si vous éditez vos fichiers dans une autre fenêtre, overcommit va régulièrement stasher vos modifs, et vous allez tourner en rond à éditer des fichiers qui changent sous vos pieds.
|
277
|
+
|
259
278
|
### Commandes Rubocop
|
260
279
|
|
261
280
|
Pour de la vérification :
|
@@ -286,7 +305,7 @@ $ bundle exec rubocop --help
|
|
286
305
|
|
287
306
|
```bash
|
288
307
|
$ OVERCOMMIT_DISABLE=1 git [command] # Executes the git command without running the hooks
|
289
|
-
$ bundle exec overcommit --run
|
308
|
+
$ bundle exec overcommit --run # Run pre-commit hook against all git tracked files
|
290
309
|
```
|
291
310
|
|
292
311
|
Liste des commandes disponibles :
|
@@ -351,6 +370,7 @@ Vous allez vouloir tester localement les modifications de règle de style que vo
|
|
351
370
|
|
352
371
|
## TODO
|
353
372
|
|
373
|
+
[ ] Ajouter rubocop-daemon (arriver à faire une bonne intégration aux IDE)
|
354
374
|
[ ] Ajouter le hook de pre-commit au CI
|
355
375
|
[ ] Ajouter un hook de pre-push ?
|
356
376
|
[ ] Ajouter `fasterer` si pertinent
|
data/default_overcommit.yml
CHANGED
@@ -19,6 +19,7 @@ PreCommit:
|
|
19
19
|
RuboCop:
|
20
20
|
enabled: true
|
21
21
|
command: ["bundle", "exec", "rubocop"]
|
22
|
+
problem_on_unmodified_line: ignore
|
22
23
|
|
23
24
|
GoFmt:
|
24
25
|
enabled: false
|
@@ -33,7 +34,6 @@ CommitMsg:
|
|
33
34
|
|
34
35
|
TextWidth:
|
35
36
|
enabled: true
|
36
|
-
on_warn: fail
|
37
37
|
|
38
38
|
TrailingPeriod:
|
39
39
|
enabled: true
|
data/default_rubocop.yml
CHANGED
@@ -17,12 +17,68 @@ AllCops:
|
|
17
17
|
- "node_modules/**/*"
|
18
18
|
|
19
19
|
# Waiting for default config
|
20
|
+
Lint/RaiseException:
|
21
|
+
Enabled: true
|
22
|
+
Lint/StructNewOverride:
|
23
|
+
Enabled: true
|
20
24
|
Style/HashEachMethods:
|
21
25
|
Enabled: true
|
22
26
|
Style/HashTransformKeys:
|
23
27
|
Enabled: true
|
24
28
|
Style/HashTransformValues:
|
25
29
|
Enabled: true
|
30
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
31
|
+
Enabled: true
|
32
|
+
Layout/SpaceAroundMethodCallOperator:
|
33
|
+
Enabled: true
|
34
|
+
Lint/DeprecatedOpenSSLConstant:
|
35
|
+
Enabled: true
|
36
|
+
Lint/DuplicateElsifCondition:
|
37
|
+
Enabled: true
|
38
|
+
Lint/MixedRegexpCaptureTypes:
|
39
|
+
Enabled: true
|
40
|
+
Style/AccessorGrouping:
|
41
|
+
Enabled: true
|
42
|
+
Style/ArrayCoercion:
|
43
|
+
Enabled: true
|
44
|
+
Style/BisectedAttrAccessor:
|
45
|
+
Enabled: true
|
46
|
+
Style/CaseLikeIf:
|
47
|
+
Enabled: true
|
48
|
+
Style/ExponentialNotation:
|
49
|
+
Enabled: true
|
50
|
+
Style/HashAsLastArrayItem:
|
51
|
+
Enabled: true
|
52
|
+
Style/HashLikeCase:
|
53
|
+
Enabled: true
|
54
|
+
Style/RedundantAssignment:
|
55
|
+
Enabled: true
|
56
|
+
Style/RedundantFetchBlock:
|
57
|
+
Enabled: true
|
58
|
+
Style/RedundantFileExtensionInRequire:
|
59
|
+
Enabled: true
|
60
|
+
Style/RedundantRegexpCharacterClass:
|
61
|
+
Enabled: true
|
62
|
+
Style/RedundantRegexpEscape:
|
63
|
+
Enabled: true
|
64
|
+
Style/SlicingWithRange:
|
65
|
+
Enabled: true
|
66
|
+
Performance/AncestorsInclude:
|
67
|
+
Enabled: true
|
68
|
+
Performance/BigDecimalWithNumericArgument:
|
69
|
+
Enabled: true
|
70
|
+
Performance/RedundantSortBlock:
|
71
|
+
Enabled: true
|
72
|
+
Performance/RedundantStringChars:
|
73
|
+
Enabled: true
|
74
|
+
Performance/ReverseFirst:
|
75
|
+
Enabled: true
|
76
|
+
Performance/SortReverse:
|
77
|
+
Enabled: true
|
78
|
+
Performance/Squeeze:
|
79
|
+
Enabled: true
|
80
|
+
Performance/StringInclude:
|
81
|
+
Enabled: true
|
26
82
|
|
27
83
|
Layout/ArgumentAlignment:
|
28
84
|
EnforcedStyle: with_fixed_indentation
|
@@ -87,12 +143,23 @@ Metrics/PerceivedComplexity:
|
|
87
143
|
Naming/MemoizedInstanceVariableName:
|
88
144
|
EnforcedStyleForLeadingUnderscores: required
|
89
145
|
|
146
|
+
RSpec/DescribeClass:
|
147
|
+
Exclude:
|
148
|
+
- spec/lib/tasks/deployment/**/*
|
149
|
+
|
150
|
+
Style/BlockDelimiters:
|
151
|
+
EnforcedStyle: braces_for_chaining
|
152
|
+
|
90
153
|
Style/ClassAndModuleChildren:
|
91
154
|
Enabled: false
|
92
155
|
|
93
156
|
Style/Documentation:
|
94
157
|
Enabled: false
|
95
158
|
|
159
|
+
Style/IfUnlessModifier:
|
160
|
+
Enabled: true
|
161
|
+
AutoCorrect: false
|
162
|
+
|
96
163
|
Style/NumericLiterals:
|
97
164
|
Strict: true
|
98
165
|
|
@@ -108,6 +175,17 @@ Style/SymbolArray:
|
|
108
175
|
Style/WordArray:
|
109
176
|
EnforcedStyle: brackets
|
110
177
|
|
178
|
+
Rails/DynamicFindBy:
|
179
|
+
Enabled: true
|
180
|
+
AutoCorrect: false
|
181
|
+
|
182
|
+
Rails/UnknownEnv:
|
183
|
+
Environments:
|
184
|
+
- production
|
185
|
+
- development
|
186
|
+
- test
|
187
|
+
- staging
|
188
|
+
|
111
189
|
RSpec/AnyInstance:
|
112
190
|
Enabled: false
|
113
191
|
|
@@ -120,11 +198,14 @@ RSpec/ExampleLength:
|
|
120
198
|
RSpec/HookArgument:
|
121
199
|
EnforcedStyle: each
|
122
200
|
|
201
|
+
RSpec/LetSetup:
|
202
|
+
Enabled: false
|
203
|
+
|
123
204
|
RSpec/MultipleExpectations:
|
124
205
|
Enabled: false
|
125
206
|
|
126
207
|
RSpec/NestedGroups:
|
127
|
-
Max:
|
208
|
+
Max: 5
|
128
209
|
|
129
210
|
RSpec/NotToNot:
|
130
211
|
EnforcedStyle: to_not
|
data/lifen-ruby-style.gemspec
CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.require_paths = ['lib']
|
31
31
|
|
32
32
|
spec.add_dependency 'overcommit'
|
33
|
-
spec.add_dependency 'rubocop', '
|
33
|
+
spec.add_dependency 'rubocop', '0.88'
|
34
34
|
spec.add_dependency 'rubocop-performance', '~> 1.5'
|
35
35
|
spec.add_dependency 'rubocop-rails', '~> 2.4'
|
36
36
|
spec.add_dependency 'rubocop-rspec', '~> 1.38'
|
data/style_guide.md
CHANGED
@@ -619,6 +619,12 @@ before(:each) do
|
|
619
619
|
end
|
620
620
|
```
|
621
621
|
|
622
|
+
#### LetSetup
|
623
|
+
|
624
|
+
```yaml
|
625
|
+
Enabled: false // does not check unreferenced let! calls being used for test setup
|
626
|
+
```
|
627
|
+
|
622
628
|
#### MultipleExpectations
|
623
629
|
|
624
630
|
```yaml
|
@@ -651,6 +657,22 @@ end
|
|
651
657
|
Enabled: false // example groups can have the same description string.
|
652
658
|
```
|
653
659
|
|
660
|
+
#### Block Delimiters
|
661
|
+
|
662
|
+
##### EnforcedStyle: braces_for_chaining
|
663
|
+
|
664
|
+
```ruby
|
665
|
+
# bad
|
666
|
+
words.each do |word|
|
667
|
+
word.flip.flop
|
668
|
+
end.join("-")
|
669
|
+
|
670
|
+
# good
|
671
|
+
words.each { |word|
|
672
|
+
word.flip.flop
|
673
|
+
}.join("-")
|
674
|
+
```
|
675
|
+
|
654
676
|
</details>
|
655
677
|
|
656
678
|
### Default rules
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lifen-ruby-style
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Team Lifen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: overcommit
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rubocop
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.88'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.88'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubocop-performance
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|