class Babl::Schema::Object

Constants

EMPTY
EMPTY_WITH_ADDITIONAL

Public Class Methods

new(properties, additional) click to toggle source
Calls superclass method
# File lib/babl/schema/object.rb, line 8
def initialize(properties, additional)
    super(properties.to_set.freeze, additional)
end

Public Instance Methods

json() click to toggle source
# File lib/babl/schema/object.rb, line 21
def json
    { type: 'object' }.tap { |out|
        next if property_set.empty?

        out[:properties] = property_set.map { |property| [property.name, property.value.json] }.to_h
        out[:additionalProperties] = additional
        required_properties = property_set.select(&:required)
        next if required_properties.empty?

        out[:required] = property_set.select(&:required).map(&:name).map(&:to_s)
    }
end