У меня следующий код в моем deploy.rbCapistrano: deploy.rb файл рефакторинга
namespace :app do
desc "copies the configuration frile from ~/shared/config/*.yml to ~/config"
task :copy_config_files,:roles => :app do
run "cp -fv #{deploy_to}/shared/config/hoptoad.rb #{release_path}/config/initializers"
run "cp -fv #{deploy_to}/shared/config/app_config.yml #{release_path}/config/app_config.yml"
end
end
Я думал, что это будет хорошая идея, чтобы сохранить свой файл deploy.rb чистой, и я попытался двигаться выше кода capistrano_utilities.rb в config. Я использую Rails-приложение. И я добавил следующую строку кода для deploy.rb
require File.expand_path(File.dirname(__FILE__) + "/../lib/capistrano_utilities")
Теперь я получаю следующую ошибку.
undefined method `namespace' for main:Object (NoMethodError)
Значение self в deploy.rb - Capistrano :: Configuration. Хотя значение self в capistrano_utilities является основным. Поэтому я понимаю, почему я получаю ошибку метода пространства имен. В чем проблема?
Я, хотя единственная разница между требованием и нагрузкой заключалась в том, что один из них перечитывает файл в память несколько раз, а другой читает только один раз. Можете ли вы объяснить, почему загрузка работает и чего не требует. – Roger
Roger, подробнее добавлено о специфике capistrano. –
благодарит Райана. Еще одна чудесная магия из рубиновой экосистемы. – Roger