module Dry::Doc::Namespace

Public Instance Methods

as_open_api() click to toggle source
# File lib/dry/doc/namespace.rb, line 55
def as_open_api
  definitions.freeze

  defs = definitions.each_with_object({}) do |d, h|
    h[d.name] = d.as_open_api
  end

  { 
    schemas: defs
  }
end
define(name, &config) click to toggle source
# File lib/dry/doc/namespace.rb, line 39
def define name, &config
  klass = Class.new ::Dry::Doc::Object do |c|
    class_exec &config
  end
  register name, klass 
end
definitions() click to toggle source
# File lib/dry/doc/namespace.rb, line 35
def definitions
  @_definitions ||= []
end
type(name, inner) click to toggle source
# File lib/dry/doc/namespace.rb, line 46
def type name, inner
  klass = ::Dry::Doc::Type.new inner
  register name, klass
end
types() click to toggle source
# File lib/dry/doc/namespace.rb, line 51
def types
  ::Dry::Doc::Types
end

Private Instance Methods

register(name, klass) click to toggle source
# File lib/dry/doc/namespace.rb, line 69
def register name, klass
  klass.ref = name
  klass.freeze

  const_set name, klass
  definitions.push klass
  klass
end