Module: Jsapi::DSL::Callbacks

Included in:
OpenAPI::Root, Operation
Defined in:
lib/jsapi/dsl/callbacks.rb

Instance Method Summary collapse

Instance Method Details

#callback(name = nil, **keywords, &block) ⇒ Object

Defines an OpenAPI callback or refers a reusable callback.

# define a callback
callback 'foo' do
  operation '{$request.query.foo}'
end

# refer a reusable callback
callback ref: 'foo'

Refers the reusable callback with the same name if neither any keywords nor a block is specified.

callback 'foo'


21
22
23
24
25
26
27
28
29
# File 'lib/jsapi/dsl/callbacks.rb', line 21

def callback(name = nil, **keywords, &block)
  _define('callback', name&.inspect) do
    name = keywords[:ref] if name.nil?
    keywords = { ref: name } unless keywords.any? || block

    callback_model = _meta_model.add_callback(name, keywords)
    _eval(callback_model, OpenAPI::Callback, &block)
  end
end