Module: AnyVali
- Defined in:
- lib/anyvali.rb,
lib/anyvali/schema.rb,
lib/anyvali/issue_codes.rb,
lib/anyvali/parse_result.rb,
lib/anyvali/parse/coercion.rb,
lib/anyvali/parse/defaults.rb,
lib/anyvali/anyvali_document.rb,
lib/anyvali/validation_error.rb,
lib/anyvali/validation_issue.rb,
lib/anyvali/format/validators.rb,
lib/anyvali/schemas/any_schema.rb,
lib/anyvali/schemas/int_schema.rb,
lib/anyvali/schemas/ref_schema.rb,
lib/anyvali/validation_context.rb,
lib/anyvali/schemas/bool_schema.rb,
lib/anyvali/schemas/enum_schema.rb,
lib/anyvali/schemas/null_schema.rb,
lib/anyvali/interchange/exporter.rb,
lib/anyvali/interchange/importer.rb,
lib/anyvali/schemas/array_schema.rb,
lib/anyvali/schemas/never_schema.rb,
lib/anyvali/schemas/tuple_schema.rb,
lib/anyvali/schemas/union_schema.rb,
lib/anyvali/parse/coercion_config.rb,
lib/anyvali/schemas/number_schema.rb,
lib/anyvali/schemas/object_schema.rb,
lib/anyvali/schemas/record_schema.rb,
lib/anyvali/schemas/string_schema.rb,
lib/anyvali/schemas/literal_schema.rb,
lib/anyvali/schemas/unknown_schema.rb,
lib/anyvali/schemas/nullable_schema.rb,
lib/anyvali/schemas/optional_schema.rb,
lib/anyvali/schemas/intersection_schema.rb
Defined Under Namespace
Modules: Coercion, CoercionConfig, Defaults, Format, Interchange, IssueCodes
Classes: AnySchema, AnyValiDocument, ArraySchema, BoolSchema, EnumSchema, IntSchema, IntersectionSchema, LiteralSchema, NeverSchema, NullSchema, NullableSchema, NumberSchema, ObjectSchema, OptionalSchema, ParseResult, RecordSchema, RefSchema, Schema, StringSchema, TupleSchema, UnionSchema, UnknownSchema, ValidationContext, ValidationError, ValidationIssue
Constant Summary
collapse
- VERSION =
"0.0.1"
Class Method Summary
collapse
Class Method Details
.any ⇒ Object
107
108
109
|
# File 'lib/anyvali.rb', line 107
def any
AnySchema.new
end
|
.array(items) ⇒ Object
127
128
129
|
# File 'lib/anyvali.rb', line 127
def array(items)
ArraySchema.new(items: items)
end
|
.bool ⇒ Object
99
100
101
|
# File 'lib/anyvali.rb', line 99
def bool
BoolSchema.new
end
|
.enum_(*values) ⇒ Object
123
124
125
|
# File 'lib/anyvali.rb', line 123
def enum_(*values)
EnumSchema.new(values: values.flatten)
end
|
.export(schema, mode: :portable, definitions: {}) ⇒ Object
170
171
172
|
# File 'lib/anyvali.rb', line 170
def export(schema, mode: :portable, definitions: {})
Interchange::Exporter.export(schema, mode: mode, definitions: definitions)
end
|
.float32 ⇒ Object
55
56
57
|
# File 'lib/anyvali.rb', line 55
def float32
NumberSchema.new(kind: "float32")
end
|
.float64 ⇒ Object
59
60
61
|
# File 'lib/anyvali.rb', line 59
def float64
NumberSchema.new(kind: "float64")
end
|
.import_schema(doc) ⇒ Object
.int16 ⇒ Object
71
72
73
|
# File 'lib/anyvali.rb', line 71
def int16
IntSchema.new(kind: "int16")
end
|
.int32 ⇒ Object
75
76
77
|
# File 'lib/anyvali.rb', line 75
def int32
IntSchema.new(kind: "int32")
end
|
.int64 ⇒ Object
79
80
81
|
# File 'lib/anyvali.rb', line 79
def int64
IntSchema.new(kind: "int64")
end
|
.int8 ⇒ Object
67
68
69
|
# File 'lib/anyvali.rb', line 67
def int8
IntSchema.new(kind: "int8")
end
|
.int_ ⇒ Object
63
64
65
|
# File 'lib/anyvali.rb', line 63
def int_
IntSchema.new(kind: "int")
end
|
.intersection(*schemas) ⇒ Object
152
153
154
|
# File 'lib/anyvali.rb', line 152
def intersection(*schemas)
IntersectionSchema.new(all_of: schemas.flatten)
end
|
.literal(value) ⇒ Object
119
120
121
|
# File 'lib/anyvali.rb', line 119
def literal(value)
LiteralSchema.new(value: value)
end
|
.never ⇒ Object
115
116
117
|
# File 'lib/anyvali.rb', line 115
def never
NeverSchema.new
end
|
.null ⇒ Object
103
104
105
|
# File 'lib/anyvali.rb', line 103
def null
NullSchema.new
end
|
.nullable(schema) ⇒ Object
160
161
162
|
# File 'lib/anyvali.rb', line 160
def nullable(schema)
NullableSchema.new(schema: schema)
end
|
.number ⇒ Object
51
52
53
|
# File 'lib/anyvali.rb', line 51
def number
NumberSchema.new(kind: "number")
end
|
.object(properties:, required: [], unknown_keys: nil) ⇒ Object
135
136
137
138
139
140
141
142
|
# File 'lib/anyvali.rb', line 135
def object(properties:, required: [], unknown_keys: nil)
ObjectSchema.new(
properties: properties,
required: required,
unknown_keys: unknown_keys || "strip",
unknown_keys_explicit: !unknown_keys.nil?
)
end
|
.optional(schema) ⇒ Object
156
157
158
|
# File 'lib/anyvali.rb', line 156
def optional(schema)
OptionalSchema.new(schema: schema)
end
|
.record(values) ⇒ Object
144
145
146
|
# File 'lib/anyvali.rb', line 144
def record(values)
RecordSchema.new(values: values)
end
|
.ref(ref_path) ⇒ Object
164
165
166
|
# File 'lib/anyvali.rb', line 164
def ref(ref_path)
RefSchema.new(ref: ref_path)
end
|
.tuple(*elements) ⇒ Object
131
132
133
|
# File 'lib/anyvali.rb', line 131
def tuple(*elements)
TupleSchema.new(elements: elements.flatten)
end
|
.uint16 ⇒ Object
87
88
89
|
# File 'lib/anyvali.rb', line 87
def uint16
IntSchema.new(kind: "uint16")
end
|
.uint32 ⇒ Object
91
92
93
|
# File 'lib/anyvali.rb', line 91
def uint32
IntSchema.new(kind: "uint32")
end
|
.uint64 ⇒ Object
95
96
97
|
# File 'lib/anyvali.rb', line 95
def uint64
IntSchema.new(kind: "uint64")
end
|
.uint8 ⇒ Object
83
84
85
|
# File 'lib/anyvali.rb', line 83
def uint8
IntSchema.new(kind: "uint8")
end
|
.union(*variants) ⇒ Object
148
149
150
|
# File 'lib/anyvali.rb', line 148
def union(*variants)
UnionSchema.new(variants: variants.flatten)
end
|