class SoberSwag::Reporting::Output::Enum

Models outputting an enum.

Attributes

output[R]

@return [Interface]

values[R]

@return [Array]

Public Class Methods

new(output, values) click to toggle source
# File lib/sober_swag/reporting/output/enum.rb, line 7
def initialize(output, values)
  @output = output
  @values = values
end

Public Instance Methods

call(value) click to toggle source
# File lib/sober_swag/reporting/output/enum.rb, line 20
def call(value)
  output.call(value)
end
serialize_report(value) click to toggle source
# File lib/sober_swag/reporting/output/enum.rb, line 24
def serialize_report(value)
  rep = output.serialize_report(value)

  return rep if rep.is_a?(Report::Base)

  return Report::Value.new(['was not an acceptable enum member']) unless values.include?(rep)

  rep
end
swagger_schema() click to toggle source
# File lib/sober_swag/reporting/output/enum.rb, line 34
def swagger_schema
  schema, found = output.swagger_schema
  merged =
    if schema.key?(:$ref)
      { allOf: [schema] }
    else
      schema
    end.merge(enum: values)
  [merged, found]
end