From 639039f104ce489271891d3b324e78e60bc3792d Mon Sep 17 00:00:00 2001 From: Jimmy Zhang Date: Wed, 19 Feb 2025 11:26:06 +1100 Subject: [PATCH] fix: passing block to the asssistant initializer --- lib/langchainrb_overrides/assistant.rb | 4 ++-- spec/langchainrb_overrides/assistant_spec.rb | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/langchainrb_overrides/assistant.rb b/lib/langchainrb_overrides/assistant.rb index 20e521d..14c8f26 100644 --- a/lib/langchainrb_overrides/assistant.rb +++ b/lib/langchainrb_overrides/assistant.rb @@ -8,9 +8,9 @@ class Assistant alias_method :original_initialize, :initialize - def initialize(id: nil, **kwargs) # rubocop:disable Style/ArgumentsForwarding + def initialize(id: nil, **kwargs, &block) # rubocop:disable Style/ArgumentsForwarding @id = id - original_initialize(**kwargs) # rubocop:disable Style/ArgumentsForwarding + original_initialize(**kwargs, &block) # rubocop:disable Style/ArgumentsForwarding end def save diff --git a/spec/langchainrb_overrides/assistant_spec.rb b/spec/langchainrb_overrides/assistant_spec.rb index 453c34e..b51d283 100644 --- a/spec/langchainrb_overrides/assistant_spec.rb +++ b/spec/langchainrb_overrides/assistant_spec.rb @@ -44,9 +44,12 @@ def update!(*) end RSpec.describe Langchain::Assistant do + let(:test_block) { proc { "test block executed" } } let(:tools) { [] } let(:llm) { Langchain::LLM::GoogleGemini.new(api_key: "123") } - let(:assistant) { described_class.new(llm: llm, id: nil, tools: tools, instructions: "Test instructions", tool_choice: "auto") } + let(:assistant) do + described_class.new(llm: llm, id: nil, tools: tools, instructions: "Test instructions", tool_choice: "auto", &test_block) + end describe "#initialize" do it "sets the id and calls original_initialize" do @@ -55,6 +58,11 @@ def update!(*) expect(assistant.instructions).to eq("Test instructions") expect(assistant.tool_choice).to eq("auto") end + + it "passes the block to the original_initialize" do + assigned_block = assistant.instance_variable_get(:@block) + expect(assigned_block).to eq(test_block) + end end describe "#save" do