Class: Riffer::Providers::Mock
- Defined in:
- lib/riffer/providers/mock.rb
Overview
Mock provider for mocking LLM responses in tests; no external gems required.
Constant Summary
Constants inherited from Base
Instance Attribute Summary collapse
-
#calls ⇒ Object
readonly
Array of recorded method calls for assertions.
Class Method Summary collapse
-
.skills_adapter(model = nil) ⇒ Object
Returns the skill adapter for the mock model — XML when the model name contains
claude(mirroring a real Claude provider), else Markdown.
Instance Method Summary collapse
-
#clear_stubs ⇒ Object
Clears all stubbed responses.
-
#initialize(**options) ⇒ Mock
constructor
responses:pre-configures canned responses (same shape as#stub_response), typically set via provider_options responses: […]. -
#stub_response(content, tool_calls: [], token_usage: nil) ⇒ Object
Stubs the next response; call repeatedly to queue several.
Methods inherited from Base
Constructor Details
#initialize(**options) ⇒ Mock
32 33 34 35 36 37 |
# File 'lib/riffer/providers/mock.rb', line 32 def initialize(**) @responses = ([:responses] || []).map { |r| normalize_response(r) } @current_index = 0 @calls = [] @stubbed_responses = [] end |
Instance Attribute Details
#calls ⇒ Object (readonly)
Array of recorded method calls for assertions.
20 21 22 |
# File 'lib/riffer/providers/mock.rb', line 20 def calls @calls end |
Class Method Details
.skills_adapter(model = nil) ⇒ Object
Returns the skill adapter for the mock model — XML when the model name contains claude (mirroring a real Claude provider), else Markdown. – : (?String?) -> singleton(Riffer::Skills::Adapter)
14 15 16 17 |
# File 'lib/riffer/providers/mock.rb', line 14 def self.skills_adapter(model = nil) return Riffer::Skills::XmlAdapter if model&.include?("claude") Riffer::Skills::MarkdownAdapter end |
Instance Method Details
#clear_stubs ⇒ Object
Clears all stubbed responses.
– : () -> void
55 56 57 |
# File 'lib/riffer/providers/mock.rb', line 55 def clear_stubs @stubbed_responses = [] end |
#stub_response(content, tool_calls: [], token_usage: nil) ⇒ Object
Stubs the next response; call repeatedly to queue several.
provider.stub_response("Hello")
provider.stub_response("", tool_calls: [{name: "my_tool", arguments: '{"key":"value"}'}])
provider.stub_response("Final response", token_usage: Riffer::Providers::TokenUsage.new(input_tokens: 10, output_tokens: 5))
– : (String, ?tool_calls: Array[Hash[Symbol, untyped]], ?token_usage: Riffer::Providers::TokenUsage?) -> void
47 48 49 |
# File 'lib/riffer/providers/mock.rb', line 47 def stub_response(content, tool_calls: [], token_usage: nil) @stubbed_responses << normalize_response(content: content, tool_calls: tool_calls, token_usage: token_usage) end |