“set”关键字在ruby中意味着什么?

时间:2013-12-09 17:40:49

标签: ruby capistrano

我正在阅读capistrano手册

https://github.com/leehambley/capistrano-handbook/blob/master/index.markdown

看到关键字“设置”出现

set :deploy_via, :remote_cache

此示例中的设置是否将符号:deploy_via设置为:remote_cache

5 个答案:

答案 0 :(得分:5)

这不是标准Ruby中的关键字。它是域特定语言(DSL)中元素的一个示例。

基本上,DSL允许您通过提供比Ruby之类的通用语言更有针对性的构造来在更高的抽象级别上工作。这里的“集合”就是一个例子。它实际上可能只是Ruby中的一个函数,但是当你使用它时,它本身就更像是一种语言结构。 Ruby特别擅长编写DSL

至于Capistrano的情况,我不知道,我从未使用过Capistrano。 :)

答案 1 :(得分:5)

<set命令中

capistrano不是ruby关键字
来自capistrano来源

 def set(key, value)
   @properties[key] = value
 end

答案 2 :(得分:3)

set在Ruby中没有特别的意义。事实上,它不是Ruby关键字,它是Capistrano命令,是Capistrano DSL的一部分。

从技术上讲,这是一种Ruby方法。您可以看到method definition

def set(key, value)
  config[key] = value
end

答案 3 :(得分:3)

其他人偷了我的雷声,但是here是在Capistrano DSL的背景下对set的讨论:

  

此方法是定义可在Capistrano配置中的任何位置访问的变量的主要方法。它允许您设置立即变量和延迟变量,具体取决于您是否使用块来定义变量

答案 4 :(得分:0)

它可以被称为'bareword'而不是 keyword ,因为这就是Ruby为该语言命名“保留字”集合的方式。因此,它是变量或方法名称,因为它没有以@或$或@@为前缀,并且没有大写。

实际上这只是一种方法。