Class: SharedCountApi::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/shared_count_api.rb

Constant Summary collapse

HTTP_ENDPOINT =
"http://api.sharedcount.com/".freeze
HTTPS_ENDPOINT =
"https://sharedcount.appspot.com/".freeze

Instance Method Summary collapse

Constructor Details

#initialize(url, use_ssl = false) ⇒ Client

Returns a new instance of Client.



41
42
43
44
45
46
47
48
49
# 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

Instance Method Details

#buzzObject



75
76
77
# File 'lib/shared_count_api.rb', line 75

def buzz
  response["Buzz"]
end

#deliciousObject



67
68
69
# File 'lib/shared_count_api.rb', line 67

def delicious
  response["Delicious"]
end

#diggsObject



83
84
85
# File 'lib/shared_count_api.rb', line 83

def diggs
  response["Diggs"]
end

#facebook_like_countObject



59
60
61
# File 'lib/shared_count_api.rb', line 59

def facebook_like_count
  facebook_metrics["like_count"]
end

#facebook_share_countObject



63
64
65
# File 'lib/shared_count_api.rb', line 63

def facebook_share_count
  facebook_metrics["share_count"]
end

#google_plus_oneObject



71
72
73
# File 'lib/shared_count_api.rb', line 71

def google_plus_one
  response["GooglePlusOne"]
end

#linked_inObject



91
92
93
# File 'lib/shared_count_api.rb', line 91

def linked_in
  response["LinkedIn"]
end

#pinterestObject



87
88
89
# File 'lib/shared_count_api.rb', line 87

def pinterest
  response["Pinterest"]
end

#redditObject



55
56
57
# File 'lib/shared_count_api.rb', line 55

def reddit
  response["Reddit"]
end

#responseObject



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# 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_uponObject



51
52
53
# File 'lib/shared_count_api.rb', line 51

def stumble_upon
  response["StumbleUpon"]
end

#twitterObject



79
80
81
# File 'lib/shared_count_api.rb', line 79

def twitter
  response["Twitter"]
end