Ce que fait l’outil
Le formateur Ruby réécrit du code Ruby avec une indentation et des espacements cohérents. Collez un script, un modèle Rails ou un Rakefile : il revient avec une indentation de deux espaces, une instruction par ligne, des espaces autour des opérateurs et dans les accolades, et de longues chaînes d’appels coupées pour respecter la largeur de ligne.
Il utilise Syntax Tree, exécuté sur le vrai interpréteur Ruby compilé en WebAssembly. Comme le parseur est celui de Ruby, la syntaxe moderne comme les méthodes sans end, le pattern matching et les arguments nommés est comprise exactement comme Ruby la comprend.
Mode d’emploi
- Collez du code Ruby ou ouvrez un fichier
.rb. - Attendez le premier résultat. L’interpréteur n’est téléchargé qu’une fois, en arrière-plan.
- Choisissez une Largeur de ligne. Les lignes plus longues sont coupées au niveau des appels de méthode, des arguments ou des entrées de hash.
- Copiez ou téléchargez le code formaté.
Si le code ne s’analyse pas, l’outil affiche l’erreur de syntaxe de Ruby, comme syntax error, unexpected 'end', pour que vous trouviez la pièce manquante.
Exemple
L’exemple est un petit module de panier d’achat écrit sans souci de mise en page : un corps de classe non indenté, un initialize écrit sur une ligne avec des points-virgules, des hashs sans espaces et un ternaire sans espaces autour de >. Après formatage, le module et la classe sont indentés, chaque instruction de initialize a sa propre ligne, les hashs littéraux deviennent { name: name, price: price, qty: qty } et le ternaire se lit cart.total > 10 ? "big order" : "small order".
Ce qu’il ne change pas
Le formateur ne modifie que la mise en page. Il ne renomme pas les variables, ne convertit pas les hash rockets vers la nouvelle syntaxe et ne bascule pas entre guillemets simples et doubles. Les commentaires sont conservés. Si vous avez besoin de ces corrections de style, lancez l’autocorrection de RuboCop dans votre projet après le formatage.
Astuces
- Utilisez la même largeur de ligne que le
.rubocop.ymlde votre projet (Layout/LineLength) pour que le code formaté passe votre linter. - Le formatage est un moyen rapide de repérer un
endmanquant : Ruby indique où il a abandonné, généralement juste après le bloc non fermé.
FAQ
› Quel formateur est utilisé ?
Syntax Tree, le formateur Ruby derrière le plugin Ruby officiel de Prettier. Il tourne sur CRuby, l'interpréteur Ruby standard, compilé en WebAssembly : il analyse donc votre code exactement comme le fait Ruby.
› Pourquoi la première exécution est-elle lente ?
La page télécharge l'interpréteur Ruby et le formateur, environ 13 Mo, la première fois que vous formatez quelque chose, puis les démarre dans un worker en arrière-plan pour que la page reste réactive. Ensuite, le formatage prend une fraction de seconde.
› Suit-il le style de RuboCop ?
En grande partie. Syntax Tree produit une indentation de deux espaces, des espaces à l'intérieur des accolades de hash et autour des opérateurs, et une ligne vide entre les méthodes, ce qui correspond aux règles de mise en page par défaut de RuboCop. Il ne change pas le style des guillemets et ne réécrit pas le code comme le fait `rubocop -a`.
› Mon code est-il envoyé ?
Non. Tout s'exécute dans votre navigateur et rien n'est envoyé à un serveur.