[RUBY] [Rails] Einführung von Rubocop durch Anfänger

Einführung

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.

Einführung

gemfile


gem 'rubocop', require: false

Terminal


bundle install

Versuchen Sie es mit

Terminal


bundle exec rubocop

Beim Ausführen erhalten Sie eine Ausgabe ähnlich der folgenden: スクリーンショット 2020-07-10 8.06.47.png

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.

Einstellungen anpassen

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
スクリーンショット 2020-07-10 8.29.43.png Dann können Sie sehen, dass 72 Dateien 56 Dateien sind, was weniger als zuvor ist.

Reparieren

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.

Zusammenfassung

  1. Installieren Sie gem und passen Sie die Einstellungen an `` `.rubocop.yml``` an
  2. Führen Sie `bundle exec rubocop --auto-gen-config``` und aus Generieren Sie `.rubocop.todo.yml```.
  3. Löschen und korrigieren Sie eine Beschreibung in `` `.rubocop.todo.yml``` Wiederholen Sie 4.3.

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

[Rails] Einführung von Rubocop durch Anfänger
[Rails] Einführung von PAY.JP
Eine Überprüfung des von Rails-Anfängern verwendeten Codes
[Ruby on Rails] Einführung der Anfangsdaten
[Rails] Temporäre Aufbewahrung von Daten pro Sitzung
Zusammenfassung des Docker-Verständnisses für Anfänger do ~ Docker-Compose ~
Was Rails-Anfänger durch das Lösen von Fehlern gelernt haben
Rails [Für Anfänger] Implementierung der Kommentarfunktion
Erklärung von Ruby auf Schienen für Anfänger ①
Einführung von pay.jp
Einführung von Milkode
[Rails 6] cocoon_ Einführung
[Ruby on Rails] Bis zur Einführung von RSpec
Zusammenfassung der Grundkenntnisse von Rails, die von progate erworben wurden
Zusammenfassung des Docker-Verständnisses für Anfänger do ~ Docker-Run -p ~
[Einführung in Java] Grundlagen der Java-Arithmetik (für Anfänger)
[Ruby / Rails] Inaktiviere Lint von update_all mit Rubocop
RxJava Anfängerempfehlung für RxJava
Liste der Anfänger (Liste) Memo
Einführung in Java für Anfänger Grundkenntnisse der Java-Sprache ①
[Rails] entwickeln eine Einführungsmethode
Einführung der Benutzerauthentifizierung
Erklärung von Ruby auf Schienen für Anfänger ⑥ ~ Erstellung der Validierung ~
Erklärung von Ruby on Rails für Anfänger ② ~ Links erstellen ~
Erklärung von Ruby on Rails für Anfänger ⑦ ~ Flash-Implementierung ~
[Enum] Verwenden Sie Rails Enum, um die Lesbarkeit von Daten zu verbessern
[Rails] Registrieren Sie sich mit Devise nach Attributen desselben Modells
[Verfahren 1 für Anfänger] Ruby on Rails: Aufbau einer Entwicklungsumgebung
[Rails] So zeigen Sie eine Liste der Beiträge nach Kategorie an
Erklärung von Ruby on Rails für Anfänger ③ ~ Erstellen einer Datenbank ~
Was Anfänger lernen können, indem sie eine einfache Rails-API erstellen
Implementierung der Ajax-Entfernung in Rails
[Java] Anfängerverständnis von Servlet-②
[Docker] Einführung in die grundlegende Docker-Anweisung
Verwendung des booleschen Rails-Typs
[Java] Anfängerverständnis von Servlet-①
[Für Super-Anfänger] DBUnit Super-Einführung
[Rails] Implementierung der Kategoriefunktion
Objektorientierte Zusammenfassung von Anfängern (Java)
(Für Anfänger) [Rails] Installieren Sie das Gerät
[Für Super-Anfänger] Ameise Super-Einführung
[Rails] Implementierung der Tutorial-Funktion
[Rails] Implementierung einer ähnlichen Funktion
[Für Super-Anfänger] Maven Super-Einführung
Rails singuläres Ressourcenrouting nach Ressource
[Rails] Unterdrücken Sie nutzloses SQL, indem Sie die Cache-Steuerung von Zuordnungen verwenden
[R Spec on Rails] So schreiben Sie Testcode für Anfänger von Anfängern
Erklärung von Ruby on Rails für Anfänger ⑤ ~ Datenbank bearbeiten und löschen ~
[Java] Angemessene Einführung durch Tenpa-Leute Java Teil 0 (Code-Regeln)
Ersetzen Sie die Vorschau durch Hochladen, indem Sie auf das Bild in file_field of Rails klicken
Zusammenfassung des Docker-Verständnisses für Anfänger ③ ~ Bis die API mit nginx ~ als Proxy erstellt wird
[Schienen] Änderungen der von devise erstellten Ansichtsseite werden nicht berücksichtigt