在Capistrano 2.15.5deploy:assets source中,我看到如下代码:

desc <<-DESC
  [internal] This task will set up a symlink to the shared directory \
  ... more
DESC

run <<-CMD.compact
  rm -rf #{latest_release}/public/#{assets_prefix} &&
  ... more
CMD

这个语法到底是怎么回事?它看起来像是一种不带引号的字符串编写方法,类似于%q,<<-是运算符吗?或是命名怪异的常数?或者这在普通ruby中没有任何意义,而是capistrano dsl的一个特性?

最佳答案

这种语法称为heredoc或here文档(因为它包含在“right here”中),实际上是一种编写不带引号的长多行字符串的方法。它并不特定于capistrano,而是ruby的一部分(以及许多其他语言,可以追溯到旧的unix shell)。

关于ruby-on-rails - Capistrano来源中的<<-CMD是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27552534/

10-13 06:43