Recentemente, decidimos no meu trabalho um guia de estilo rubi. Um dos editais é que nenhuma linha deve ter mais de 80 caracteres. Como este é um projeto do Rails, geralmente temos sequências um pouco mais longas - ou seja, "O usuário X queria enviar uma mensagem sobre o Coisa Y " que nem sempre se encaixa dentro do limite de 80 caracteres.
Entendo que há três maneiras de ter uma longa cadeia de caracteres abrangendo várias linhas:
- HEREDOC
- % Q {}
- Concatenação de string real.
No entanto, todos esses casos acabam tendo mais ciclos de computação, o que parece bobo. Concatenação de strings obviamente, mas para HEREDOC
e %Q
eu tenho que retirar as novas linhas, através de algo como .gsub(/\n$/, '')
.
Existe uma maneira pura de sintaxe para fazer isso, que é equivalente a apenas ter toda a cadeia em uma linha? O objetivo é, obviamente, não gastar ciclos extras apenas porque quero que meu código seja um pouco mais legível. (Sim, eu sei que você precisa fazer muito isso ... mas, para o comprimento da corda, isso parece bobagem.)
Atualização: as barras invertidas não são exatamente o que eu quero, porque você perde o recuo, o que realmente afeta o estilo / legibilidade.
Exemplo:
if foo
string = "this is a \
string that spans lines"
end
Acho o exposto um pouco difícil de ler.
EDIT : eu adicionei uma resposta abaixo; três anos depois, agora temos o heredoc irritadiço.
\n
caracteres de nova linha ou não. A resposta principal não os mantém - mas sua resposta sim. A pergunta diz "sem remover novas linhas" - mas a descrição diz "[...] eu tenho que retirar as novas linhas".