我正在写一个Capistrano部署lib任务,并且我正在尝试设置一个可选变量..即一个默认值,只有在用户的deploy.rb中没有设置时才设置。
我为Capistrano 2找到了以下内容:
if !exists?(fetch(:optional_var))
set :optional_var, 'optional value'
end
但是在Capistrano 3中,我在运行时遇到NoMethodError: undefined method 'exists?' for main:Object
错误。
我已经尝试了defined()
,但似乎总是回归真实。
答案 0 :(得分:2)
您可以查看capistrano-rbenv
插件的执行情况here。
以下是您的情况:
set :optional_var, fetch(:optional_var, 'optional value')
fetch
方法的第二个参数是默认值。