Sha256: a51b78afcee7e7133c534f0dbb146dae73739582995fdfafd877a6626115a6af
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
module Lurker module Json class List < Schema def merge!(schema) if schema.is_a?(Array) schema.each { |payload| @schema[Json::ITEMS].merge!(payload) } else @schema[Json::ITEMS].merge!(schema) end end def replace!(property, schema) if @schema[Json::ITEMS].is_a?(Lurker::Json::Attribute) @schema[Json::ITEMS] = schema else @schema[Json::ITEMS].replace!(property, schema) end end private def parse_schema(schema) @schema = {} initialize_properties return if schema.empty? schema = schema.dup if schema.is_a?(Array) @schema[Json::ITEMS] = @parser.typed.parse(schema.shift) schema.each { |payload| @schema[Json::ITEMS].merge!(payload) } else @schema[Json::ITEMS] = @parser.typed.parse(schema.delete Json::ITEMS) if schema.key?(Json::ITEMS) @schema.merge!(schema) end @schema end def initialize_properties @schema[Json::TYPE] ||= Json::ARRAY @schema[Json::ITEMS] ||= [] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lurker-0.6.4 | lib/lurker/json/schema/list.rb |