Rubocop ist ein statisches Code-Analyse-Tool für Ruby. ruby-style-guide weist auf Korrekturen und Verbesserungen des Quellcodes hin.
Darüber hinaus werden Einrückungsabweichungen, unnötige Leerzeichen, Zeilenumbrüche usw. automatisch durch Eingabe eines bestimmten Befehls korrigiert, sodass Sie den Code so formatieren können, dass er sowohl für Sie als auch für andere leicht lesbar ist. können.
gemfile
gem 'rubocop', require: false
Terminal
bundle install
Terminal
bundle exec rubocop
Beim Ausführen erhalten Sie eine Ausgabe ähnlich der folgenden:
Dies sind die von Rubocop erkannten Korrekturen. Wenn Sie jedoch alle Standardregeln befolgen, müssen Sie sich beim Schreiben von Code zu viele Sorgen machen, damit Sie die Regeln festlegen können, die Sie und Ihr Team zulassen.
Im Anwendungsverzeichnis Erstellen Sie eine Datei mit dem Namen .rubocop.yml und schreiben Sie die Einstellungen darin.
.rubocop.yml
AllCops:
#Legen Sie fest, welche Verzeichnisse ausgeschlossen werden sollen. Beispielsweise werden Schema- und Migrationsdateien selten neu geschrieben, sodass sie nicht erkannt werden.
Exclude:
- bin/*
- db/schema.rb
- node_modules/**/*
- db/migrate/*
- vendor/**/*
#Auf Schienen prüfen
Rails:
enabled: true
# "Missing top-level class documentation comment."Deaktivieren
Style/Documentation:
Enabled: false
# "Prefer single-quoted strings when you don't need string interpolation or special symbols."Deaktivieren
Style/StringLiterals:
Enabled: false
# "Line is too long"Deaktivieren
Metrics/LineLength:
Enabled: false
#'frozen_string_literal: true'Deaktivieren
Style/FrozenStringLiteralComment:
Enabled: false
Verschiedene Einstellungen wie sind möglich. Ich werde damit herumspielen, indem ich auf [Standardeinstellungen] verweise (https://github.com/rubocop-hq/rubocop/blob/master/config/default.yml).
Nach dem Einstellen wieder
Terminal
bundle exec rubocop
Dann können Sie sehen, dass 72 Dateien 56 Dateien sind, was weniger als zuvor ist.
Terminal
bundle exec rubocop --auto-gen-config
Eine Datei mit dem Namen .rubocop.todo.yml wird automatisch generiert. Infolgedessen werden alle Korrekturen vorübergehend ungültig. Wenn Sie hier rubocop ausführen, werden keine Korrekturen vorgenommen.
ruby:.rubocop.todo.yml
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
# Include: **/*.gemfile, **/Gemfile, **/gems.rb
Bundler/OrderedGems:
Exclude:
- 'Gemfile'
Als Beispiel gibt es die obige Beschreibung. Wenn Sie diese Beschreibung löschen, werden die ungültigen Korrekturen des betreffenden Teils wiederhergestellt. Ich werde es sofort beheben, aber
Cop supports --auto-correct.
Wenn eine Beschreibung vorhanden ist, korrigiert Rubocop diese automatisch mit dem folgenden Befehl.
#### **`Terminal`**
```python
bundle exec rubocop -a
Was ich dieses Mal behoben habe, ist, dass die Edelsteinbeschreibung in der Gemfile nicht in alphabetischer Reihenfolge ist, sondern in der richtigen Reihenfolge neu angeordnet wurde.
`bundle exec rubocop --auto-gen-config``` und aus Generieren Sie
`.rubocop.todo.yml```.Im eigentlichen Bereich ist es automatisiert und es scheint, dass Sie es nicht selbst beheben werden, Ich bin noch ein Anfänger, also werde ich jeden verbessern und die Regeln überprüfen. Ich versuche ein Ingenieur zu sein, der von Anfang an einfach zu lesenden Code schreiben kann.
Recommended Posts