En PHP, el siguiente me permitiría crear una cadena sin tener que escapar comillas ..¿Hay un equivalente de <<< EOD en Ruby/Rails?
$string = <<<EOD
',. whatever <"",'
EOD;
echo $string;
¿Hay algo similar a ella en Ruby/Rails?
En PHP, el siguiente me permitiría crear una cadena sin tener que escapar comillas ..¿Hay un equivalente de <<< EOD en Ruby/Rails?
$string = <<<EOD
',. whatever <"",'
EOD;
echo $string;
¿Hay algo similar a ella en Ruby/Rails?
Rubí son más o menos lo mismo, con cambios menores, y vienen en 2 sabores:
1) al final de la heredoc debe estar en el inicio de una línea:
string = <<EOD
',. whatever <"",'
EOD
puts string
2) al final de la heredoc puede ir precedido por espacios en blanco:
string = <<-EOD
',. whatever <"",'
EOD
puts string
Se llama heredoc, y es <<WHATEVER
en Ruby.
Esto se llama here doc. Desde el enlace, la forma de rubí sería:
puts <<-GROCERY_LIST
Grocery list
------------
1. Salad mix.
2. Strawberries.*
3. Cereal.
4. Milk.*
* Organic
GROCERY_LIST
El resultado:
$ ruby grocery-list.rb
Grocery list
------------
1. Salad mix.
2. Strawberries.*
3. Cereal.
4. Milk.*
* Organic
Rubí soporta líneas múltiples proporcionando dos tipos de sintaxis doc aquí. La primera sintaxis se usa y dash adicional, pero le permite sangrar el delimitador "end of here doc" ('eos' en el ejemplo).
<<-eos
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.
eos
Otra sintaxis de documento no exige que use el tablero, pero sí requiere que el "final de aquí doc" delimitador está en la columna 1 (o no hay espacios que le preceden).
heredocs<<eos
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.
eos
que puede hacerlo de esta manera
string = <<EOD
',. whatever <"",'
EOD
puts string
output = <<-TEXT
my text
block
TEXT
^lo que dijeron