Class: AnyVali::ArraySchema

Inherits:
Schema
  • Object
show all
Defined in:
lib/anyvali/schemas/array_schema.rb

Constant Summary

Constants inherited from Schema

Schema::RESERVED_METADATA_KEYS

Instance Attribute Summary collapse

Attributes inherited from Schema

#coerce_config, #constraints, #custom_validators, #default_value, #has_default, #kind, #metadata

Instance Method Summary collapse

Methods inherited from Schema

#coerce, #default, #describe, #export, #parse, #portable?, #refine, #safe_parse, type_name, #with_metadata

Constructor Details

#initialize(items:, constraints: {}, **kwargs) ⇒ ArraySchema

Returns a new instance of ArraySchema.



7
8
9
10
# File 'lib/anyvali/schemas/array_schema.rb', line 7

def initialize(items:, constraints: {}, **kwargs)
  @items_schema = items
  super(kind: "array", constraints: constraints, **kwargs)
end

Instance Attribute Details

#items_schemaObject (readonly)

Returns the value of attribute items_schema.



5
6
7
# File 'lib/anyvali/schemas/array_schema.rb', line 5

def items_schema
  @items_schema
end

Instance Method Details

#max_items(n) ⇒ Object



16
17
18
# File 'lib/anyvali/schemas/array_schema.rb', line 16

def max_items(n)
  dup_with(constraints: @constraints.merge("maxItems" => n))
end

#min_items(n) ⇒ Object



12
13
14
# File 'lib/anyvali/schemas/array_schema.rb', line 12

def min_items(n)
  dup_with(constraints: @constraints.merge("minItems" => n))
end

#to_nodeObject



20
21
22
23
24
# File 'lib/anyvali/schemas/array_schema.rb', line 20

def to_node
  node = super
  node["items"] = @items_schema.to_node
  node
end