Class: OmniAgent::Tool::SchemaBuilder
- Inherits:
-
Object
- Object
- OmniAgent::Tool::SchemaBuilder
- Defined in:
- lib/omni_agent/tool/schema_builder.rb
Instance Attribute Summary collapse
-
#properties ⇒ Object
readonly
Returns the value of attribute properties.
-
#required_fields ⇒ Object
readonly
Returns the value of attribute required_fields.
Instance Method Summary collapse
- #array(name, items_type:, description: nil, required: true) ⇒ Object
- #boolean(name, description: nil, required: true) ⇒ Object
- #hash(name, description: nil, required: true, &block) ⇒ Object
-
#initialize ⇒ SchemaBuilder
constructor
A new instance of SchemaBuilder.
- #integer(name, description: nil, required: true) ⇒ Object
- #string(name, description: nil, required: true) ⇒ Object
Constructor Details
#initialize ⇒ SchemaBuilder
Returns a new instance of SchemaBuilder.
6 7 8 9 |
# File 'lib/omni_agent/tool/schema_builder.rb', line 6 def initialize @properties = {} @required_fields = [] end |
Instance Attribute Details
#properties ⇒ Object (readonly)
Returns the value of attribute properties.
4 5 6 |
# File 'lib/omni_agent/tool/schema_builder.rb', line 4 def properties @properties end |
#required_fields ⇒ Object (readonly)
Returns the value of attribute required_fields.
4 5 6 |
# File 'lib/omni_agent/tool/schema_builder.rb', line 4 def required_fields @required_fields end |
Instance Method Details
#array(name, items_type:, description: nil, required: true) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/omni_agent/tool/schema_builder.rb', line 23 def array(name, items_type:, description: nil, required: true) property = { type: "array", items: { type: items_type } } property[:description] = description if description @properties[name] = property @required_fields << name.to_s if required end |
#boolean(name, description: nil, required: true) ⇒ Object
19 20 21 |
# File 'lib/omni_agent/tool/schema_builder.rb', line 19 def boolean(name, description: nil, required: true) add_property(name, type: "boolean", description: description, required: required) end |
#hash(name, description: nil, required: true, &block) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/omni_agent/tool/schema_builder.rb', line 31 def hash(name, description: nil, required: true, &block) property = { type: "object" } property[:description] = description if description if block_given? nested_builder = SchemaBuilder.new nested_builder.instance_eval(&block) property[:properties] = nested_builder.properties property[:required] = nested_builder.required_fields property[:additionalProperties] = false else property[:additionalProperties] = true end @properties[name] = property @required_fields << name.to_s if required end |
#integer(name, description: nil, required: true) ⇒ Object
15 16 17 |
# File 'lib/omni_agent/tool/schema_builder.rb', line 15 def integer(name, description: nil, required: true) add_property(name, type: "integer", description: description, required: required) end |
#string(name, description: nil, required: true) ⇒ Object
11 12 13 |
# File 'lib/omni_agent/tool/schema_builder.rb', line 11 def string(name, description: nil, required: true) add_property(name, type: "string", description: description, required: required) end |