Sha256: 2bdaef16a2248ccbd3e176edfac3244c4cc59486ef0b9782f32bc18d253f838a
Contents?: true
Size: 1.15 KB
Versions: 3
Compression:
Stored size: 1.15 KB
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_children self.properties = { } children.select(&:name).each do |child| case child.name when Regexp self.pattern_properties ||= { } self.pattern_properties[child.name.source] = child.as_json else self.properties[child.name] = child.as_json end end end def extract_types initialize_children super end def reinitialize return unless initialized? extract_types 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
json-schema_builder-0.8.2 | lib/json/schema_builder/object.rb |
json-schema_builder-0.8.1 | lib/json/schema_builder/object.rb |
json-schema_builder-0.8.0 | lib/json/schema_builder/object.rb |