<--
Похоже, в сети нет поиска, поэтому пришлось задать вопрос здесь.
Каково их имя для поиска и как добавить встроенные переменные?
<--
Похоже, в сети нет поиска, поэтому пришлось задать вопрос здесь.
Каково их имя для поиска и как добавить встроенные переменные?
Этот синтаксис предназначен для объявления ЗДЕСЬ ДОКУМЕНТА http://www.ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html#here_doc
Существует линейная форма строковых литералов, которая обычно называется «здесь документ». После ‹‹ вы можете указать строку или идентификатор для завершения строкового литерала, и все строки, следующие за текущей строкой до терминатора, являются значением строки. Если терминатор заключен в кавычки, тип кавычек определяет тип линейного строкового литерала. Обратите внимание, что между ‹‹ и терминатором не должно быть пробела.
Если - ставится перед разделителем, то все начальные пробельные символы (табуляции или пробелы) удаляются из входных строк и строки, содержащей разделитель. Это позволяет размещать здесь-документы внутри скриптов естественным образом.
Что касается интерполяции, ссылка дает более подробную информацию, но она похожа на строку с двойными кавычками, если ваша строка разделена, как показано ниже (игнорируйте цветовое форматирование этой страницы)
<<-HERE
I can interpolate #{foo}
HERE
тогда как это похоже на строку с одинарными кавычками
<<-'HERE'
This will print out #{foo} as text
HERE
Также оригинальная кирка является хорошим источником http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html
<<-FOO
— это здесь документ. Вы можете узнать больше о них здесь.
И обычная интерполяция работает и здесь.
str = <<-STR
#{foo}
STR
<<HEREDOC
This is like a double quoted string
Interpolation happens here. #{1+2}
Backslashes are interpreted as escapes. \a\t
HEREDOC
http://jeff.dallien.net/posts/Optional-behavior-for-ruby-heredocs