Class: AnyVali::AnyValiDocument

Inherits:
Object
  • Object
show all
Defined in:
lib/anyvali/anyvali_document.rb

Constant Summary collapse

ANYVALI_VERSION =
"1.0"
SCHEMA_VERSION =
"1"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(root:, definitions: {}, extensions: {}, anyvali_version: ANYVALI_VERSION, schema_version: SCHEMA_VERSION) ⇒ AnyValiDocument

Returns a new instance of AnyValiDocument.



10
11
12
13
14
15
16
# File 'lib/anyvali/anyvali_document.rb', line 10

def initialize(root:, definitions: {}, extensions: {}, anyvali_version: ANYVALI_VERSION, schema_version: SCHEMA_VERSION)
  @anyvali_version = anyvali_version
  @schema_version = schema_version
  @root = root
  @definitions = definitions
  @extensions = extensions
end

Instance Attribute Details

#anyvali_versionObject (readonly)

Returns the value of attribute anyvali_version.



8
9
10
# File 'lib/anyvali/anyvali_document.rb', line 8

def anyvali_version
  @anyvali_version
end

#definitionsObject (readonly)

Returns the value of attribute definitions.



8
9
10
# File 'lib/anyvali/anyvali_document.rb', line 8

def definitions
  @definitions
end

#extensionsObject (readonly)

Returns the value of attribute extensions.



8
9
10
# File 'lib/anyvali/anyvali_document.rb', line 8

def extensions
  @extensions
end

#rootObject (readonly)

Returns the value of attribute root.



8
9
10
# File 'lib/anyvali/anyvali_document.rb', line 8

def root
  @root
end

#schema_versionObject (readonly)

Returns the value of attribute schema_version.



8
9
10
# File 'lib/anyvali/anyvali_document.rb', line 8

def schema_version
  @schema_version
end

Instance Method Details

#to_hObject



18
19
20
21
22
23
24
25
26
# File 'lib/anyvali/anyvali_document.rb', line 18

def to_h
  {
    "anyvaliVersion" => @anyvali_version,
    "schemaVersion" => @schema_version,
    "root" => node_to_h(@root),
    "definitions" => @definitions.transform_values { |v| node_to_h(v) },
    "extensions" => @extensions
  }
end

#to_json(*_args) ⇒ Object



28
29
30
31
# File 'lib/anyvali/anyvali_document.rb', line 28

def to_json(*_args)
  require "json"
  JSON.generate(to_h)
end