Class: Ollama::Transport::Mock

Inherits:
Base
  • Object
show all
Defined in:
lib/ollama/transport/mock.rb

Overview

In-memory transport for deterministic tests.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#call

Constructor Details

#initialize(config) ⇒ Mock

Returns a new instance of Mock.



21
22
23
24
# File 'lib/ollama/transport/mock.rb', line 21

def initialize(config)
  super
  @queue = []
end

Class Method Details

.clear!Object



12
13
14
# File 'lib/ollama/transport/mock.rb', line 12

def clear!
  global_queue.clear
end

.enqueue(status: 200, headers: {}, body: "{}", duration_ms: 0.0) ⇒ Object



16
17
18
# File 'lib/ollama/transport/mock.rb', line 16

def enqueue(status: 200, headers: {}, body: "{}", duration_ms: 0.0)
  global_queue << Response.new(status: status, headers: headers, body: body, raw: nil, duration_ms: duration_ms)
end

.global_queueObject



8
9
10
# File 'lib/ollama/transport/mock.rb', line 8

def global_queue
  @global_queue ||= []
end

Instance Method Details

#capabilitiesObject



43
44
45
# File 'lib/ollama/transport/mock.rb', line 43

def capabilities
  %i[request mock]
end

#enqueue(status: 200, headers: {}, body: "{}", duration_ms: 0.0) ⇒ Object



26
27
28
# File 'lib/ollama/transport/mock.rb', line 26

def enqueue(status: 200, headers: {}, body: "{}", duration_ms: 0.0)
  @queue << Response.new(status: status, headers: headers, body: body, raw: nil, duration_ms: duration_ms)
end

#request(uri:, request:, read_timeout:) ⇒ Object

Raises:



30
31
32
33
34
35
36
37
# File 'lib/ollama/transport/mock.rb', line 30

def request(uri:, request:, read_timeout:)
  _ = [uri, request, read_timeout]

  response = @queue.shift || self.class.global_queue.shift
  raise Error, "No mocked response enqueued" unless response

  response
end

#stream(_uri:, _request:, &_block) ⇒ Object

Raises:

  • (NotImplementedError)


39
40
41
# File 'lib/ollama/transport/mock.rb', line 39

def stream(_uri:, _request:, &_block)
  raise NotImplementedError, "Mock stream transport not implemented yet"
end