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

use*_*637 6 ruby capistrano

我正在阅读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

dsw*_*w88 5

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

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

至于Capistrano的作用,我不知道,我从未使用过Capistrano.:)


Зел*_*ный 5

set不是ruby关键字是 来自capistrano源的capistrano命令

 def set(key, value)
   @properties[key] = value
 end
Run Code Online (Sandbox Code Playgroud)


Sim*_*tti 3

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

从技术上来说,它是一个 Ruby 方法。你可以看到方法定义

def set(key, value)
  config[key] = value
end
Run Code Online (Sandbox Code Playgroud)