Sha256: 7e797e0a0252c6f4820b52953542c9d5ff4cef89cf10bfdc895c41e1f00e4dfe
Contents?: true
Size: 669 Bytes
Versions: 9
Compression:
Stored size: 669 Bytes
Contents
module Jimmy class SchemaTypes::Array < SchemaType register! trait :min_items trait :max_items trait Range do |range| min, max = [range.first, range.last].sort min_items min max_items max end trait(Fixnum) { |value| min_items value; max_items value } nested do |schema| (attrs[:items] ||= []) << schema end compile do |hash| hash.merge! camelize_attrs(%i[min_items max_items]) items = attrs[:items] || [] if items.length > 1 hash['items'] = {'anyOf' => items.map(&:compile)} elsif items.length == 1 hash['items'] = items.first.compile end end end end
Version data entries
9 entries across 9 versions & 1 rubygems