2012-10-10 12 views
15

Necesito formatear una Cadena que termine con una nueva línea. Solo agregaría una "\ n", pero también quiero que esto funcione en Windows. Muchos idiomas tienen una constante que proporciona la secuencia CR/LF/CRLF apropiada según la plataforma, pero parece que no puedo encontrar nada en Ruby. ¿Existe?¿Ruby tiene una constante para EOL multiplataforma en alguna parte?

+0

Puede agregar "\ r \ n", que siempre funciona, AFAIK. También puede especificar el separador de registro para las llamadas a imprimir y escribir a través de la variable $ \ –

+0

¿Acaba de enviar la cadena a través de algo como puts? Dado que puts usará el EOL correcto para $ PLATFORM, ¿o necesita saltos de línea interior también? – Doon

+1

Escribir \ r \ n archivos en sistemas UNIX crea un lío horrible. – d11wtq

Respuesta

24

Ruby tiene cuatro (!)

p $/ 
p $-0 
require 'English' 
p $RS 
p $INPUT_RECORD_SEPARATOR 

Usando IO # puts (= File # pone) se encargará de la correcta EOL, no hay necesidad de ajustar manualmente.

+0

¡Excelente respuesta, gracias! – d11wtq

+1

Estos son todos los separadores de registros * input *, no los caracteres EOL de plataforma cruzada. En Windows están configurados en '" \ n "' también. – sshaw

Cuestiones relacionadas