class PicasaDownloader::AlbumPersister
Public Class Methods
new(client, album, download_directory_root)
click to toggle source
# File lib/picasa-downloader/album_persister.rb, line 3 def initialize(client, album, download_directory_root) @client = client @album = album @download_directory_root = download_directory_root end
Public Instance Methods
download()
click to toggle source
# File lib/picasa-downloader/album_persister.rb, line 9 def download FileUtils.mkdir_p(get_temp_album_dir) photos = @client.list_photos(@album.id) download_and_persist_to_disk(photos) move_to_final_dir(photos) end
Private Instance Methods
download_and_persist_to_disk(photos)
click to toggle source
# File lib/picasa-downloader/album_persister.rb, line 18 def download_and_persist_to_disk(photos) def persist_to_disk(photo, photo_data) File.open(get_temp_album_dir + photo.name, 'wb') { |file| file.write(photo_data) FileUtils.touch(file.path, :mtime => photo.created_date) } end photos.each { |photo| photo_data = @client.download_photo(photo) if photo_data persist_to_disk(photo, photo_data) end } end
get_final_album_dir_root(year)
click to toggle source
# File lib/picasa-downloader/album_persister.rb, line 39 def get_final_album_dir_root(year) @download_directory_root + "/#{year}" end
get_temp_album_dir()
click to toggle source
# File lib/picasa-downloader/album_persister.rb, line 43 def get_temp_album_dir @download_directory_root + "/.temp/#{@album.title}/" end
move_to_final_dir(photos)
click to toggle source
# File lib/picasa-downloader/album_persister.rb, line 33 def move_to_final_dir(photos) final_dir = get_final_album_dir_root(PhotoHelper.median_year(photos)) FileUtils.mkdir_p(final_dir) FileUtils.mv(get_temp_album_dir, final_dir) end
persist_to_disk(photo, photo_data)
click to toggle source
# File lib/picasa-downloader/album_persister.rb, line 19 def persist_to_disk(photo, photo_data) File.open(get_temp_album_dir + photo.name, 'wb') { |file| file.write(photo_data) FileUtils.touch(file.path, :mtime => photo.created_date) } end