Skip to content

Commit b76d194

Browse files
committed
Add support for naming via DSL
1 parent d42ba9d commit b76d194

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

lib/ruby_llm/schema.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@ def definitions
3434
@definitions ||= {}
3535
end
3636

37+
def name(name = nil)
38+
@schema_name = name if name
39+
return @schema_name if defined?(@schema_name)
40+
41+
super()
42+
end
43+
3744
def description(description = nil)
3845
@description = description if description
3946
@description

spec/ruby_llm/schema/robustness/instance_methods_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,18 @@
1515
expect(schema_class.new("CustomName").to_json_schema[:name]).to eq("CustomName")
1616

1717
described_output = schema_class.new("TestName", description: "Custom description").to_json_schema
18+
expect(described_output[:name]).to eq("TestName")
1819
expect(described_output[:description]).to eq("Custom description")
1920
end
2021

22+
it "allows configuring the schema name via the DSL" do
23+
configured_schema = build_schema_class do
24+
name "ConfiguredDSLName"
25+
end
26+
27+
expect(configured_schema.new.to_json_schema[:name]).to eq("ConfiguredDSLName")
28+
end
29+
2130
it "supports method delegation for schema methods" do
2231
instance = schema_class.new
2332

0 commit comments

Comments
 (0)