class Onboard::Download
Attributes
cache_dir[R]
Public Class Methods
new(cache_dir = '/tmp/onboard/cache')
click to toggle source
# File lib/onboard/download.rb, line 14 def initialize(cache_dir = '/tmp/onboard/cache') @cache_dir = cache_dir end
Public Instance Methods
build_link(project, version)
click to toggle source
# File lib/onboard/download.rb, line 18 def build_link(project, version) DRUPAL_DL_LINK + "#{project}-#{version}.tar.gz" end
fetch(url, max_age = 1800)
click to toggle source
# File lib/onboard/download.rb, line 26 def fetch(url, max_age = 1800) FileUtils.mkdir_p(cache_dir) unless File.directory?(cache_dir) file_path = path(url) if File.exist? file_path return File.new(file_path).read if Time.now - File.mtime(file_path) < max_age end File.open(file_path, 'w') do |data| data << Net::HTTP.get_response(URI.parse(url)).body end end
path(url)
click to toggle source
# File lib/onboard/download.rb, line 22 def path(url) File.join('', @cache_dir, Digest::MD5.hexdigest(url)) end