DevToolPal
ES

Formateador de Ruby

Formatea código Ruby con Syntax Tree, ejecutado en el intérprete real de Ruby compilado a WebAssembly.

Se ejecuta en local, nunca se sube

Opciones

El primer formateo descarga el intérprete de Ruby (unos 13 MB) y puede tardar unos segundos; las siguientes ejecuciones son instantáneas.

Entrada

0 caracteres · 0 B

Salida

0 caracteres · 0 B

Qué hace esta herramienta

El formateador de Ruby reescribe código Ruby con sangría y espaciado coherentes. Pega un script, un modelo de Rails o un Rakefile y lo recibirás con sangría de dos espacios, una sentencia por línea, espacios alrededor de los operadores y dentro de las llaves, y las cadenas de métodos largas partidas para ajustarse al ancho de línea.

Usa Syntax Tree ejecutándose sobre el intérprete real de Ruby compilado a WebAssembly. Como el parser es el propio de Ruby, la sintaxis moderna, como los métodos sin end, el pattern matching y los argumentos de palabra clave, se interpreta exactamente igual que en Ruby.

Cómo se usa

  1. Pega código Ruby o abre un archivo .rb.
  2. Espera al primer resultado. El intérprete se descarga una sola vez, en segundo plano.
  3. Elige un Ancho de línea. Las líneas más largas se parten en llamadas a métodos, argumentos o entradas de hash.
  4. Copia o descarga el código formateado.

Si el código no se puede analizar, la herramienta muestra el error de sintaxis de Ruby, como syntax error, unexpected 'end', para que encuentres la pieza que falta.

Ejemplo

El ejemplo es un pequeño módulo de carrito de compra escrito sin cuidar la disposición: el cuerpo de una clase sin sangría, initialize escrito en una línea con punto y coma, hashes sin espacios y un ternario sin espacios alrededor de >. Tras formatearlo, el módulo y la clase quedan indentados, cada sentencia de initialize va en su propia línea, los literales de hash pasan a { name: name, price: price, qty: qty } y el ternario queda como cart.total > 10 ? "big order" : "small order".

Qué no cambia

El formateador solo cambia la disposición. No renombra variables, no convierte los hash rockets a la sintaxis nueva ni cambia entre comillas simples y dobles. Los comentarios se conservan. Si necesitas esas correcciones de estilo, ejecuta el autocorrect de RuboCop en tu proyecto después de formatear.

Consejos

  • Usa el mismo ancho de línea que el .rubocop.yml de tu proyecto (Layout/LineLength) para que el código formateado pase tu linter.
  • Formatear es una forma rápida de detectar un end que falta: Ruby indica dónde se rindió, normalmente justo después del bloque que no se cerró.

Preguntas frecuentes

› ¿Qué formateador usa?

Syntax Tree, el formateador de Ruby que hay detrás del plugin oficial de Prettier para Ruby. Se ejecuta sobre CRuby, el intérprete estándar de Ruby, compilado a WebAssembly, así que analiza tu código exactamente como lo hace Ruby.

› ¿Por qué la primera ejecución es lenta?

La primera vez que formateas algo, la página descarga el intérprete de Ruby y el formateador, unos 13 MB, y los arranca en un worker en segundo plano para que la página siga respondiendo. A partir de ahí, formatear tarda una fracción de segundo.

› ¿Sigue el estilo de RuboCop?

En su mayor parte. Syntax Tree produce sangría de dos espacios, espacios dentro de las llaves de los hashes y alrededor de los operadores, y una línea en blanco entre métodos, lo que coincide con las reglas de layout predeterminadas de RuboCop. No cambia el estilo de las comillas ni reescribe código como hace `rubocop -a`.

› ¿Se sube mi código?

No. Todo se ejecuta en tu navegador y no se envía nada a ningún servidor.