diff options
Diffstat (limited to 'activeresource/lib/active_resource')
-rw-r--r-- | activeresource/lib/active_resource/connection.rb | 9 |
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 |