Skip to content

Commit 8d1a66b

Browse files
jsonbaileyclaude
andcommitted
refactor: Make AIConfig inherit from AIConfigDefault
AIConfigDefault serves as the base class holding the shared attr_readers (enabled, messages, model, provider) and to_h. AIConfig extends it with tracker_factory and create_tracker only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 222c264 commit 8d1a66b

1 file changed

Lines changed: 2 additions & 18 deletions

File tree

lib/server/ai/client.rb

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,10 @@ def to_h
140140
# a {#create_tracker} factory. Do not instantiate directly — use
141141
# {AIConfigDefault} for fallback values.
142142
#
143-
class AIConfig
144-
attr_reader :enabled, :messages, :model, :provider
145-
143+
class AIConfig < AIConfigDefault
146144
def initialize(tracker_factory:, enabled: nil, model: nil, messages: nil, provider: nil)
147-
@enabled = enabled
148-
@messages = messages
145+
super(enabled: enabled, model: model, messages: messages, provider: provider)
149146
@tracker_factory = tracker_factory
150-
@model = model
151-
@provider = provider
152147
end
153148

154149
#
@@ -159,17 +154,6 @@ def initialize(tracker_factory:, enabled: nil, model: nil, messages: nil, provid
159154
def create_tracker
160155
@tracker_factory.call
161156
end
162-
163-
def to_h
164-
{
165-
_ldMeta: {
166-
enabled: @enabled || false,
167-
},
168-
messages: @messages.is_a?(Array) ? @messages.map { |msg| msg&.to_h } : nil,
169-
model: @model&.to_h,
170-
provider: @provider&.to_h,
171-
}
172-
end
173157
end
174158

175159
#

0 commit comments

Comments
 (0)