Class: JSON::Schema::Leaf

Inherits:
Object
  • Object
show all
Defined in:
lib/json/schema/leaf.rb

Overview

The JSON::Schema::Leaf class is the superclass of all values that can appear in a JSON schema. See the instance methods of JSON::Schema for an example of how to create instances of JSON::Schema::Leaf through its subclasses.

Direct Known Subclasses

Array, Boolean, Integer, Null, Number, Object, String

Instance Method Summary collapse

Constructor Details

#initializeLeaf

Returns a new instance of Leaf.



11
12
13
14
15
16
17
# File 'lib/json/schema/leaf.rb', line 11

def initialize
  @description = nil
  @default = nil
  @enum = nil
  @required = nil
  @const = nil
end

Instance Method Details

#required?Boolean

Returns:



74
75
76
# File 'lib/json/schema/leaf.rb', line 74

def required?
  @required
end

#description(str) ⇒ JSON::Schema::Leaf

Set the description of a leaf

Parameters:

  • str (String)

    The description

Returns:



23
24
25
# File 'lib/json/schema/leaf.rb', line 23

def description(str)
  tap { @description = str }
end

#default(value) ⇒ JSON::Schema::Leaf

Set the default value of a leaf

Parameters:

  • value (Object)

    The default value

Returns:



31
32
33
# File 'lib/json/schema/leaf.rb', line 31

def default(value)
  tap { @default = value }
end

#enum(*values) ⇒ JSON::Schema::Leaf

Set the allowed values of a leaf

Parameters:

  • values (Array)

    The allowed values

Returns:

See Also:



40
41
42
# File 'lib/json/schema/leaf.rb', line 40

def enum(*values)
  tap { @enum = values }
end

#const(value) ⇒ JSON::Schema::Leaf

Set the value of a leaf to be a constant value

Parameters:

  • value (Object)

    The constant value

Returns:

See Also:



49
50
51
# File 'lib/json/schema/leaf.rb', line 49

def const(value)
  tap { @const = value }
end

#requiredJSON::Schema::Leaf

Denote a leaf as required

Returns:



56
57
58
# File 'lib/json/schema/leaf.rb', line 56

def required
  tap { @required = true }
end

#to_hHash

Returns:

  • (Hash)


62
63
64
# File 'lib/json/schema/leaf.rb', line 62

def to_h
  {description: @description, default: @default, enum: @enum}.compact
end

#to_json(options = {}) ⇒ String

Returns:



68
69
70
# File 'lib/json/schema/leaf.rb', line 68

def to_json(options = {})
  to_h.to_json(options)
end