[RUBY] [Rails] Introduction de Rubocop par les débutants

introduction

Rubocop est un outil d'analyse de code statique pour Ruby. ruby-style-guide signalera les corrections et améliorations apportées au code source.

De plus, les écarts d'indentation, les espaces inutiles, les sauts de ligne, etc. sont automatiquement corrigés en tapant une commande spécifique, de sorte que vous pouvez formater le code pour qu'il soit facile à lire aussi bien que pour les autres. pouvez.

introduction

gemfile


gem 'rubocop', require: false

Terminal


bundle install

Essayez d'utiliser

Terminal


bundle exec rubocop

Lors de l'exécution, vous obtiendrez une sortie similaire à ce qui suit: スクリーンショット 2020-07-10 8.06.47.png

Ce sont les correctifs détectés par Rubocop. Cependant, si vous suivez toutes les règles par défaut, vous aurez trop à vous soucier lors de l'écriture du code, vous pouvez donc définir les règles que vous et votre équipe autorisez.

Personnaliser les paramètres

Dans le répertoire des applications Créez un fichier appelé .rubocop.yml et écrivez-y les paramètres.

.rubocop.yml


AllCops:
  #Définissez les répertoires à exclure. Par exemple, les fichiers de schéma et de migration sont rarement réécrits et ne sont donc pas détectés.
  Exclude:
    - bin/*
    - db/schema.rb
    - node_modules/**/*
    - db/migrate/*
    - vendor/**/*
  #Vérifier les rails
  Rails:
    enabled: true

# "Missing top-level class documentation comment."Désactiver
Style/Documentation:
  Enabled: false

# "Prefer single-quoted strings when you don't need string interpolation or special symbols."Désactiver
Style/StringLiterals:
  Enabled: false

# "Line is too long"Désactiver
Metrics/LineLength:
  Enabled: false

#'frozen_string_literal: true'Désactiver
Style/FrozenStringLiteralComment:
  Enabled: false

Différents réglages tels que possibles. Je vais jouer avec lui en me référant aux Paramètres par défaut.

Après le réglage, à nouveau

Terminal


bundle exec rubocop
スクリーンショット 2020-07-10 8.29.43.png Ensuite, vous pouvez voir que 72files est 56files, ce qui est moins qu'avant.

Réparer

Terminal


bundle exec rubocop --auto-gen-config

Un fichier appelé .rubocop.todo.yml est généré automatiquement. Cela invalidera temporairement toutes les modifications. Si vous exécutez rubocop ici, il n'y aura aucune correction.

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'

A titre d'exemple, il y a la description ci-dessus. Si vous supprimez cette description, les corrections invalides de la pièce concernée seront restaurées. Je vais le réparer immédiatement, mais

Cop supports --auto-correct.


 S'il y a une description, Rubocop la corrigera automatiquement avec la commande suivante.


#### **`Terminal`**
```python

bundle exec rubocop -a

Cette fois, la description de la gemme dans le Gemfile n'est pas dans l'ordre alphabétique, mais elle est réorganisée dans le bon ordre.

Résumé

  1. Installez gem et personnalisez les paramètres sur `` `.rubocop.yml```
  2. Exécutez bundle exec rubocop --auto-gen-config et Générez `` .rubocop.todo.yml.
  3. Supprimez et corrigez une description dans `` `.rubocop.todo.yml``` Répétez 4.3.

Sur le terrain, il est automatisé et il semble que vous ne le réparerez pas vous-même, Je suis encore un débutant, je vais donc améliorer chacun d'eux et vérifier les règles. J'essaie d'être un ingénieur capable d'écrire du code facile à lire dès le début.

Recommended Posts

[Rails] Introduction de Rubocop par les débutants
[Rails] Présentation de PAY.JP
Une revue du code utilisé par les rails débutants
[Ruby on Rails] Introduction des données initiales
[Rails] Conservation temporaire des données par session
Résumé de la compréhension de Docker par les débutants ② ~ docker-compose ~
Ce que les débutants de Rails ont appris en résolvant des erreurs
Rails [Pour les débutants] Implémentation de la fonction de commentaire
Explication de Ruby sur rails pour les débutants ①
Introduction de pay.jp
Introduction de milkode
[Rails 6] cocoon_ introduction
[Ruby on Rails] Jusqu'à l'introduction de RSpec
Résumé des connaissances de base des rails acquises par progate
Résumé de la compréhension de Docker par les débutants ① ~ docker run -p ~
[Introduction à Java] Bases de l'arithmétique Java (pour les débutants)
[Ruby / Rails] Désactiver Lint de update_all avec Rubocop
Recommandation de RxJava pour les débutants de RxJava
Liste des mémos débutants (Liste)
Introduction à Java pour les débutants Connaissance de base du langage Java ①
[Rails] conçoit une méthode d'introduction
Introduction de l'authentification des utilisateurs
Explication de Ruby sur rails pour les débutants ⑥ ~ Création de validation ~
Explication de Ruby on rails pour les débutants ② ~ Création de liens ~
Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation Flash ~
[Enum] Utilisez des rails enum pour améliorer la lisibilité des données
[Rails] Enregistrez-vous par attribut du même modèle en utilisant Devise
[Procédure 1 pour les débutants] Ruby on Rails: Construction d'un environnement de développement
[Rails] Comment afficher une liste de messages par catégorie
Explication de Ruby on rails pour les débutants ③ ~ Création d'une base de données ~
Ce que les débutants peuvent apprendre en créant une API Rails simple
Implémentation de la suppression d'ajax dans Rails
[Java] Compréhension débutante de Servlet-②
[Docker] Introduction de l'instruction de base de Docker
Utilisation du type booléen Rails
[Java] Compréhension débutante de Servlet-①
[Pour les super débutants] Super introduction à DBUnit
[Rails] Implémentation de la fonction de catégorie
Résumé orienté objet par les débutants (Java)
(Pour les débutants) [Rails] Installer Devise
[Pour les super débutants] Ant super introduction
[Rails] Implémentation de la fonction tutoriel
[Rails] Implémentation d'une fonction similaire
[Pour les super débutants] Super introduction à Maven
Rails routage des ressources singulières par ressource
[Rails] Supprimez le SQL inutile en utilisant le contrôle de cache des associations
[R Spec on Rails] Comment écrire du code de test pour les débutants par les débutants
Explication de Ruby on rails pour les débutants ⑤ ~ Modifier et supprimer la base de données ~
[Java] Introduction appropriée par Tenpa people Java Part 0 (règles du code)
Cliquez sur l'image dans le champ file_field de Rails pour télécharger et remplacer l'aperçu
Résumé de la compréhension de Docker par les débutants ③ ~ Jusqu'à l'API de proxy à l'aide de nginx ~
[rails] Les modifications de la page d'affichage créées par l'appareil ne sont pas reflétées