Module: OllamaChat::Utils::Fetcher::ResponseMetadata
- Defined in:
- lib/ollama_chat/utils/fetcher.rb
Overview
A module that extends IO objects with content type metadata and expiration tracking.
This module provides a way to attach MIME content type information and cache expiration details to IO objects, enabling them to carry metadata about their source and caching behavior. It is primarily used by fetcher implementations to decorate response objects with additional context for processing and caching decisions.
Instance Attribute Summary collapse
-
#content_type ⇒ String
The content type of the object.
-
#ex ⇒ Integer
The expiry value in seconds.
-
#response_reason ⇒ String
The HTTP response reason phrase.
-
#response_status ⇒ Integer
The HTTP response status code.
Class Method Summary collapse
-
.as_text(text) ⇒ StringIO
Wraps a string in a
StringIOdecorated withResponseMetadataand atext/plaincontent type. -
.failed(msg) ⇒ StringIO
The failed method creates a StringIO object with a text/plain content type.
Instance Method Summary collapse
-
#http? ⇒ Boolean
Returns true if the metadata belongs to an HTTP response.
Instance Attribute Details
#content_type ⇒ String
Returns the content type of the object.
40 41 42 |
# File 'lib/ollama_chat/utils/fetcher.rb', line 40 def content_type @content_type end |
#ex ⇒ Integer
Returns the expiry value in seconds.
44 45 46 |
# File 'lib/ollama_chat/utils/fetcher.rb', line 44 def ex @ex end |
#response_reason ⇒ String
Returns the HTTP response reason phrase.
52 53 54 |
# File 'lib/ollama_chat/utils/fetcher.rb', line 52 def response_reason @response_reason end |
#response_status ⇒ Integer
Returns the HTTP response status code.
48 49 50 |
# File 'lib/ollama_chat/utils/fetcher.rb', line 48 def response_status @response_status end |
Class Method Details
.as_text(text) ⇒ StringIO
Wraps a string in a StringIO decorated with ResponseMetadata
and a text/plain content type.
Used as the shared factory for synthetic text responses (e.g. failed) and for converting plain-text tool output into an IO that the rest of the pipeline (parse_source, document_policy, etc.) can consume uniformly.
89 90 91 92 93 |
# File 'lib/ollama_chat/utils/fetcher.rb', line 89 def self.as_text(text) object = StringIO.new(text).extend(self) object.content_type = MIME::Types['text/plain'].first object end |
.failed(msg) ⇒ StringIO
The failed method creates a StringIO object with a text/plain content type.
This method is used to generate a failed response object that can be used when an operation does not succeed. It initializes a new StringIO object and extends it with the current class, setting its content type to text/plain.
74 75 76 |
# File 'lib/ollama_chat/utils/fetcher.rb', line 74 def self.failed(msg) as_text(msg) end |
Instance Method Details
#http? ⇒ Boolean
Returns true if the metadata belongs to an HTTP response.
This is determined by the presence of a response status code.
60 61 62 |
# File 'lib/ollama_chat/utils/fetcher.rb', line 60 def http? !response_status.nil? end |