我正在阅读capistrano手册
https://github.com/leehambley/capistrano-handbook/blob/master/index.markdown
并看到关键字"设置"出现
set :deploy_via, :remote_cache
Run Code Online (Sandbox Code Playgroud)
在此示例中设置是否将符号设置:deploy_via为:remote_cache?
这不是标准Ruby中的关键字.它是域特定语言(DSL)中元素的一个示例.
基本上,DSL允许您通过提供比Ruby之类的通用语言更有针对性的构造来在更高的抽象级别上工作.这里的"集合"就是一个例子.它实际上可能只是Ruby中的一个函数,但是当你使用它时,它本身就更像是一种语言结构.Ruby特别擅长编写DSL
至于Capistrano的作用,我不知道,我从未使用过Capistrano.:)
set不是ruby关键字是
来自capistrano源的capistrano命令
def set(key, value)
@properties[key] = value
end
Run Code Online (Sandbox Code Playgroud)
set在 Ruby 中没有特殊含义。事实上,它不是一个 Ruby 关键字,它是一个 Capistrano 命令,是 Capistrano DSL 的一部分。
从技术上来说,它是一个 Ruby 方法。你可以看到方法定义。
def set(key, value)
config[key] = value
end
Run Code Online (Sandbox Code Playgroud)