我在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。我正在使用Rails應用程序。我加入以下代碼行deploy.rb
require File.expand_path(File.dirname(__FILE__) + "/../lib/capistrano_utilities")
現在我得到以下錯誤。
undefined method `namespace' for main:Object (NoMethodError)
deploy.rb中self的值是Capistrano :: Configuration。而capistrano_utilities中的自我價值是Main。所以我明白爲什麼我得到命名空間方法錯誤。這個問題的解決方法是什麼?
我雖然要求和加載之間的唯一區別是,其中一個重讀文件到內存多次,另一個只讀一次。你能解釋爲什麼加載工作,並要求不。 – Roger 2009-12-11 15:29:03
羅傑,更多細節增加了關於capistrano的具體細節。 – 2009-12-11 16:12:37
謝謝瑞恩。來自ruby生態系統的另一個奇妙魔法 – Roger 2009-12-11 18:19:43