Class: Ezid::Response Private
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Ezid::Response
- Defined in:
- lib/ezid/responses/response.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
A response from the EZID service.
Direct Known Subclasses
BatchDownloadResponse, IdentifierResponse, LoginResponse, LogoutResponse, ServerStatusResponse
Constant Summary collapse
- SUCCESS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Success response status
"success".freeze
- ERROR =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Error response status
"error".freeze
Instance Method Summary collapse
-
#content ⇒ Array
private
The body of the response split into: status line and rest of body.
-
#error? ⇒ Boolean
private
Whether the outcome was an error.
- #error_class ⇒ Object private
-
#exception ⇒ Ezid::Error
private
Returns an exception instance if there was an error.
-
#initialize(http_response) ⇒ Response
constructor
private
A new instance of Response.
-
#message ⇒ String
private
The EZID status message.
-
#outcome ⇒ String
private
The outcome of the request - “success” or “error”.
-
#status ⇒ String
private
The response status – “success” or “error”.
-
#status_line ⇒ String
private
The status line of the response.
-
#success? ⇒ Boolean
private
Whether the outcome was a success.
-
#uri_path ⇒ String
private
The URI path of the request.
Constructor Details
#initialize(http_response) ⇒ Response
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Response.
17 18 19 20 21 22 23 |
# File 'lib/ezid/responses/response.rb', line 17 def initialize(http_response) super unless status_line =~ /^(#{SUCCESS}|#{ERROR}): / raise UnexpectedResponseError, __getobj__.body end end |
Instance Method Details
#content ⇒ Array
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The body of the response split into: status line and rest of body
39 40 41 |
# File 'lib/ezid/responses/response.rb', line 39 def content @content ||= body.split(/\r?\n/, 2) end |
#error? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Whether the outcome was an error
57 58 59 |
# File 'lib/ezid/responses/response.rb', line 57 def error? outcome == ERROR end |
#error_class ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
79 80 81 82 83 84 85 86 87 88 |
# File 'lib/ezid/responses/response.rb', line 79 def error_class case when /no such identifier/ IdentifierNotFoundError when /identifier status does not support deletion/ DeletionError else Error end end |
#exception ⇒ Ezid::Error
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns an exception instance if there was an error
69 70 71 |
# File 'lib/ezid/responses/response.rb', line 69 def exception error_class.new() if error? end |
#message ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The EZID status message
51 52 53 |
# File 'lib/ezid/responses/response.rb', line 51 def status.last end |
#outcome ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The outcome of the request - “success” or “error”
45 46 47 |
# File 'lib/ezid/responses/response.rb', line 45 def outcome status.first end |
#status ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The response status – “success” or “error”
27 28 29 |
# File 'lib/ezid/responses/response.rb', line 27 def status @status ||= status_line.split(/: /) end |
#status_line ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The status line of the response
33 34 35 |
# File 'lib/ezid/responses/response.rb', line 33 def status_line content[0] end |
#success? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Whether the outcome was a success
63 64 65 |
# File 'lib/ezid/responses/response.rb', line 63 def success? outcome == SUCCESS end |
#uri_path ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The URI path of the request
75 76 77 |
# File 'lib/ezid/responses/response.rb', line 75 def uri_path __getobj__.uri.path end |