Если вы пишете большой блок текста, вы можете использовать «здесь документ» или « heredoc ”:
expected_result = <<HEREDOC
This would contain specially formatted text.
That might span many lines
HEREDOC
heredo c начинается со строки, следующей за <<HEREDOC
, и заканчивается следующей строкой, начинающейся с HEREDOC
. Результат включает в себя завершающий символ новой строки.
Вы можете использовать любой идентификатор с символом c, но обычно используются идентификаторы в верхнем регистре.
Вы можете сделать отступ для конечного идентификатора, если поместите «-» после <<: </p>
expected_result = <<-INDENTED_HEREDOC
This would contain specially formatted text.
That might span many lines
INDENTED_HEREDOC
Обратите внимание, что хотя закрывающий идентификатор может иметь отступ, контент всегда обрабатывается так, как если бы он оставался гриппом sh. Если вы сделаете отступ для содержимого, эти пробелы появятся в выходных данных.
Чтобы иметь содержимое с отступом и закрывающий идентификатор с отступом, вы можете использовать «волнистое» наследство c, которое вместо этого использует «~» «-» после <<: </p>
expected_result = <<~SQUIGGLY_HEREDOC
This would contain specially formatted text.
That might span many lines
SQUIGGLY_HEREDOC
Отступ с наименьшей отступной строкой будет удален из каждой строки содержимого. Обратите внимание, что пустые строки и строки, состоящие исключительно из буквальных табуляций и пробелов, будут игнорироваться для целей определения отступа, но экранированные табуляции и пробелы считаются не отступами.