DevToolPal
PT

Formatador de Ruby

Formate código Ruby com o Syntax Tree, rodando no interpretador Ruby de verdade compilado para WebAssembly.

Roda localmente, nada é enviado

Opções

A primeira formatação baixa o interpretador Ruby (cerca de 13 MB) e pode levar alguns segundos; as seguintes são instantâneas.

Entrada

0 caracteres · 0 B

Saída

0 caracteres · 0 B

O que esta ferramenta faz

O formatador de Ruby reescreve código Ruby com indentação e espaçamento consistentes. Cole um script, um model do Rails ou um Rakefile e ele volta com indentação de dois espaços, uma instrução por linha, espaços ao redor dos operadores e dentro das chaves, e cadeias longas de métodos quebradas para caber na largura da linha.

Ele usa o Syntax Tree rodando no interpretador Ruby de verdade, compilado para WebAssembly. Como o parser é o do próprio Ruby, sintaxes modernas como endless methods, pattern matching e argumentos nomeados são entendidas exatamente como o Ruby as entende.

Como usar

  1. Cole código Ruby ou abra um arquivo .rb.
  2. Aguarde o primeiro resultado. O interpretador é baixado uma única vez, em segundo plano.
  3. Escolha uma Largura da linha. Linhas mais longas que isso são quebradas em chamadas de método, argumentos ou entradas de hash.
  4. Copie ou baixe o código formatado.

Se o código não puder ser analisado, a ferramenta mostra o erro de sintaxe do Ruby, como syntax error, unexpected 'end', para você encontrar a parte que falta.

Exemplo

O exemplo é um pequeno módulo de carrinho de compras escrito sem cuidado com o layout: o corpo de uma classe sem indentação, initialize escrito em uma linha com ponto e vírgula, hashes sem espaços e um ternário sem espaços ao redor de >. Depois da formatação, o módulo e a classe ficam indentados, cada instrução de initialize ganha a própria linha, os literais de hash viram { name: name, price: price, qty: qty } e o ternário fica cart.total > 10 ? "big order" : "small order".

O que ele não muda

O formatador só muda o layout. Ele não renomeia variáveis, não converte hash rockets para a nova sintaxe nem alterna entre aspas simples e duplas. Comentários são preservados. Se você precisar dessas correções de estilo, rode a autocorreção do RuboCop no seu projeto depois de formatar.

Dicas

  • Use a mesma largura de linha do .rubocop.yml do seu projeto (Layout/LineLength) para que o código formatado passe no seu linter.
  • Formatar é um jeito rápido de achar um end faltando: o Ruby informa onde desistiu, geralmente logo depois do bloco que não foi fechado.

Perguntas frequentes

› Qual formatador esta ferramenta usa?

O Syntax Tree, o formatador de Ruby por trás do plugin oficial de Ruby do Prettier. Ele roda no CRuby, o interpretador Ruby padrão, compilado para WebAssembly, então analisa o seu código exatamente como o Ruby faz.

› Por que a primeira execução é lenta?

Na primeira vez que você formata algo, a página baixa o interpretador Ruby e o formatador, cerca de 13 MB, e os inicia em um worker em segundo plano para que a página continue respondendo. Depois disso, a formatação leva uma fração de segundo.

› Ele segue o estilo do RuboCop?

Quase sempre. O Syntax Tree gera indentação de dois espaços, espaços dentro das chaves de hashes e ao redor dos operadores, e uma linha em branco entre métodos, o que corresponde às regras de layout padrão do RuboCop. Ele não muda o estilo das aspas nem reescreve código como o `rubocop -a` faz.

› Meu código é enviado?

Não. Tudo roda no seu navegador e nada é enviado a um servidor.