klout-rb 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/klout/client.rb +11 -3
- data/lib/klout/version.rb +1 -1
- data/spec/klout_spec.rb +22 -0
- metadata +15 -15
data/lib/klout/client.rb
CHANGED
@@ -8,6 +8,7 @@ require 'singleton'
|
|
8
8
|
module Klout
|
9
9
|
class Error < StandardError; end
|
10
10
|
class Error::Forbidden < Klout::Error; end
|
11
|
+
class Error::GatewayTimeout < Klout::Error; end
|
11
12
|
class Error::InternalServerError < Klout::Error; end
|
12
13
|
class Error::ServiceUnavailable < Klout::Error; end
|
13
14
|
|
@@ -106,18 +107,25 @@ module Klout
|
|
106
107
|
# Raises Klout::Error::Forbidden if Klout api key is not valid.
|
107
108
|
# Raises Klout::Error::InternalServerError if there is a server error in Klout.
|
108
109
|
# Raises Klout::Error::ServiceUnavailable if Klout endpoint is unavailable.
|
110
|
+
# Raises Klout::Error::GatewayTimeout if Klout endpoint respond with timeout.
|
111
|
+
# Raises Klout::Error for a non 200 response code.
|
109
112
|
def parse_response(response)
|
110
113
|
case response.code.to_i
|
114
|
+
when 200
|
115
|
+
body = ::MultiJson.decode(response.body)
|
116
|
+
raise Klout::Error.new(body['body']['error']) if body.has_key?('body') && body['body'].has_key?('error')
|
117
|
+
Hashie::Mash.new(body)
|
111
118
|
when 403
|
112
119
|
raise Klout::Error::Forbidden.new
|
113
120
|
when 500
|
114
121
|
raise Klout::Error::InternalServerError.new
|
115
122
|
when 503
|
116
123
|
raise Klout::Error::ServiceUnavailable.new
|
124
|
+
when 504
|
125
|
+
raise Klout::Error::GatewayTimeout.new
|
126
|
+
else
|
127
|
+
raise Klout::Error.new("#{response.code} - #{response.headers['X-Mashery-Error-Code']}")
|
117
128
|
end
|
118
|
-
body = ::MultiJson.decode(response.body)
|
119
|
-
raise Klout::Error.new(body['body']['error']) if body.has_key?('body') && body['body'].has_key?('error')
|
120
|
-
Hashie::Mash.new(body)
|
121
129
|
end
|
122
130
|
|
123
131
|
# Internal: Builds the request url.
|
data/lib/klout/version.rb
CHANGED
data/spec/klout_spec.rb
CHANGED
@@ -49,6 +49,28 @@ describe Klout::Client do
|
|
49
49
|
expect { Klout::Client.score("damiancaruso") }.to raise_error(Klout::Error::ServiceUnavailable)
|
50
50
|
end
|
51
51
|
end
|
52
|
+
|
53
|
+
context "gateway timeout" do
|
54
|
+
before do
|
55
|
+
stub_get("/1/klout.json").with(:query => @query.merge({:users => "damiancaruso"})).
|
56
|
+
to_return(:status => 504)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should raise an error if a gateway timeout is received" do
|
60
|
+
expect { Klout::Client.score("damiancaruso") }.to raise_error(Klout::Error::GatewayTimeout)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "non sucessful response" do
|
65
|
+
before do
|
66
|
+
stub_get("/1/klout.json").with(:query => @query.merge({:users => "damiancaruso"})).
|
67
|
+
to_return(:status => 502)
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should raise an error for non 200 response codes" do
|
71
|
+
expect { Klout::Client.score("damiancaruso") }.to raise_error(Klout::Error)
|
72
|
+
end
|
73
|
+
end
|
52
74
|
end
|
53
75
|
|
54
76
|
describe ".score" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: klout-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-11-17 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|
16
|
-
requirement: &
|
16
|
+
requirement: &74836180 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.2.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *74836180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: httpi
|
27
|
-
requirement: &
|
27
|
+
requirement: &74835750 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.5
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *74835750
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: multi_json
|
38
|
-
requirement: &
|
38
|
+
requirement: &74835350 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.3
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *74835350
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &74835100 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.9.2.2
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *74835100
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &74834830 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 2.7.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *74834830
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: webmock
|
71
|
-
requirement: &
|
71
|
+
requirement: &74834440 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: 1.7.7
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *74834440
|
80
80
|
description: Ruby wrapper for the Klout REST API
|
81
81
|
email:
|
82
82
|
- damian.caruso@gmail.com
|
@@ -118,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
118
|
version: '0'
|
119
119
|
segments:
|
120
120
|
- 0
|
121
|
-
hash:
|
121
|
+
hash: 714302189
|
122
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
123
|
none: false
|
124
124
|
requirements:
|
@@ -127,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
127
|
version: '0'
|
128
128
|
segments:
|
129
129
|
- 0
|
130
|
-
hash:
|
130
|
+
hash: 714302189
|
131
131
|
requirements: []
|
132
132
|
rubyforge_project: klout-rb
|
133
133
|
rubygems_version: 1.8.10
|