Capistrano Проверка неопределенной переменной в задаче

В Capistrano с использованием расширения Multi-stage у меня есть две среды: prod и testing .

Мне нужно несколько переменных в testing.rb, которые не нужны в prod.rb, и я хочу, чтобы некоторые из моих задач могли проверять, определена ли переменная, и использовать ее, если она есть, но игнорировать ее, если она not set.

Итак, в test.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?

10
задан Jaymon 7 February 2011 в 22:58
поделиться