Sha256: 4370c0ebc3adbbb41fc1a3675998f60b430ac9f6e388be8427d875ee93a5a9cf

Contents?: true

Size: 628 Bytes

Versions: 2

Compression:

Stored size: 628 Bytes

Contents

module Finitio
  module HashBasedType

    def to_json_schema(*args, &bl)
      base = {
        type: "object"
      }
      unless heading.empty?
        base[:properties] = heading.inject({}){|ps,a|
          ps.merge(a.name => a.type.to_json_schema(*args, &bl))
        }
      end
      unless (reqs = heading.select{|a| a.required? }).empty?
        base[:required] = reqs.map{|a| a.name }
      end
      base[:additionalProperties] = if heading.allow_extra?
        heading.allow_extra.to_json_schema(*args, &bl)
      else
        false
      end
      base
    end

  end # module HashBasedType
end # module UnionType

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
finitio-0.12.0 lib/finitio/json_schema/hash_based_type.rb
finitio-0.11.4 lib/finitio/json_schema/hash_based_type.rb