Подтвердить что ты не робот

Что означает "<< -" в Ruby?

Например:

code = <<-EOH
    bundle install
    bundle exec unicorn -c /etc/unicorn.cfg -D
EOH

Что делает этот код? Что называется <<-?

4b9b3361

Ответ 1

Он называется heredoc. Простой способ определения многострочных строк, которые могут включать одиночные или двойные кавычки, не требуя их удаления.

Смотрите here, например.

Часто вы используете heredocs для определения больших кусков кода. Некоторые редакторы знают об этом и могут выделить синтаксис для вас там (если вы укажете язык). Посмотрите:

strings vs heredocs

Ответ 2

Мне кажется, как heredoc. - позволяет конечному разделителю игнорировать пробелы перед ним.

Простой Google Поиск дал мне этот.

Ответ 3

Вы можете передать несколько команд в одном блоке, как это в рецепте шеф-повара

   bash 'Install ftppwd' do
    code <<-EOH
   mkdir #{ftppwd_dir}
   chmod 775 #{ftppwd_dir}
   chgrp #{batch_id} #{ftppwd_dir}/*
   chown #{batch_id} #{ftppwd_dir}/*
   EOH