class SharedCountApi::Client

Constants

HTTPS_ENDPOINT
HTTP_ENDPOINT

Public Class Methods

new(url, use_ssl = false) click to toggle source
# File lib/shared_count_api.rb, line 41
def initialize(url, use_ssl = false)
  @url, @use_ssl = URI.escape(url), use_ssl

  if SharedCountApi.url
    @endpoint = SharedCountApi.url
  else
    @endpoint = @use_ssl ? HTTPS_ENDPOINT : HTTP_ENDPOINT
  end
end

Public Instance Methods

buzz() click to toggle source
# File lib/shared_count_api.rb, line 75
def buzz
  response["Buzz"]
end
delicious() click to toggle source
# File lib/shared_count_api.rb, line 67
def delicious
  response["Delicious"]
end
diggs() click to toggle source
# File lib/shared_count_api.rb, line 83
def diggs
  response["Diggs"]
end
facebook_like_count() click to toggle source
# File lib/shared_count_api.rb, line 59
def facebook_like_count
  facebook_metrics["like_count"]
end
facebook_share_count() click to toggle source
# File lib/shared_count_api.rb, line 63
def facebook_share_count
  facebook_metrics["share_count"]
end
google_plus_one() click to toggle source
# File lib/shared_count_api.rb, line 71
def google_plus_one
  response["GooglePlusOne"]
end
linked_in() click to toggle source
# File lib/shared_count_api.rb, line 91
def linked_in
  response["LinkedIn"]
end
pinterest() click to toggle source
# File lib/shared_count_api.rb, line 87
def pinterest
  response["Pinterest"]
end
reddit() click to toggle source
# File lib/shared_count_api.rb, line 55
def reddit
  response["Reddit"]
end
response() click to toggle source
# File lib/shared_count_api.rb, line 95
def response
  @response ||= begin
    begin
      uri = if SharedCountApi.apikey
        URI("#{@endpoint}?url=#{@url}&apikey=#{SharedCountApi.apikey}")
      else
        URI("#{@endpoint}?url=#{@url}")
      end

      res = Net::HTTP.get_response(uri)

      case res
      when Net::HTTPUnauthorized, Net::HTTPBadRequest then
        json = JSON.parse(res.body)
        raise Error.new(json["Type"], json["Error"])
      when Net::HTTPSuccess then
        JSON.parse(res.body)
      end
    rescue URI::InvalidURIError
      raise INVALID_URL
    end
  end
end
stumble_upon() click to toggle source
# File lib/shared_count_api.rb, line 51
def stumble_upon
  response["StumbleUpon"]
end
twitter() click to toggle source
# File lib/shared_count_api.rb, line 79
def twitter
  response["Twitter"]
end

Private Instance Methods

facebook_metrics() click to toggle source
# File lib/shared_count_api.rb, line 121
def facebook_metrics
  @facebook_metrics ||= response["Facebook"].is_a?(Hash) ? response["Facebook"] : Hash.new(0)
end