Rompiendo cuerdas largas en múltiples líneas en Ruby sin eliminar nuevas líneas
Recientemente decidimos en mi trabajo una guía de estilo rubí. Uno de los edictos es que ninguna línea debe tener más de 80 caracteres. Dado que este es un proyecto de Rails, a menudo tenemos cadenas que son un poco más largas, es decir, "El usuario X quería enviarle un mensaje sobre Thing Y"eso no siempre encaja dentro del límite de estilo de 80 caracteres.
Entiendo que hay tres formas de tener una cadena larga que abarca varias líneas:
Heredoc% Q {}Concatenación real de la cadena.Sin embargo, todos estos casos terminan tomando más ciclos de cómputo, lo que parece una tontería. La concatenación de cuerdas obviamente, pero paraHEREDOC
y%Q
Tengo que quitar las nuevas líneas, a través de algo como.gsub(/\n$/, '')
.
¿Existe una forma de sintaxis pura para hacer esto, que sea equivalente a tener toda la cadena en una línea? El objetivo es, obviamente, no gastar ciclos adicionales solo porque quiero que mi código sea un poco más legible. (Sí, me doy cuenta de que tienes que hacer mucho ese intercambio ... pero para la longitud de la cuerda, esto parece una tontería).
Actualización: las barras invertidas no son exactamente lo que quiero porque pierdes sangría, lo que realmente afecta el estilo / la legibilidad.
Ejemplo:
<code>if foo string = "this is a \ string that spans lines" end </code>
Encuentro lo anterior un poco difícil de leer.
EDITAR: Agregué una respuesta a continuación; Tres años más tarde ahora tenemos el ondeante heredoc.