1
简单的问题;所以在我的Capistrano的脚本deploy.rb看起来像这样,在那里我可以使用捕获功能轻松:如何从外部静态类访问Capistrano方法?
namespace :mycompany do
def some_function()
mylog = capture("some_command")
end
desc <<-DESC
some task description
DESC
task :some_task do
mylog = capture("some_command")
end
end
不过,如果我使用的方法在一个类中,像这样:
namespace :mycompany do
class SomeClass
def self.some_static_method()
mylog = capture("some_command")
end
end
end
它惨不忍睹:
/config/deploy.rb:120:in `some_static_method': undefined method `capture' for #<Class:0x000000026234f8>::SomeClass (NameError)
如何做到这一点呢?这种方法似乎并不为静态:(这里面这里(Capistrano的来源):
module Capistrano
class Configuration
module Actions
module Inspect
# Executes the given command on the first server targetted by the
# current task, collects it's stdout into a string, and returns the
# string. The command is invoked via #invoke_command.
def capture(command, options={})
...