class Flico::App

Attributes

resources[R]

Public Class Methods

new(resources) click to toggle source
# File lib/flico/app.rb, line 12
def initialize(resources)
        @resources = resources
end

Public Instance Methods

collage(images) click to toggle source
# File lib/flico/app.rb, line 24
def collage(images)
        resources.save_collage.call(resources.collager.call(images))
end
create_collage() click to toggle source
# File lib/flico/app.rb, line 16
def create_collage
        image_urls = []
        begin
                image_urls.push get_images
        end while image_urls.count < 10
        collage(image_urls)
end
get_images() click to toggle source
# File lib/flico/app.rb, line 28
def get_images
        keywords_count    = 10
        keyword           = resources.dictionary.call
        image_url         = resources.flickr_api.call(keyword)
        downloaded_image  = resources.fetch_image.call(image_url)
        rescue NoImage => e
        puts "Image not found for keyword '#{keyword}'. Message: #{e.message}. Retrying"
        unless (tries -= 1) > 0
                raise ApplicationError, "Failed getting image after retrying #{MAX_KEYWORD_RETRIES} times"
        else
                retry
        end
        rescue FetchingError => e
        raise ApplicationError, e.message
end