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

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