Class: OpenRouter::Tool::ParametersBuilder
- Inherits:
-
Object
- Object
- OpenRouter::Tool::ParametersBuilder
- Defined in:
- lib/open_router/tool.rb
Overview
Internal class for building parameter schemas
Instance Method Summary collapse
- #array(name, required: false, description: nil, items: nil, &block) ⇒ Object
- #boolean(name, required: false, description: nil, **options) ⇒ Object
-
#initialize(params_hash) ⇒ ParametersBuilder
constructor
A new instance of ParametersBuilder.
- #integer(name, required: false, description: nil, **options) ⇒ Object
- #number(name, required: false, description: nil, **options) ⇒ Object
- #object(name, required: false, description: nil, &block) ⇒ Object
- #string(name, required: false, description: nil, **options) ⇒ Object
Constructor Details
#initialize(params_hash) ⇒ ParametersBuilder
Returns a new instance of ParametersBuilder.
97 98 99 |
# File 'lib/open_router/tool.rb', line 97 def initialize(params_hash) @params = params_hash end |
Instance Method Details
#array(name, required: false, description: nil, items: nil, &block) ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/open_router/tool.rb', line 121 def array(name, required: false, description: nil, items: nil, &block) array_def = { type: "array", description: }.compact if items array_def[:items] = items elsif block_given? items_builder = ItemsBuilder.new items_builder.instance_eval(&block) array_def[:items] = items_builder.to_h end add_property(name, array_def) mark_required(name) if required end |
#boolean(name, required: false, description: nil, **options) ⇒ Object
116 117 118 119 |
# File 'lib/open_router/tool.rb', line 116 def boolean(name, required: false, description: nil, **) add_property(name, { type: "boolean", description: }.merge().compact) mark_required(name) if required end |
#integer(name, required: false, description: nil, **options) ⇒ Object
106 107 108 109 |
# File 'lib/open_router/tool.rb', line 106 def integer(name, required: false, description: nil, **) add_property(name, { type: "integer", description: }.merge().compact) mark_required(name) if required end |
#number(name, required: false, description: nil, **options) ⇒ Object
111 112 113 114 |
# File 'lib/open_router/tool.rb', line 111 def number(name, required: false, description: nil, **) add_property(name, { type: "number", description: }.merge().compact) mark_required(name) if required end |
#object(name, required: false, description: nil, &block) ⇒ Object
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/open_router/tool.rb', line 136 def object(name, required: false, description: nil, &block) object_def = { type: "object", description:, properties: {}, required: [] }.compact if block_given? object_builder = ParametersBuilder.new(object_def) object_builder.instance_eval(&block) end add_property(name, object_def) mark_required(name) if required end |
#string(name, required: false, description: nil, **options) ⇒ Object
101 102 103 104 |
# File 'lib/open_router/tool.rb', line 101 def string(name, required: false, description: nil, **) add_property(name, { type: "string", description: }.merge().compact) mark_required(name) if required end |