class OpenApi::DSL::CallbackObj

github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#callbackObject

Attributes

block[RW]
callback_url[RW]
event_name[RW]
http_method[RW]

Public Class Methods

new(event_name, http_method, callback_url, &block) click to toggle source
# File lib/oas_objs/callback_obj.rb, line 13
def initialize(event_name, http_method, callback_url, &block)
  self.event_name = event_name
  self.http_method = http_method
  self.callback_url = callback_url
  self.block = block
end

Public Instance Methods

process() click to toggle source
# File lib/oas_objs/callback_obj.rb, line 20
def process
  {
      event_name => {
          processed_url => {
              http_method.downcase.to_sym => Api.new.run_dsl(&(self.block || -> { }))
          }
      }
  }
end
processed_url() click to toggle source
# File lib/oas_objs/callback_obj.rb, line 30
def processed_url
  callback_url.gsub(/{[^{}]*}/) do |exp|
    key_location, key_name = exp[1..-2].split
    connector = key_location == 'body' ? '#/' : '.'
    key_location = '$request.' + key_location
    ['{', key_location, connector, key_name, '}'].join
  end
end