谁在`deploy.rb`中定义`defer`?

时间:2014-01-30 03:34:23

标签: ruby capistrano whenever whenever-capistrano

whenever的自述文件中,有一个这样的例子,

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

我可能理解defer的含义,但我想知道它是如何工作的,以及它是如何实现的。

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

2 个答案:

答案 0 :(得分:3)

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

正如您在capistrano中所知,您可以set许多变量。它们的值是在capistrano脚本unless a value is a block初始化时计算的。在该上下文中,defer作为关键字更有意义,因为在访问变量之前需要进行评估。

答案 1 :(得分:0)

嗯,找出答案的简单方法是在该文件中的某处放置binding.pry然后执行show-method defer - 这将向您显示来源 - 但如果您知道它的话,这有点极端“随时”的一部分 - 它肯定是在宝石中的某个地方定义的。你检查过rubydoc了吗?

相关问题