Class: EacFs::CachedDownload

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_fs/cached_download.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, parent_fs_cache = nil) ⇒ CachedDownload

Returns a new instance of CachedDownload.



9
10
11
12
# File 'lib/eac_fs/cached_download.rb', line 9

def initialize(url, parent_fs_cache = nil)
  @url = url
  @fs_cache = (parent_fs_cache || fs_cache).child(url.to_s.parameterize)
end

Instance Attribute Details

#fs_cacheObject (readonly)

Returns the value of attribute fs_cache.



7
8
9
# File 'lib/eac_fs/cached_download.rb', line 7

def fs_cache
  @fs_cache
end

#urlObject (readonly)

Returns the value of attribute url.



7
8
9
# File 'lib/eac_fs/cached_download.rb', line 7

def url
  @url
end

Instance Method Details

#assertObject



14
15
16
# File 'lib/eac_fs/cached_download.rb', line 14

def assert
  download unless fs_cache.stored?
end

#downloadObject



18
19
20
21
22
23
24
# File 'lib/eac_fs/cached_download.rb', line 18

def download
  ::EacRubyUtils::Fs::Temp.on_file do |temp|
    download_to(temp)
    fs_cache.content_path.to_pathname.dirname.mkpath
    ::FileUtils.mv(temp.to_path, fs_cache.content_path)
  end
end

#pathObject



26
27
28
# File 'lib/eac_fs/cached_download.rb', line 26

def path
  fs_cache.content_path.to_pathname
end