Class: Imagga::ExtractOptions

Inherits:
BaseOptions show all
Defined in:
lib/imagga/extract_options.rb

Instance Attribute Summary

Attributes inherited from BaseOptions

#api_key, #api_secret

Instance Method Summary collapse

Methods inherited from BaseOptions

#base_options, #initialize, #sign

Constructor Details

This class inherits a constructor from Imagga::BaseOptions

Instance Method Details

#build_ids(urls_or_images) ⇒ Object



48
49
50
51
52
# File 'lib/imagga/extract_options.rb', line 48

def build_ids(urls_or_images)
  ids = [urls_or_images].flatten.map{ |o| o.id rescue 0 }
  return if ids.uniq == [0]
  ids.join(',')
end

#build_urls(urls_or_images) ⇒ Object



44
45
46
# File 'lib/imagga/extract_options.rb', line 44

def build_urls(urls_or_images)
  [urls_or_images].flatten.map{ |o| o.url rescue o }.join(',')
end

#options(urls_or_images, additional_options = {}) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/imagga/extract_options.rb', line 25

def options(urls_or_images, additional_options={})
  options = base_options.merge(
    method: 'imagga.colorsearch.extract',
    urls: build_urls(urls_or_images),
  )

  if ids = build_ids(urls_or_images)
    options.merge!(ids: ids)
  end

  [:extract_overall_colors, :extract_object_colors].each do |key|
    if additional_options.keys.include?(key) && (value = additional_options[key] ? 1 : 0)
      options.merge!(key => value)
    end
  end

  options.merge!(sig: sign(options))
end