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, Booelean, Integer, Null, Number, Object, String

Instance Method Summary collapse

Constructor Details

#initializeLeaf

Returns a new instance of Leaf.



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

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

Instance Method Details

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

Set the default value of a leaf

Parameters:

  • value (Object)

    The default value

Returns:



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

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

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

Set the description of a leaf

Parameters:

  • str (String)

    The description

Returns:



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

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

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

Set the allowed values of a leaf

Parameters:

  • values (Array)

    The allowed values

Returns:



38
39
40
# File 'lib/json/schema/leaf.rb', line 38

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

#requiredJSON::Schema::Leaf

Denote a leaf as required

Returns:



45
46
47
# File 'lib/json/schema/leaf.rb', line 45

def required
  tap { @required = true }
end

#required?Boolean

Returns:

  • (Boolean)


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

def required?
  @required
end

#to_hHash

Returns:

  • (Hash)


51
52
53
# File 'lib/json/schema/leaf.rb', line 51

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

#to_json(options = {}) ⇒ String

Returns:



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

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