He siguiente código en mi deploy.rbCapistrano: archivo deploy.rb refactorización
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
pensé que sería una buena idea para mantener mi archivo deploy.rb limpio y me trató de moverse por encima de código para capistrano_utilities.rb bajo config. Estoy usando la aplicación Rails. Y agregué la siguiente línea de código para implementar .rb
require File.expand_path(File.dirname(__FILE__) + "/../lib/capistrano_utilities")
Ahora recibo el siguiente error.
undefined method `namespace' for main:Object (NoMethodError)
El valor de self en el deploy.rb es Capistrano :: Configuration. Mientras que el valor de self en capistrano_utilities es Main. Entonces entiendo por qué estoy obteniendo un error en el método del espacio de nombres. ¿Cuál es la solución para este problema?
Creo que la única diferencia entre require y load es que uno de ellos vuelve a leer el archivo en la memoria varias veces y el otro solo una vez. ¿Puede explicar por qué la carga funciona y no lo requiere? – Roger
Roger, se agregaron más detalles sobre los detalles de capistrano. –
gracias Ryan. Otra maravillosa magia del ecosistema de rubí. – Roger