我似乎无法让变量在 Thor::Group 中工作。我已经尝试了所有方法来定义常量 $CONFIG $STAGING_DIR 但它们只是不起作用。
class Package < Thor::Group
include Thor::Actions
attr_accessor :staging_dir, :config
argument :repo, :type => :string, :desc => "The repo to export"
desc "Testing 1.2.3..."
def test_meth
uri = URI.parse(repo)
if uri.kind_of?(URI::Generic)
say "-- Repository seems to be a local directory", :cyan
if File.exist? repo
@config = YAML.load_file(repo + "/project.yaml")
@staging_dir = "/var/tmp/pkg/stage/" + @config["project"]["name"]
FileUtils.remove_dir @staging_dir if File.exists? @staging_dir
empty_directory @staging_dir
directory(repo, @staging_dir)
end
end
end
def failure
puts @config
puts @staging_dir
end
def self.source_root
File.dirname(@staging_dir)
end
end
Package.start
./fubar /var/tmp/test/ -- Repository 好像是本地目录 nil nil
有谁知道如何使类变量在 Thor::Group 中可访问?