class GoogleImages::URLBuilder

Builds Google Images API - compatible URL

Constants

API_URL

Public Class Methods

build(query, auth) click to toggle source
# File lib/google_images/url_builder.rb, line 9
def build(query, auth)
  url = "#{API_URL}?q=#{query.search_term}&#{api_keys(auth)}&#{parameters(query)}"
  URI.encode(url)
rescue => e
  raise GoogleImages::Errors::URLGenerationError
end

Private Class Methods

api_keys(auth) click to toggle source
# File lib/google_images/url_builder.rb, line 17
def api_keys(auth)
  "key=#{auth.key}&cx=#{auth.cx}"
end
parameters(query) click to toggle source
# File lib/google_images/url_builder.rb, line 21
def parameters(query)
  google_api_params = {
    searchType:       query.api_params[:search_type] || 'image',
    alt:              query.api_params[:alt] || 'json',
    safe:             query.api_params[:safe] || 'off',
    num:              query.api_params[:num] || nil,
    start:            query.api_params[:start] || nil,
    rights:           query.api_params[:rights] || nil,
    imgSize:          query.api_params[:img_size] || nil,
    imgType:          query.api_params[:img_type] || nil,
    imgDominantColor: query.api_params[:img_dominant_color] || nil,
    imgColorType:     query.api_params[:img_color_type] || nil,
    c2coff:           query.api_params[:c2coff] || nil,
    cr:               query.api_params[:cr] || nil,
    filter:           query.api_params[:filter] || nil,
    googlehost:       query.api_params[:googlehost] || nil
  }

  google_api_params.map do |key, value|
    value ? "#{key}=#{value}" : nil
  end.compact.join("&")
end