Class: OmniAI::Schema::Array
- Inherits:
-
Object
- Object
- OmniAI::Schema::Array
- Defined in:
- lib/omniai/schema/array.rb
Overview
Constant Summary collapse
- TYPE =
"array"
Instance Attribute Summary collapse
- #description ⇒ String?
- #items ⇒ OmniAI::Schema::Object, ...
- #max_items ⇒ Integer?
- #min_items ⇒ Integer?
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(items:, min_items: nil, max_items: nil, description: nil) ⇒ Array
constructor
A new instance of Array.
- #parse(data) ⇒ Array
- #serialize ⇒ Hash
Constructor Details
#initialize(items:, min_items: nil, max_items: nil, description: nil) ⇒ Array
Returns a new instance of Array.
63 64 65 66 67 68 69 |
# File 'lib/omniai/schema/array.rb', line 63 def initialize(items:, min_items: nil, max_items: nil, description: nil) super() @items = items @min_items = min_items @max_items = max_items @description = description end |
Instance Attribute Details
#description ⇒ String?
36 37 38 |
# File 'lib/omniai/schema/array.rb', line 36 def description @description end |
#items ⇒ OmniAI::Schema::Object, ...
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
.deserialize(data) ⇒ OmniAI::Schema::Array
50 51 52 53 54 55 56 57 |
# File 'lib/omniai/schema/array.rb', line 50 def self.deserialize(data) 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"] ) end |
Instance Method Details
#parse(data) ⇒ Array
91 92 93 |
# File 'lib/omniai/schema/array.rb', line 91 def parse(data) data.map { |arg| @items.parse(arg) } end |
#serialize ⇒ Hash
75 76 77 78 79 80 81 82 83 |
# File 'lib/omniai/schema/array.rb', line 75 def serialize { type: TYPE, description: @description, items: @items.serialize, maxItems: @max_items, minItems: @min_items, }.compact end |