Module: RubyLLM::Schema::DSL::ComplexTypes

Included in:
RubyLLM::Schema::DSL
Defined in:
lib/ruby_llm/schema/dsl/complex_types.rb

Instance Method Summary collapse

Instance Method Details

#any_of(name, description: nil, required: true, **options, &block) ⇒ Object



15
16
17
# File 'lib/ruby_llm/schema/dsl/complex_types.rb', line 15

def any_of(name, description: nil, required: true, **options, &block)
  add_property(name, any_of_schema(description: description, **options, &block), required: required)
end

#array(name, description: nil, required: true, **options, &block) ⇒ Object



11
12
13
# File 'lib/ruby_llm/schema/dsl/complex_types.rb', line 11

def array(name, description: nil, required: true, **options, &block)
  add_property(name, array_schema(description: description, **options, &block), required: required)
end

#object(name, description: nil, required: true, **options, &block) ⇒ Object



7
8
9
# File 'lib/ruby_llm/schema/dsl/complex_types.rb', line 7

def object(name, description: nil, required: true, **options, &block)
  add_property(name, object_schema(description: description, **options, &block), required: required)
end

#one_of(name, description: nil, required: true, **options, &block) ⇒ Object



19
20
21
# File 'lib/ruby_llm/schema/dsl/complex_types.rb', line 19

def one_of(name, description: nil, required: true, **options, &block)
  add_property(name, one_of_schema(description: description, **options, &block), required: required)
end

#optional(name, description: nil, &block) ⇒ Object



23
24
25
26
27
28
# File 'lib/ruby_llm/schema/dsl/complex_types.rb', line 23

def optional(name, description: nil, &block)
  any_of(name, description: description) do
    instance_eval(&block)
    null
  end
end