好吧,我从来没有找到一个插件或任何似乎是为此而构建的东西。..所以我不得不自己滚。..这里有sha和url的属性,因为我需要它们。希望这能帮助别人。
xml = Builder::XmlMarkup.new(:indent => 2,:escape_attrs => true)
xml.instruct!
xml.catalogs(:version=>2) {list_entries("#{CATALOG_PATH}", xml)}
File.open("#{RAILS_ROOT}/public/catalogs.xml", 'w') {|f| f.write(xml.target!) }
def list_entries(dir,xml)
Dir.glob("#{dir}/*") do |entry|
if File::directory?(entry)
xml.directory(:name=>File.basename(entry)) {
list_entries(entry, xml)
}
else
xml.file(:name=>File.basename(entry),:sha => Digest::SHA256.hexdigest(entry),
:url=>entry.gsub("#{CATALOG_PATH}","#{CATALOG_URL}"))
end
end
end