rest-client 0.8.1 → 0.8.2

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.

Potentially problematic release.


This version of rest-client might be problematic. Click here for more details.

data/Rakefile CHANGED
@@ -31,7 +31,7 @@ require 'rake/gempackagetask'
31
31
  require 'rake/rdoctask'
32
32
  require 'fileutils'
33
33
 
34
- version = "0.8.1"
34
+ version = "0.8.2"
35
35
  name = "rest-client"
36
36
 
37
37
  spec = Gem::Specification.new do |s|
@@ -7,6 +7,19 @@ module RestClient
7
7
  end
8
8
  end
9
9
 
10
+ # Base RestClient exception when there's a response available
11
+ class ExceptionWithResponse < Exception
12
+ attr_accessor :response
13
+
14
+ def initialize(response=nil)
15
+ @response = response
16
+ end
17
+
18
+ def http_code
19
+ @response.code.to_i if @response
20
+ end
21
+ end
22
+
10
23
  # A redirect was encountered; caught by execute to retry with the new url.
11
24
  class Redirect < Exception
12
25
  ErrorMessage = "Redirect"
@@ -18,12 +31,12 @@ module RestClient
18
31
  end
19
32
 
20
33
  # Authorization is required to access the resource specified.
21
- class Unauthorized < Exception
34
+ class Unauthorized < ExceptionWithResponse
22
35
  ErrorMessage = 'Unauthorized'
23
36
  end
24
37
 
25
38
  # No resource was found at the given URL.
26
- class ResourceNotFound < Exception
39
+ class ResourceNotFound < ExceptionWithResponse
27
40
  ErrorMessage = 'Resource not found'
28
41
  end
29
42
 
@@ -46,17 +59,7 @@ module RestClient
46
59
  # You can get the status code by e.http_code, or see anything about the
47
60
  # response via e.response. For example, the entire result body (which is
48
61
  # probably an HTML error page) is e.response.body.
49
- class RequestFailed < Exception
50
- attr_accessor :response
51
-
52
- def initialize(response=nil)
53
- @response = response
54
- end
55
-
56
- def http_code
57
- @response.code.to_i if @response
58
- end
59
-
62
+ class RequestFailed < ExceptionWithResponse
60
63
  def message
61
64
  "HTTP status code #{http_code}"
62
65
  end
data/lib/rest_client.rb CHANGED
@@ -201,9 +201,9 @@ module RestClient
201
201
 
202
202
  raise Redirect, url
203
203
  elsif res.code == "401"
204
- raise Unauthorized
204
+ raise Unauthorized, res
205
205
  elsif res.code == "404"
206
- raise ResourceNotFound
206
+ raise ResourceNotFound, res
207
207
  else
208
208
  raise RequestFailed, res
209
209
  end
@@ -29,6 +29,16 @@ describe RestClient::RequestFailed do
29
29
  end
30
30
  end
31
31
 
32
+ describe RestClient::ResourceNotFound do
33
+ it "also has the http response attached" do
34
+ begin
35
+ raise RestClient::ResourceNotFound, :response
36
+ rescue RestClient::ResourceNotFound => e
37
+ e.response.should == :response
38
+ end
39
+ end
40
+ end
41
+
32
42
  describe "backwards compatibility" do
33
43
  it "alias RestClient::Request::Redirect to RestClient::Redirect" do
34
44
  RestClient::Request::Redirect.should == RestClient::Redirect
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Wiggins
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-18 00:00:00 -08:00
12
+ date: 2008-12-03 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -23,13 +23,13 @@ extra_rdoc_files: []
23
23
 
24
24
  files:
25
25
  - Rakefile
26
+ - lib/request_errors.rb
26
27
  - lib/resource.rb
27
28
  - lib/rest_client.rb
28
- - lib/request_errors.rb
29
- - spec/resource_spec.rb
29
+ - spec/base.rb
30
30
  - spec/request_errors_spec.rb
31
+ - spec/resource_spec.rb
31
32
  - spec/rest_client_spec.rb
32
- - spec/base.rb
33
33
  has_rdoc: true
34
34
  homepage: http://rest-client.heroku.com/
35
35
  post_install_message:
@@ -52,7 +52,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
52
  requirements: []
53
53
 
54
54
  rubyforge_project: rest-client
55
- rubygems_version: 1.2.0
55
+ rubygems_version: 1.3.1
56
56
  signing_key:
57
57
  specification_version: 2
58
58
  summary: Simple REST client for Ruby, inspired by microframework syntax for specifying actions.