В чем разница между << - EOH и << ~ EOH (если есть) в ruby - PullRequest
1 голос
/ 16 мая 2019

Есть ли разница между <<-EOH и <<~EOH?

Я сомневаюсь в этом, поскольку скобки неправильно подсвечивают код ruby ​​/ chef, когда я использую <<-EOH, и у меня уже есть тонны кодаработает в производстве таким образом.Поэтому было бы невозможно утвердить мой PR, когда все работает нормально, и единственная проблема в том, что мой редактор не может выделить.

Когда я переключаю <<-EOH на <<~EOH, код правильно распознается скобками иПодсветка кода работает нормально.

Это ошибка в скобках или <<-EOH не так?

bash 'run_a_command_block' do
  code <<-EOH
    /usr/bin/python /usr/local/bin/a_regular_script.py
  EOH
  action :nothing
end

Ответы [ 2 ]

2 голосов
/ 17 мая 2019

Волнистый наследник приведет к удалению отступа контента до уровня строки с наименьшим отступом:

straight = <<-END_OF_TEXT
      Hello.

    This is:
      a regular dash.
END_OF_TEXT

squiggly = <<~END_OF_TEXT
      Hello.

    This is:
      using the squiggly dash.
END_OF_TEXT

separator = "-" * 30

puts separator
puts straight
puts separator
puts squiggly
puts separator

Это выводит:

------------------------------
      Hello.

    This is:
      a regular dash.
------------------------------
  Hello.

This is:
  using the squiggly dash.
------------------------------
0 голосов
/ 17 мая 2019

Я только что нашел ответ. Они делают разные вещи. Прямая сохраняет структуру многострочной строки (смена строк), а волнистая линия объединяет каждую строку, поскольку они были одной строкой.

Пожалуйста, обратитесь к: https://infinum.co/the-capsized-eight/multiline-strings-ruby-2-3-0-the-squiggly-heredoc#disqus_thread

Я проверю, есть ли у меня последняя версия Брекетов. Если да, я открываю билет как предложено.

Спасибо вам всем.

...