我正在阅读capistrano手册
https://github.com/leehambley/capistrano-handbook/blob/master/index.markdown
看到关键字“设置”出现
set :deploy_via, :remote_cache
此示例中的设置是否将符号:deploy_via
设置为:remote_cache
?
答案 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为该语言命名“保留字”集合的方式。因此,它是变量或方法名称,因为它没有以@或$或@@为前缀,并且没有大写。
实际上这只是一种方法。