Sha256: c9c38ec10ae7deb03a7aedb08f3e83fdb482fbf4244542342a19365e92487265
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
# frozen_string_literal: true require_relative 'restricted_value' module Opushon # The content of headers, query string and body params MUST be described with # the keys below. When a key is missing, its default value is assigned. class Parameter include Virtus.model(strict: true) attribute :title, String, default: '', required: true attribute :description, String, default: '', required: true attribute :type, String, default: 'string', required: true attribute :nullifiable, Boolean, default: true, required: true attribute :restricted_values, Array[RestrictedValue], required: false attribute :example, BasicObject, required: false attribute :minlen, Integer, required: false attribute :maxlen, Integer, required: false attribute :pattern, Regexp, required: false attribute :min, Integer, required: false attribute :max, Integer, required: false def to_h h = { title: @title, description: @description, type: @type, nullifiable: @nullifiable, restricted_values: maybe_to_a(@restricted_values), example: @example } if @type.eql?('string') h.update( minlen: @minlen, maxlen: @maxlen, pattern: @pattern&.to_s ) end if @type.eql?('number') h.update( min: @min, max: @max ) end h end private def maybe_to_a(object) return if object.nil? object.map(&:to_h) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
opushon-0.2.2 | lib/opushon/parameter.rb |