这个结构在Ruby中意味着什么?

Cas*_*yne 0 ruby chef-infra

我正在努力学习厨师,但是我在理解这个Ruby代码的作用时遇到了一些困难.

web_app "helloworld" do
  server_name "hello.world"
  server_aliases ["www.hello.world"]
  docroot "/var/www/helloworld"
end
Run Code Online (Sandbox Code Playgroud)

根据我的理解,第一行调用web_app参数,"helloworld"但我不知道do在这种情况下代表什么,确实web_app返回一个列表?当我在Ruby中看到一个列表迭代器时,值会像这样传递do |v|.我猜它不是迭代,因为多次执行该代码没有多大意义.

tes*_*ssi 5

do并将end一个封装在红宝石中.如果您愿意,可以将块传递给每个方法调用.这取决于该方法如何处理块.

大多数方法不关心附加块,但该web_app方法似乎调用块来配置自身.

如果你想深入研究它,这里有一些指示: