Class: OmniAI::Schema::Array
- Inherits:
-
Base
- Object
- Base
- OmniAI::Schema::Array
show all
- Defined in:
- lib/omniai/schema/array.rb
Overview
Constant Summary
collapse
- TYPE =
"array"
Instance Attribute Summary collapse
Attributes inherited from Base
#description, #title
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
#nonnullable, #nullable, #nullable?
Constructor Details
#initialize(items:, title: nil, description: nil, min_items: nil, max_items: nil, nullable: nil) ⇒ Array
Returns a new instance of Array.
40
41
42
43
44
45
|
# File 'lib/omniai/schema/array.rb', line 40
def initialize(items:, title: nil, description: nil, min_items: nil, max_items: nil, nullable: nil)
super(title:, description:, nullable:)
@items = items
@min_items = min_items
@max_items = max_items
end
|
Instance Attribute Details
24
25
26
|
# File 'lib/omniai/schema/array.rb', line 24
def items
@items
end
|
#max_items ⇒ Integer?
28
29
30
|
# File 'lib/omniai/schema/array.rb', line 28
def max_items
@max_items
end
|
#min_items ⇒ Integer?
32
33
34
|
# File 'lib/omniai/schema/array.rb', line 32
def min_items
@min_items
end
|
Class Method Details
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/omniai/schema/array.rb', line 87
def self.deserialize(data)
nullable = Array(data[:type] || data["type"]).include?("null")
new(
items: OmniAI::Schema.deserialize(data["items"] || data[:items]),
max_items: data[:maxItems] || data["maxItems"],
min_items: data[:minItems] || data["minItems"],
description: data[:description] || data["description"],
nullable:
)
end
|
Instance Method Details
#parse(data) ⇒ Array
53
54
55
56
57
|
# File 'lib/omniai/schema/array.rb', line 53
def parse(data)
return data if data.nil? && nullable?
data.map { |arg| @items.parse(arg) }
end
|
#serialize(additional_properties: false) ⇒ Hash
65
66
67
68
69
70
71
72
73
|
# File 'lib/omniai/schema/array.rb', line 65
def serialize(additional_properties: false)
{
type: nullify(TYPE),
description: @description,
items: @items.serialize(additional_properties:),
maxItems: @max_items,
minItems: @min_items,
}.compact
end
|