Seuls les espaces sont réécrits : l'indentation est reconstruite et les lignes longues peuvent être coupées, tandis que chaînes, heredocs et opérateurs sont copiés octet par octet. C'est un formateur de mise en page, pas un linter : il ne vérifie ni ne répare la syntaxe.
Fonctionne localement dans votre navigateurCollez un extrait Ruby et l'outil renvoie le même programme avec une indentation reconstruite, une règle sur les lignes vides et un retour à la ligne optionnel. Seuls les espaces entre les jetons sont réécrits : chaînes, heredocs, littéraux en pourcentage, expressions régulières, commentaires et opérateurs sont copiés octet par octet, le résultat s'analyse donc dans le même arbre syntaxique que l'entrée.
Le formateur s'exécute entièrement dans cet onglet et rien n'est envoyé. C'est un formateur de mise en page, pas un linter : il ne vérifie, n'exécute et ne répare pas Ruby, et ne signale jamais d'erreur — un extrait avec un end manquant revient mis en forme, pas corrigé.
Seuls les espaces entre les jetons sont réécrits : l'indentation de tête est reconstruite selon l'unité choisie, les espaces en fin de ligne et les lignes vides en trop sont supprimés, et les lignes longues peuvent être coupées. Tout le reste est copié octet par octet — chaînes entre guillemets simples, doubles et accents graves, heredocs (<<, <<-, <<~ et terminateurs entre guillemets comme <<-'end;'), littéraux en pourcentage (%w, %W, %i, %I, %q, %Q, %r, %s, %x), expressions régulières sur plusieurs lignes comprises, symboles et étiquettes, et opérateurs tels que **, &., &:, ::, <<, -> et =>.
Une vérification rapide de tout résultat : la sortie contient les mêmes jetons dans le même ordre que l'entrée, seul l'espacement change. Si votre projet passe aussi RuboCop ou rufo dans l'éditeur, cette page ne remplace pas cette étape — elle sert à lire un extrait, pas à un build.
Chaque niveau d'indentation plus profond devient une unité de la largeur choisie : tabulation, 2, 3, 4 et 8 espaces produisent donc la même structure de blocs. Les corps suivent def, class, module, if, unless, while, until, case, begin, for et do … end ; les formes modifiées comme x if y ne sont pas traitées comme des blocs, et une ligne qui continue une expression inachevée reste rattachée à son instruction.
Le réglage des lignes vides limite les séries de lignes vides : les supprimer, en conserver au plus une ou deux (par défaut deux) ou toutes les conserver. La coupure est gloutonne et ne se fait qu'après une virgule ou après une valeur suivie d'un opérateur binaire — des positions où Ruby continue lui-même la ligne —, aucun jeton n'est donc scindé ; une ligne sans un tel point reste longue au lieu d'être tronquée.
Ce n'est ni un linter, ni un correcteur de style, ni un interpréteur. Rien n'est exécuté, aucun nom n'est renommé, les require ne sont pas triés, les guillemets ne sont pas convertis et un end manquant n'est pas signalé. Les corps de heredoc, les blocs =begin/=end et la section de données __END__ sont copiés tels quels, espaces intérieurs compris.
Le programme n'étant jamais analysé, la page ne peut pas vous dire que l'entrée est invalide. Passez le résultat par ruby -c ou par le contrôle de votre éditeur lorsque vous devez savoir s'il est valide.