Class: Gack::Response
- Inherits:
-
Object
- Object
- Gack::Response
- Defined in:
- lib/gack/response.rb,
lib/gack/response/status_codes.rb
Overview
Build a Gemini response
Defined Under Namespace
Classes: StatusCodes
Constant Summary collapse
- InvalidStatusCodeError =
Class.new(StandardError)
- BodyNotAllowedError =
Class.new(StandardError)
- MetaTooLongError =
Class.new(StandardError)
- InvalidMimeError =
Class.new(StandardError)
- META_MAX_BYTES =
1024- MIME =
{ text: 'text/gemini' }.freeze
Instance Attribute Summary collapse
-
#body ⇒ Object
readonly
Returns the value of attribute body.
-
#meta ⇒ Object
readonly
Returns the value of attribute meta.
-
#status_code ⇒ Object
readonly
Returns the value of attribute status_code.
Instance Method Summary collapse
- #finalize ⇒ Object
-
#initialize(status_code, meta = nil, body = nil) ⇒ Response
constructor
A new instance of Response.
Constructor Details
#initialize(status_code, meta = nil, body = nil) ⇒ Response
Returns a new instance of Response.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/gack/response.rb', line 21 def initialize(status_code, = nil, body = nil) @status_code = Integer(status_code) raise InvalidStatusCodeError unless StatusCodes::VALID_CODES.include?(@status_code) = raise MetaTooLongError if && .bytesize > META_MAX_BYTES raise InvalidMimeError if @status_code == StatusCodes::SUCCESS && .nil? @body = body raise BodyNotAllowedError if @body && @status_code != StatusCodes::SUCCESS end |
Instance Attribute Details
#body ⇒ Object (readonly)
Returns the value of attribute body.
19 20 21 |
# File 'lib/gack/response.rb', line 19 def body @body end |
#meta ⇒ Object (readonly)
Returns the value of attribute meta.
19 20 21 |
# File 'lib/gack/response.rb', line 19 def end |
#status_code ⇒ Object (readonly)
Returns the value of attribute status_code.
19 20 21 |
# File 'lib/gack/response.rb', line 19 def status_code @status_code end |
Instance Method Details
#finalize ⇒ Object
36 37 38 39 40 |
# File 'lib/gack/response.rb', line 36 def finalize return "#{status_code}\r\n" unless "#{status_code} #{meta}\r\n#{body}" end |