В Capistrano с использованием многоэтапного расширения у меня есть две среды: prod и test.
Мне нужно несколько переменных в testing.rb, которые не нужны в prod.rb, и я хочу, чтобы некоторые из моих задач могли проверить, определена ли переменная, и использовать ее, если она есть, но игнорировать ее, если она есть не установлено.
Итак, в testing.rb у меня было бы что-то вроде:
set :foo, 'bar'
prod.rb не будет ссылаться на: foo, так как ему это не нужно. В одной из моих задач я хотел бы сделать что-то вроде:
if defined?(foo)
# do something with foo
else
# do something without foo
end
Но я продолжаю получать сообщение об ошибке:
undefined local variable or method 'foo'
Есть ли способ проверить неопределенные глобальные переменные в задаче? Или я должен сделать что-то вроде:
set :foo, ''
Во всех моих средах, где не нужна переменная: foo?