class ImageInfo::Processor

Attributes

images[R]
options[R]

Public Class Methods

new(urls, options = { max_concurrency: ::ImageInfo.config.max_concurrency }) click to toggle source
# File lib/image_info/processor.rb, line 11
def initialize(urls, options = { max_concurrency: ::ImageInfo.config.max_concurrency })
  @images  = Array(urls).map { |uri| ::ImageInfo::Image.new(uri) }.keep_if(&:valid?)
  @options = options
end

Public Instance Methods

process() click to toggle source
# File lib/image_info/processor.rb, line 16
def process
  images.each { |image| hydra.queue(::ImageInfo::RequestHandler.new(image).build) }
  hydra.run

  images
end

Private Instance Methods

hydra() click to toggle source
# File lib/image_info/processor.rb, line 25
def hydra
  @hydra ||= ::Typhoeus::Hydra.new(max_concurrency: options[:max_concurrency].to_i)
end