Module: Dry::Doc::Namespace

Defined in:
lib/dry/doc/namespace.rb

Instance Method Summary collapse

Instance Method Details

#as_open_apiObject



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/dry/doc/namespace.rb', line 23

def as_open_api
  definitions.freeze

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

  { 
    definitions: defs
  }
end

#define(name, &config) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/dry/doc/namespace.rb', line 7

def define name, &config
  klass = Class.new ::Dry::Doc::Value do |c|
    @ref = name
    class_exec &config
  end
  klass.define_singleton_method(:name) { name }

  const_set name, klass 
  definitions.push klass
  klass
end

#definitionsObject



3
4
5
# File 'lib/dry/doc/namespace.rb', line 3

def definitions
  @_definitions ||= []
end

#typesObject



19
20
21
# File 'lib/dry/doc/namespace.rb', line 19

def types
  ::Dry::Doc::Value::Types
end