Method: MediaTypes::Scheme#collection
- Defined in:
- lib/media_types/scheme.rb
#collection(key, scheme = nil, allow_empty: false, expected_type: ::Array, optional: false, &block) ⇒ Object
Expect a collection such as an array or hash.
The +block+ defines the Schema for each item in that collection.
350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 |
# File 'lib/media_types/scheme.rb', line 350 def collection(key, scheme = nil, allow_empty: false, expected_type: ::Array, optional: false, &block) raise ConflictingTypeDefinitionError, 'You cannot apply a block to a non-hash typed collection, either remove the type or the block' if scheme != ::Hash && block_given? && !scheme.nil? unless block_given? return rules.add( key, EnumerationOfType.new( scheme, enumeration_type: expected_type, allow_empty: allow_empty ), optional: optional ) end rules.add(key, Scheme.new(allow_empty: allow_empty, expected_type: expected_type, &block), optional: optional) end |