红宝石中<< <<-EOH和<<〜EOH(如果有的话)有什么区别

时间:2019-05-16 14:05:55

标签: ruby chef heredoc adobe-brackets

<<-EOH<<~EOH之间有区别吗?

我质疑,因为当我使用<<-EOH时,括号无法正确地突出显示ruby / chef代码,并且已经有大量的代码以这种方式运行。因此,当一切正常时,批准我的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 个答案:

答案 0 :(得分:2)

弯曲的heredoc会将内容缩进到缩进最少的行的级别:

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

答案 1 :(得分:0)

我刚找到答案。他们做不同的事情。直行保持多行字符串的结构(行更改),而每行都是单行,而将它们混乱地连接在一起。

请参考: https://infinum.co/the-capsized-eight/multiline-strings-ruby-2-3-0-the-squiggly-heredoc#disqus_thread

我将检查我是否具有最新的Brackets版本。如果是,我按照建议打开了一张票。

谢谢大家。