class FlickrCollage::FileLoader

Constants

FLICK_RAW_URL_METHODS

Attributes

unsuccessful_keywords[RW]

Public Class Methods

image_list(keywords) click to toggle source
# File lib/flickr_collage/file_loader.rb, line 9
def self.image_list(keywords)
  FileLoader.new.load_flickr_files(keywords)
end

Public Instance Methods

load_flickr_files(keywords, image_list: Magick::ImageList.new, url_method: 'url_b') click to toggle source
# File lib/flickr_collage/file_loader.rb, line 13
def load_flickr_files(keywords, image_list: Magick::ImageList.new, url_method: 'url_b')
  keywords.each { |k| image_list.push(load_flickr_file(k, url_method)) }

  [image_list, @unsuccessful_keywords]
end

Private Instance Methods

flickr_file_url(keyword, url_method) click to toggle source
# File lib/flickr_collage/file_loader.rb, line 32
def flickr_file_url(keyword, url_method)
  raise Errors::NoFlickRawURLMethod unless FLICK_RAW_URL_METHODS.include?(url_method)

  FlickRaw.send(url_method, flickr_photo_search(keyword))
end
load_flickr_file(keyword, url_method) click to toggle source
# File lib/flickr_collage/file_loader.rb, line 21
def load_flickr_file(keyword, url_method)
  open(flickr_file_url(keyword, url_method)) do |uri|
    raise Errors::NoImageFound unless uri.is_a? ::Tempfile
    return Magick::Image.from_blob(uri.read).first
  end
rescue Errors::NoImageFound
  (@unsuccessful_keywords ||= {})[keyword] = Dictionary.words.sample
  keyword = @unsuccessful_keywords[keyword]
  retry
end