class SoberSwag::Reporting::Input::Object::Property

Describe a single property key in an object.

Attributes

description[R]

@return [String, nil] description

value[R]

@return [SoberSwag::Reporting::Input::Interface] value type

Public Class Methods

new(value, required:, description: '') click to toggle source
# File lib/sober_swag/reporting/input/object/property.rb, line 8
def initialize(value, required:, description: '')
  @value = value
  @required = required
  @description = description
end

Public Instance Methods

property_schema() click to toggle source
# File lib/sober_swag/reporting/input/object/property.rb, line 26
def property_schema
  direct, refined = value.swagger_schema

  if description
    [add_description(direct), refined]
  else
    [direct, refined]
  end
end
required?() click to toggle source
# File lib/sober_swag/reporting/input/object/property.rb, line 18
def required?
  @required
end

Private Instance Methods

add_description(dir) click to toggle source
# File lib/sober_swag/reporting/input/object/property.rb, line 38
def add_description(dir)
  t =
    if dir.key?(:$ref)
      # workaround: we have to do this if we want to allow
      # descriptions in reference types
      { allOf: [dir] }
    else
      dir
    end
  t.merge(description: description)
end