Sha256: 6f45dd54370d148525488251c6c3465223a82a1d6d3342f160d60fe98567f490

Contents?: true

Size: 1.96 KB

Versions: 3

Compression:

Stored size: 1.96 KB

Contents

module Overlord

  class GoogleBase
  
    extend Overlord::JsonParser
    
    # api_key_id:   Valid Google access key (optional)
    def self.api_key_id=(val)
      @api_key_id = val
    end
    
    def self.api_key_id
      @api_key_id
    end
    
    # referer:      Url of the website making request.  Required by Google.
    def self.referer=(val)
      @referer = val
    end

    def self.referer
      @referer
    end
    
    # userip:      Ip address of user on whose behave a request is made. Helps reduce the chance that google will ban the server.
    def self.user_ip=(val)
      @userip = val
    end

    def self.user_ip
      @userip
    end
    
    # Add standard items to the google query
    def self.build_google_query(query_options)
      key = self.api_key_id || Overlord.configuration.google_ajax_api_key rescue ''
      query_options[:v] = '1.0'
      query_options[:key] = key if key
      query_options[:userip] = self.user_ip if self.user_ip
      query_options
    end
    
    # Gets and parses json from a given url
    # uri:      Uri from which to obtain json
    # options:  Options to be sent
    #           :query - query
    #           :headers - headers 
    def self.get(uri, options = {})
      header_params = { "UserAgent" => "Ruby/#{RUBY_VERSION}" }
      ref = self.referer || Overlord.configuration.request_referer rescue nil
      header_params["Referer"] = ref if ref
      header_params = header_params.merge(options[:headers]) if options[:headers]
      # to_params comes from the httparty gem
      params = "?#{options[:query].to_params}" if options[:query]
      buffer = open("#{uri}#{params}", header_params).read
      
      return parse_json(buffer) || {}
    end
    
    def self.parse_name(name)
      return '' if name.blank?
      names = name.split(' ')
      return '' if names.length <= 0
      return [names[0], names[0]] if names.length == 1
      [names[0], names.slice(1, names.length).join(' ')]
    end
    
  end
  
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
overlord-3.0.2 lib/overlord/google_base.rb
overlord-3.0.1 lib/overlord/google_base.rb
overlord-3.0.0 lib/overlord/google_base.rb