Class: LLM::Transport::Request
- Inherits:
-
Object
- Object
- LLM::Transport::Request
- Defined in:
- lib/llm/transport/request.rb
Overview
LLM::Transport::Request defines the normalized request interface expected by transports.
Providers build request objects through this class, then hand them to a transport for execution without depending on any specific HTTP client library.
Instance Attribute Summary collapse
- #body ⇒ Object?
- #body_stream ⇒ IO?
- #method ⇒ String readonly
- #path ⇒ String readonly
- #headers ⇒ Hash readonly
Class Method Summary collapse
- .post(path, headers = nil) ⇒ LLM::Transport::Request
- .put(path, headers = nil) ⇒ LLM::Transport::Request
- .patch(path, headers = nil) ⇒ LLM::Transport::Request
- .delete(path, headers = nil) ⇒ LLM::Transport::Request
- .get(path, headers = nil) ⇒ LLM::Transport::Request
Instance Method Summary collapse
- #inspect ⇒ String
- #initialize(method, path, headers = nil) ⇒ LLM::Transport::Request constructor
- #[](key) ⇒ String?
- #[]=(key, value) ⇒ String
- #each_header {|key, value| ... } ⇒ Hash
Constructor Details
#initialize(method, path, headers = nil) ⇒ LLM::Transport::Request
77 78 79 80 81 82 |
# File 'lib/llm/transport/request.rb', line 77 def initialize(method, path, headers = nil) @method = method.to_s.upcase @path = path.to_s @headers = {} (headers || {}).each { self[_1] = _2 } end |
Instance Attribute Details
#body_stream ⇒ IO?
18 19 20 |
# File 'lib/llm/transport/request.rb', line 18 def body_stream @body_stream end |
#method ⇒ String (readonly)
22 23 24 |
# File 'lib/llm/transport/request.rb', line 22 def method @method end |
#path ⇒ String (readonly)
26 27 28 |
# File 'lib/llm/transport/request.rb', line 26 def path @path end |
#headers ⇒ Hash (readonly)
30 31 32 |
# File 'lib/llm/transport/request.rb', line 30 def headers @headers end |
Class Method Details
.post(path, headers = nil) ⇒ LLM::Transport::Request
44 45 46 |
# File 'lib/llm/transport/request.rb', line 44 def self.post(path, headers = nil) new("POST", path, headers) end |
.put(path, headers = nil) ⇒ LLM::Transport::Request
52 53 54 |
# File 'lib/llm/transport/request.rb', line 52 def self.put(path, headers = nil) new("PUT", path, headers) end |
.patch(path, headers = nil) ⇒ LLM::Transport::Request
60 61 62 |
# File 'lib/llm/transport/request.rb', line 60 def self.patch(path, headers = nil) new("PATCH", path, headers) end |
.delete(path, headers = nil) ⇒ LLM::Transport::Request
68 69 70 |
# File 'lib/llm/transport/request.rb', line 68 def self.delete(path, headers = nil) new("DELETE", path, headers) end |
.get(path, headers = nil) ⇒ LLM::Transport::Request
36 37 38 |
# File 'lib/llm/transport/request.rb', line 36 def self.get(path, headers = nil) new("GET", path, headers) end |
Instance Method Details
#inspect ⇒ String
109 110 111 112 113 |
# File 'lib/llm/transport/request.rb', line 109 def inspect "#<#{self.class.name}:0x#{object_id.to_s(16)}" \ " @method=#{@method} @path=#{@path}" \ " @headers=#{@headers.inspect}>" end |
#[](key) ⇒ String?
87 88 89 |
# File 'lib/llm/transport/request.rb', line 87 def [](key) @headers[normalize_header(key)] end |
#[]=(key, value) ⇒ String
95 96 97 |
# File 'lib/llm/transport/request.rb', line 95 def []=(key, value) @headers[normalize_header(key)] = value.to_s end |
#each_header {|key, value| ... } ⇒ Hash
103 104 105 |
# File 'lib/llm/transport/request.rb', line 103 def each_header(&block) @headers.each(&block) end |