class DocomoImageRecognition::Client
Public Class Methods
new(api_key)
click to toggle source
# File lib/docomo_image_recognition/client.rb, line 3 def initialize(api_key) base_url = DocomoImageRecognition.configuration.base_url @base_url = base_url + "?APIKEY=#{api_key}" end
Public Instance Methods
recognize(data, options = default_options)
click to toggle source
# File lib/docomo_image_recognition/client.rb, line 8 def recognize(data, options = default_options) url = "#{@base_url}&#{to_query(options)}" curl = Curl::Easy.new(url) curl.headers['Content-Type'] = 'application/octet-stream' curl.post_body = data curl.http_post body = JSON.parse(curl.body_str) raise_on_error!(body, curl.status) body end
recognize_from_file(path, options = default_options)
click to toggle source
# File lib/docomo_image_recognition/client.rb, line 19 def recognize_from_file(path, options = default_options) data = File.read(path) recognize(data, options) end
recognize_from_url(url, options = default_options)
click to toggle source
# File lib/docomo_image_recognition/client.rb, line 24 def recognize_from_url(url, options = default_options) data = download_file(url) recognize(data, options) end
Private Instance Methods
default_options()
click to toggle source
# File lib/docomo_image_recognition/client.rb, line 36 def default_options { recog: 'product-all', numOfCandidates: 10 } end
download_file(url)
click to toggle source
# File lib/docomo_image_recognition/client.rb, line 31 def download_file(url) uri = URI(url) Net::HTTP.get(uri) end
raise_on_error!(body, status)
click to toggle source
# File lib/docomo_image_recognition/client.rb, line 47 def raise_on_error!(body, status) case status.split(' ')[0].to_i when 200 then return when 401 then fail ApiError.new(body), 'not authorized' when 400 then fail ApiError.new(body), 'bad request' end end
to_query(options)
click to toggle source
# File lib/docomo_image_recognition/client.rb, line 40 def to_query(options) options .reject { |_k, v| v.nil? } .map { |k, v| k.to_s + '=' + v.to_s } .join('&') end