class FlickrCollageTty::ImagesAggregator

Constants

MAX_IMAGE_URLS

Attributes

dictionary[R]
flickr[R]
image_urls[R]
keywords[R]

Public Class Methods

call(keywords, flickr, dictionary) click to toggle source
# File lib/flickr_collage_tty/images_aggregator.rb, line 7
def self.call(keywords, flickr, dictionary)
  new(keywords, flickr, dictionary).call
end
new(keywords, flickr, dictionary) click to toggle source
# File lib/flickr_collage_tty/images_aggregator.rb, line 13
def initialize(keywords, flickr, dictionary)
  @keywords   = keywords
  @flickr     = flickr
  @dictionary = dictionary
  @image_urls = []
end

Public Instance Methods

call() click to toggle source
# File lib/flickr_collage_tty/images_aggregator.rb, line 20
def call
  FlickrCollageTty::Utils::Spinner.start(message: "Aggregating image urls ...")

  keywords.each do |keyword|
    get_new_image_url(keyword)
  end

  while image_urls.size < MAX_IMAGE_URLS
    keyword = dictionary.sample
    get_new_image_url(keyword)
  end

  FlickrCollageTty::Utils::Spinner.stop(message: "Finish aggregate image urls!")

  image_urls
end

Private Instance Methods

get_new_image_url(keyword) click to toggle source
# File lib/flickr_collage_tty/images_aggregator.rb, line 39
def get_new_image_url(keyword)
  url = flickr.search(text: keyword)
  image_urls << url if url
end