File: vocab.rb

package info (click to toggle)
ruby-json-schemer 2.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 544 kB
  • sloc: ruby: 7,428; makefile: 4; sh: 4
file content (105 lines) | stat: -rw-r--r-- 5,046 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# frozen_string_literal: true
module JSONSchemer
  module Draft202012
    module Vocab
      # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-8
      CORE = {
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-8.1
        '$schema' => Core::Schema,
        '$vocabulary' => Core::Vocabulary,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-8.2
        '$id' => Core::Id,
        '$anchor' => Core::Anchor,
        '$ref' => Core::Ref,
        '$dynamicAnchor' => Core::DynamicAnchor,
        '$dynamicRef' => Core::DynamicRef,
        '$defs' => Core::Defs,
        'definitions' => Core::Defs,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-8.3
        '$comment' => Core::Comment,
        # https://github.com/orgs/json-schema-org/discussions/329
        'x-error' => Core::XError
      }
      # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-10
      APPLICATOR = {
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-10.2
        'allOf' => Applicator::AllOf,
        'anyOf' => Applicator::AnyOf,
        'oneOf' => Applicator::OneOf,
        'not' => Applicator::Not,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-10.2.2
        'if' => Applicator::If,
        'then' => Applicator::Then,
        'else' => Applicator::Else,
        'dependentSchemas' => Applicator::DependentSchemas,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-10.3
        'prefixItems' => Applicator::PrefixItems,
        'items' => Applicator::Items,
        'contains' => Applicator::Contains,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-10.3.2
        'properties' => Applicator::Properties,
        'patternProperties' => Applicator::PatternProperties,
        'additionalProperties' => Applicator::AdditionalProperties,
        'propertyNames' => Applicator::PropertyNames,
        'dependencies' => Applicator::Dependencies
      }
      # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01#section-11
      UNEVALUATED = {
        'unevaluatedItems' => Unevaluated::UnevaluatedItems,
        'unevaluatedProperties' => Unevaluated::UnevaluatedProperties
      }
      # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-6
      VALIDATION = {
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-6.1
        'type' => Validation::Type,
        'enum' => Validation::Enum,
        'const' => Validation::Const,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-6.2
        'multipleOf' => Validation::MultipleOf,
        'maximum' => Validation::Maximum,
        'exclusiveMaximum' => Validation::ExclusiveMaximum,
        'minimum' => Validation::Minimum,
        'exclusiveMinimum' => Validation::ExclusiveMinimum,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-6.3
        'maxLength' => Validation::MaxLength,
        'minLength' => Validation::MinLength,
        'pattern' => Validation::Pattern,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-6.4
        'maxItems' => Validation::MaxItems,
        'minItems' => Validation::MinItems,
        'uniqueItems' => Validation::UniqueItems,
        'maxContains' => Validation::MaxContains,
        'minContains' => Validation::MinContains,
        # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-6.5
        'maxProperties' => Validation::MaxProperties,
        'minProperties' => Validation::MinProperties,
        'required' => Validation::Required,
        'dependentRequired' => Validation::DependentRequired
      }
      # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-7.2.1
      FORMAT_ANNOTATION = {
        'format' => FormatAnnotation::Format
      }
      # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-7.2.2
      FORMAT_ASSERTION = {
        'format' => FormatAssertion::Format
      }
      # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-8
      CONTENT = {
        'contentEncoding' => Content::ContentEncoding,
        'contentMediaType' => Content::ContentMediaType,
        'contentSchema' => Content::ContentSchema
      }
      # https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#section-9
      META_DATA = {
        # 'title' => MetaData::Title,
        # 'description' => MetaData::Description,
        # 'default' => MetaData::Default,
        # 'deprecated' => MetaData::Deprecated,
        'readOnly' => MetaData::ReadOnly,
        'writeOnly' => MetaData::WriteOnly,
        # 'examples' => MetaData::Examples
      }
    end
  end
end