У меня есть некоторые проблемы с изменяемой областью действия с многоступенчатым модулем capistrano-ext gem У меня сейчас, в config/deploy/staging.rb
.
set(:settings) { YAML.load_file("config/deploy.yml")['staging'] }
set :repository, settings["repository"]
set :deploy_to, settings["deploy_to"]
set :branch, settings["branch"]
set :domain, settings["domain"]
set :user, settings["user"]
role :app, domain
role :web, domain
role :db, domain, :primary => true
Мой config/deploy/production.rb
файл похож. Это не кажется очень сухим. В идеале, я бы хотел, чтобы все было в файле deploy.rb. Если бы в текущем этапе была установлена переменная, все было бы действительно чисто.
ОБНОВЛЕНИЕ: Я нашел решение.
Я определил эту функцию в deploy.rb
:
def set_settings(params)
params.each_pair do |k,v|
set k.to_sym, v
end
if exists? :domain
role :app, domain
role :web, domain
role :db, domain, :primary => true
end
end
Тогда мой staging.rb
файл просто set_settings(YAML.load_file("config/deploy.yml")['staging'])