Sha256: 4b11f051b24542895f955a0c70009c99e7cd96299a27a39fa33648e8a16219e4
Contents?: true
Size: 963 Bytes
Versions: 5
Compression:
Stored size: 963 Bytes
Contents
module SoberSwag class OutputObject ## # Syntax for definitions that can add fields. module FieldSyntax def field(name, serializer, from: nil, &block) add_field!(Field.new(name, serializer, from: from, &block)) end ## # Similar to #field, but adds multiple at once. # Named #multi because #fields was already taken. def multi(names, serializer) names.each { |name| field(name, serializer) } end ## # Given a symbol to this, we will use a primitive name def primitive(name) SoberSwag::Serializer.primitive(SoberSwag::Types.const_get(name)) end ## # Merge in anything that has a list of fields, and use it. # Note that merging in a full blueprint *will not* also merge in views, just fields defined on the base. def merge(other) other.fields.each do |field| add_field!(field) end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems