Sha256: b1c3ef2b57dd02194dcdf32d399b49780cac12f89071e5c52e18660493739d2e

Contents?: true

Size: 825 Bytes

Versions: 12

Compression:

Stored size: 825 Bytes

Contents

require_relative 'entity'

module JSON
  module SchemaBuilder
    class Object < Entity
      register :object
      attribute :required
      attribute :min_properties
      attribute :max_properties
      attribute :properties
      attribute :additional_properties
      attribute :pattern_properties

      def initialize(name, opts = { }, &block)
        self.properties = { }
        super
        children.each do |child|
          self.properties[child.name] = child.as_json
        end
      end

      def required(*values)
        case values
        when []
          @schema.required
        when [true]
          @parent.required ||= []
          @parent.required << @name
        else
          @schema.required = values.flatten
        end
      end
      alias_method :required=, :required
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
json-schema_builder-0.2.1 lib/json/schema_builder/object.rb
json-schema_builder-0.2.0 lib/json/schema_builder/object.rb
json-schema_builder-0.1.0 lib/json/schema_builder/object.rb
json-schema_builder-0.0.9 lib/json/schema_builder/object.rb
json-schema_builder-0.0.8 lib/json/schema_builder/object.rb
json-schema_builder-0.0.7 lib/json/schema_builder/object.rb
json-schema_builder-0.0.6 lib/json/schema_builder/object.rb
json-schema_builder-0.0.5 lib/json/schema_builder/object.rb
json-schema_builder-0.0.4 lib/json/schema_builder/object.rb
json-schema_builder-0.0.3 lib/json/schema_builder/object.rb
json-schema_builder-0.0.2 lib/json/schema_builder/object.rb
json-schema_builder-0.0.1 lib/json/schema_builder/object.rb