Capistrano Проверка неопределенной переменной в задании - PullRequest
10 голосов
/ 08 февраля 2011

В 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?

1 Ответ

16 голосов
/ 08 февраля 2011

Попробуйте использовать exists?(:foo) вместо defined?(foo), как рекомендуется в Документах Capistrano .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...