Sha256: 398ddf3fa40054ce195a88b295ce503942a6734c68bdf5177174b29f6ed82483
Contents?: true
Size: 985 Bytes
Versions: 7
Compression:
Stored size: 985 Bytes
Contents
module SoberSwag module Reporting module Input ## # Specify that a value must be included in a list of possible values. class Enum < Base def initialize(input, values) @input = input @values = values end ## # @return [Interface] base type attr_reader :input ## # @return [Array<String>] acceptable types attr_reader :values def call(value) inner = input.call(value) return inner if inner.is_a?(Report::Base) return Report::Value.new(['was not an acceptable enum member']) unless values.include?(inner) inner end def swagger_schema schema, found = input.swagger_schema merged = if schema.key?(:$ref) { allOf: [schema] } else schema end.merge(enum: values) [merged, found] end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems