假设在我的标准deploy.rb
文件中,我有一组命名空间。我有一个常见的任务,它根据我传递给它的变量列出 RPM 包。当我按原样运行它时,它抱怨capture
是一个未定义的方法。如果我在deploy.rb
文件中包含该方法,它就可以正常工作。
请注意,我是 ruby 和 OOP 的新手,所以我确定我这样做是错误的。:-)
部署.rb
load 'config/module'
namespace :lp_app do
desc "LP tasks"
co = Tasks::Commands.new()
task :list do
co.list_pkg("LP")
end
end
模块.rb
module Tasks
class Commands
def list_pkg(component)
File.open("#{component}.file.list", "r").each_line do |line|
pkg_name = "#{line}".chomp
set :server_pkg, capture("rpm -q #{pkg_name}")
puts "#{server_pkg}"
end
end
end
end