Formatear código Ruby

Solo se reescriben los espacios: la indentación se reorganiza y las líneas largas se pueden ajustar, mientras que las cadenas, los heredocs y los operadores se copian byte a byte. Es un formateador de diseño, no un linter: no verifica ni repara la sintaxis.

Se ejecuta localmente en tu navegador

Cómo formatear código Ruby en el navegador

Pega un fragmento de Ruby y la herramienta devuelve el mismo programa con la indentación reorganizada, una política de líneas en blanco y ajuste de línea opcional. Solo se reescriben los espacios entre tokens: las cadenas, los heredocs, los literales de porcentaje, las expresiones regulares, los comentarios y los operadores se copian byte a byte, así que el resultado se analiza en el mismo árbol sintáctico que la entrada.

El formateador se ejecuta por completo en esta pestaña del navegador y no se sube nada. Es un formateador de diseño, no un linter: no verifica, ejecuta ni repara Ruby, y nunca informa de un error, así que un fragmento con un end ausente vuelve maquetado, no corregido.

  1. Pega el código Ruby en el cuadro y pulsa Formatear código Ruby, o Ctrl/⌘+Enter. Cada ejecución reemplaza el resultado anterior.
  2. Elige la indentación (tabulación o 2, 3, 4 u 8 espacios), cuántas líneas en blanco conservar y si las líneas largas deben ajustarse a 80 o 120 caracteres.
  3. Pulsa Copiar para llevarte el resultado, o Limpiar para vaciar ambos paneles antes del siguiente fragmento.
  4. Las instrucciones unidas con punto y coma fuera de los corchetes se separan en sus propias líneas; un punto y coma dentro de los corchetes se deja donde está.

Qué cambia el formateador — y qué permanece igual

Lo que se reescribe y lo que se copia

Solo se reescriben los espacios entre tokens: la indentación inicial se reorganiza a la unidad elegida, se eliminan los espacios finales y las líneas en blanco sobrantes, y las líneas largas se pueden ajustar. Todo lo demás se copia byte a byte: cadenas con comillas simples, dobles y acentos graves, heredocs (<<, <<-, <<~ y terminadores entrecomillados como <<-'end;'), literales de porcentaje (%w, %W, %i, %I, %q, %Q, %r, %s, %x), expresiones regulares, incluso de varias líneas, símbolos y etiquetas, y operadores como **, &., &:, ::, <<, -> y =>.

Una comprobación rápida de cualquier resultado: la salida contiene los mismos tokens en el mismo orden que la entrada, solo con otro espaciado. Si tu proyecto también pasa RuboCop o rufo en el editor, esta página no sustituye esa pasada: sirve para leer un fragmento, no para una etapa de compilación.

Indentación, líneas en blanco y ajuste

Cada nivel más profundo de la entrada se convierte en una unidad del ancho elegido, de modo que tabulación, 2, 3, 4 y 8 espacios producen la misma estructura de bloques. Los cuerpos siguen a def, class, module, if, unless, while, until, case, begin, for y do … end; las formas modificadoras como x if y no se tratan como bloques, y una línea que continúa una expresión inacabada permanece unida a su instrucción.

El ajuste de líneas en blanco limita las rachas de líneas vacías: eliminarlas, conservar como máximo una o dos (por defecto se conservan dos) o conservarlas todas. El ajuste de línea es voraz y solo corta tras una coma o tras un valor seguido de un operador binario — posiciones en las que Ruby continúa la línea por sí mismo —, así que ningún token se divide; una línea sin ese punto permanece larga en lugar de cortarse.

Lo que no hace

No es un linter, ni un corrector de estilo, ni un intérprete. No se ejecuta nada, no se renombran nombres, no se ordenan los require, no se convierten las comillas y no se informa de un end ausente. Los cuerpos de los heredocs, los bloques =begin/=end y la sección de datos __END__ se copian tal cual, incluidos los espacios que contienen.

Como el programa nunca se analiza, la página no puede decirte que la entrada no es válida. Pasa el resultado por ruby -c o por el comprobador de tu editor cuando necesites saber que es válido.

Herramientas recientes: