wordnik 4.06.02 → 4.06.04
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/Gemfile.lock +6 -6
- data/lib/wordnik/response.rb +11 -6
- data/lib/wordnik/version.rb +1 -1
- data/lib/wordnik.rb +5 -10
- data/spec/response_spec.rb +3 -9
- data/spec/wordnik_spec.rb +2 -2
- metadata +5 -3
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
wordnik (4.06.
|
4
|
+
wordnik (4.06.03)
|
5
5
|
activemodel (>= 3.0.3)
|
6
6
|
addressable (>= 2.2.4)
|
7
7
|
htmlentities (>= 4.2.4)
|
@@ -12,20 +12,20 @@ PATH
|
|
12
12
|
GEM
|
13
13
|
remote: http://rubygems.org/
|
14
14
|
specs:
|
15
|
-
activemodel (3.0.
|
16
|
-
activesupport (= 3.0.
|
15
|
+
activemodel (3.0.9)
|
16
|
+
activesupport (= 3.0.9)
|
17
17
|
builder (~> 2.1.2)
|
18
18
|
i18n (~> 0.5.0)
|
19
|
-
activesupport (3.0.
|
19
|
+
activesupport (3.0.9)
|
20
20
|
addressable (2.2.4)
|
21
21
|
builder (2.1.2)
|
22
22
|
crack (0.1.8)
|
23
23
|
diff-lcs (1.1.2)
|
24
24
|
htmlentities (4.3.0)
|
25
25
|
i18n (0.5.0)
|
26
|
-
json (1.5.
|
26
|
+
json (1.5.3)
|
27
27
|
mime-types (1.16)
|
28
|
-
nokogiri (1.
|
28
|
+
nokogiri (1.5.0)
|
29
29
|
rspec (2.5.0)
|
30
30
|
rspec-core (~> 2.5.0)
|
31
31
|
rspec-expectations (~> 2.5.0)
|
data/lib/wordnik/response.rb
CHANGED
@@ -15,27 +15,32 @@ module Wordnik
|
|
15
15
|
|
16
16
|
def initialize(raw)
|
17
17
|
self.raw = raw
|
18
|
+
|
19
|
+
case self.code
|
20
|
+
when 500..510 then raise(ServerError, self.error_message)
|
21
|
+
when 299..426 then raise(ClientError, self.error_message)
|
22
|
+
end
|
18
23
|
end
|
19
24
|
|
20
25
|
def code
|
21
26
|
raw.code
|
22
27
|
end
|
28
|
+
|
29
|
+
def error_message
|
30
|
+
body['message']
|
31
|
+
rescue
|
32
|
+
body
|
33
|
+
end
|
23
34
|
|
24
35
|
# If body is JSON, parse it
|
25
36
|
# TODO: If body is XML, parse it
|
26
37
|
# Otherwise return raw string
|
27
38
|
def body
|
28
|
-
|
29
|
-
if self.code > 399
|
30
|
-
raise AuthorizationError, raw.inspect
|
31
|
-
end
|
32
|
-
|
33
39
|
begin
|
34
40
|
JSON.parse raw.body
|
35
41
|
rescue
|
36
42
|
raw.body
|
37
43
|
end
|
38
|
-
|
39
44
|
end
|
40
45
|
|
41
46
|
def headers
|
data/lib/wordnik/version.rb
CHANGED
data/lib/wordnik.rb
CHANGED
@@ -79,7 +79,7 @@ module Wordnik
|
|
79
79
|
return if Wordnik.authenticated?
|
80
80
|
|
81
81
|
if Wordnik.configuration.username.blank? || Wordnik.configuration.password.blank?
|
82
|
-
raise
|
82
|
+
raise ClientError, "Username and password are required to authenticate."
|
83
83
|
end
|
84
84
|
|
85
85
|
request = Wordnik::Request.new(
|
@@ -89,21 +89,16 @@ module Wordnik
|
|
89
89
|
)
|
90
90
|
|
91
91
|
response_body = request.response.body
|
92
|
-
|
93
|
-
|
94
|
-
Wordnik.configuration.user_id = response_body['userId']
|
95
|
-
Wordnik.configuration.auth_token = response_body['token']
|
96
|
-
else
|
97
|
-
raise AuthorizationError, request.response.raw.inspect
|
98
|
-
end
|
92
|
+
Wordnik.configuration.user_id = response_body['userId']
|
93
|
+
Wordnik.configuration.auth_token = response_body['token']
|
99
94
|
end
|
100
95
|
|
101
96
|
end
|
102
97
|
|
103
98
|
end
|
104
99
|
|
105
|
-
class
|
100
|
+
class ServerError < StandardError
|
106
101
|
end
|
107
102
|
|
108
|
-
class
|
103
|
+
class ClientError < StandardError
|
109
104
|
end
|
data/spec/response_spec.rb
CHANGED
@@ -34,18 +34,12 @@ describe Wordnik::Response do
|
|
34
34
|
VCR.use_cassette('unauthorized_response', :record => :new_episodes) do
|
35
35
|
@unauthorized_raw = Typhoeus::Request.get("http://beta.wordnik.com/v4/word.json/dog/images/flickr")
|
36
36
|
end
|
37
|
-
@response = Wordnik::Response.new(@unauthorized_raw)
|
38
|
-
end
|
39
|
-
|
40
|
-
it "sets a 401 status code" do
|
41
|
-
@response.code.should == 401
|
42
37
|
end
|
43
38
|
|
44
|
-
it "raises an error when
|
45
|
-
expect { @
|
39
|
+
it "raises an error when initialized" do
|
40
|
+
expect { Wordnik::Response.new(@unauthorized_raw) }.to raise_error(ClientError)
|
46
41
|
end
|
47
42
|
|
48
|
-
|
49
43
|
end
|
50
44
|
|
51
45
|
describe "format" do
|
@@ -57,7 +51,7 @@ describe Wordnik::Response do
|
|
57
51
|
|
58
52
|
it "recognizes xml" do
|
59
53
|
VCR.use_cassette('xml_response_request', :record => :new_episodes) do
|
60
|
-
@raw = Typhoeus::Request.get("http://beta.wordnik.com/v4/word.xml
|
54
|
+
@raw = Typhoeus::Request.get("http://beta.wordnik.com/v4/word.xml")
|
61
55
|
end
|
62
56
|
@response = Wordnik::Response.new(@raw)
|
63
57
|
@response.format.should == :xml
|
data/spec/wordnik_spec.rb
CHANGED
@@ -55,7 +55,7 @@ describe Wordnik do
|
|
55
55
|
config.password = 'wrong!'
|
56
56
|
config.base_uri = "beta.wordnik.com/v4"
|
57
57
|
end
|
58
|
-
|
58
|
+
expect { Wordnik.authenticate }.to raise_error(ClientError)
|
59
59
|
Wordnik.authenticated?.should == false
|
60
60
|
end
|
61
61
|
|
@@ -67,7 +67,7 @@ describe Wordnik do
|
|
67
67
|
config.password = nil
|
68
68
|
config.base_uri = "beta.wordnik.com/v4"
|
69
69
|
end
|
70
|
-
|
70
|
+
expect { Wordnik.authenticate }.to raise_error(ClientError, /username and password are required/i)
|
71
71
|
Wordnik.authenticated?.should == false
|
72
72
|
end
|
73
73
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: wordnik
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 4.06.
|
5
|
+
version: 4.06.04
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Zeke Sikelianos
|
@@ -11,7 +11,8 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2011-07-12 00:00:00
|
14
|
+
date: 2011-07-12 00:00:00 -07:00
|
15
|
+
default_executable:
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
17
18
|
name: typhoeus
|
@@ -174,6 +175,7 @@ files:
|
|
174
175
|
- spec/spec_helper.rb
|
175
176
|
- spec/wordnik_spec.rb
|
176
177
|
- wordnik.gemspec
|
178
|
+
has_rdoc: true
|
177
179
|
homepage: http://developer.wordnik.com
|
178
180
|
licenses: []
|
179
181
|
|
@@ -197,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
199
|
requirements: []
|
198
200
|
|
199
201
|
rubyforge_project: wordnik
|
200
|
-
rubygems_version: 1.
|
202
|
+
rubygems_version: 1.5.1
|
201
203
|
signing_key:
|
202
204
|
specification_version: 3
|
203
205
|
summary: A ruby wrapper for the Wordnik API
|