module ETFC::Runner
Public Instance Methods
check_api_credentials()
click to toggle source
# File lib/etfc/runner.rb, line 58 def check_api_credentials return if ETFC::FLICKR_API_KEY || ETFC::FLICKR_SHARED_SECRET puts 'Please set FLICKR_API_KEY and FLICKR_SHARED_SECRET as ' \ 'environment variables' exit 1 end
run(keywords, output)
click to toggle source
Public: create a collage of images found on flickr for a list of keywords
keywords - array of keywords (up to 10) output - name of the resulting collage
Example:
run(['banana', 'monkey'], 'collage.jpg') # the collage will be saved to collage.jpg in your current directory
Returns Magick::ImageList; can be discarded as the collage will be saved to the supplied file name on disk
# File lib/etfc/runner.rb, line 17 def run(keywords, output) check_api_credentials images_urls = ten_img_urls(keywords) images_urls.each_with_index do |url, idx| Image.download(url, "#{idx}.jpg") end img_list = Dir[TMP_DIR + '/**.jpg'] img_list.each { |img| Image.crop(img) } Collage.create(img_list, output) end
ten_img_urls(keywords)
click to toggle source
Public: get ten image urls for keywords; if less than 10 keywords are supplied, random keywords will be selected from the system dictionary
keywords - array of keywords (up to 10)
Example:
ten_img_urls(['banana']) #=> ['http://example.com/123.jpog', '...]
Returns an array of ten image URLs
# File lib/etfc/runner.rb, line 44 def ten_img_urls(keywords) images = keywords.map do |keyword| Flickr.search(keyword) end.reject(&:nil?) dict = Dictionary.new while images.length < 10 result = Flickr.search(dict.random) images << result unless result.nil? end images.take(10) end