def download(gem_name, gem_version=nil)
logger.info("Trying to download", :gem => gem_name, :version => gem_version)
gem_fetch = [ "#{attributes[:gem_gem]}", "fetch", gem_name]
gem_fetch += ["--prerelease"] if attributes[:gem_prerelease?]
gem_fetch += ["--version", gem_version] if gem_version
download_dir = build_path(gem_name)
FileUtils.mkdir(download_dir) unless File.directory?(download_dir)
::Dir.chdir(download_dir) do |dir|
logger.debug("Downloading in directory #{dir}")
safesystem(*gem_fetch)
end
gem_files = ::Dir.glob(File.join(download_dir, "*.gem"))
if gem_files.length != 1
raise "Unexpected number of gem files in #{download_dir}, #{gem_files.length} should be 1"
end
return gem_files.first
end