2010-07-20 14 views

risposta

11

rubino heredocs sono più o meno lo stesso, con piccole modifiche, e sono disponibili in 2 gusti:

1) End-of-heredoc deve essere all'inizio di una linea:

string = <<EOD 

    ',. whatever <"",' 

EOD 

puts string 

2) End-of-heredoc può essere preceduto da spazi bianchi:

string = <<-EOD 

    ',. whatever <"",' 

     EOD 

puts string 
3

Si chiama heredoc, ed è <<WHATEVER in Ruby.

10

Questo è chiamato here doc. Dal link, il modo in cui sarebbe rubino:

puts <<-GROCERY_LIST 
Grocery list 
------------ 
1. Salad mix. 
2. Strawberries.* 
3. Cereal. 
4. Milk.* 

* Organic 
GROCERY_LIST 

Il risultato:

$ ruby grocery-list.rb 
Grocery list 
------------ 
1. Salad mix. 
2. Strawberries.* 
3. Cereal. 
4. Milk.* 

* Organic 
10

Rubino sostiene stringhe multilinea, fornendo due tipi di sintassi qui doc. La prima sintassi utilizza e trattino aggiuntivo, ma consente di rientrare il delimitatore "fine di qui doc" ("eos" nell'esempio).

<<-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 

Un'altra qui sintassi doc non richiedono di utilizzare il cruscotto, ma richiede che la "fine del qui doc" delimitatore è nella colonna 1 (o non ci sono spazi che lo precedono).

<<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 
2

si può fare in questo modo

string = <<EOD 

',. whatever <"",' 

EOD 

puts string 
1
output = <<-TEXT 
    my text 
    block 
TEXT 

^quello che hanno detto