1

whenever's README 中,有一个这样的例子,

set :whenever_environment, defer { stage }
require "whenever/capistrano"

我大概明白什么defer意思,但我想知道它是如何工作的,以及它是如何实现的。

我在哪里可以找到源代码defer

4

1 回答 1

3

defer曾经是capistrano v2 gem的一部分。它只不过是 ruby​​ 的别名,lambda仅用于可读性目的。

正如您在 capistrano 中可能知道的那样,您可以使用set许多变量。它们的值是在 capistrano 脚本初始化时计算的,除非值是一个 block。在这种情况下defer,作为关键字更有意义,因为评估被推迟到访问变量之前。

于 2014-02-02T00:33:03.897 回答