aboutsummaryrefslogtreecommitdiffstats
path: root/activeresource/lib
diff options
context:
space:
mode:
Diffstat (limited to 'activeresource/lib')
-rw-r--r--activeresource/lib/active_resource/connection.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/activeresource/lib/active_resource/connection.rb b/activeresource/lib/active_resource/connection.rb
index bb3993512e..ef4d92451c 100644
--- a/activeresource/lib/active_resource/connection.rb
+++ b/activeresource/lib/active_resource/connection.rb
@@ -24,6 +24,13 @@ module ActiveResource
class ServerError < ConnectionError; end # 5xx Server Error
+ # 405 Method Not Allowed
+ class MethodNotAllowed < ClientError
+ def allowed_methods
+ @response['Allow'].split(',').map { |verb| verb.strip.downcase.to_sym }
+ end
+ end
+
# Class to handle connections to remote services.
class Connection
attr_reader :site
@@ -99,6 +106,8 @@ module ActiveResource
response
when 404
raise(ResourceNotFound.new(response))
+ when 405
+ raise(MethodNotAllowed.new(response))
when 409
raise(ResourceConflict.new(response))
when 422