在whenever
的自述文件中,有一个这样的例子,
set :whenever_environment, defer { stage }
require "whenever/capistrano"
我可能理解defer
的含义,但我想知道它是如何工作的,以及它是如何实现的。
我在哪里可以找到defer
的源代码?
答案 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了吗?