class Brainstem::ApiDocs::Formatters::OpenApiSpecification::Version2::SecurityDefinitionsFormatter

Attributes

output[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 12
def initialize(options = {})
  self.output = ActiveSupport::HashWithIndifferentAccess.new

  super options
end

Public Instance Methods

call() click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 18
def call
  format_basic_auth_definitions!
  format_apikey_auth_definitions!
  format_oauth_definitions!
  format_security_object!

  output
end

Private Instance Methods

add_security_definition(security_definition) click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 49
def add_security_definition(security_definition)
  return if security_definition.blank?

  output['securityDefinitions'] ||= {}
  output['securityDefinitions'].merge!(security_definition)
end
apikey_auth_definitions() click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 64
def apikey_auth_definitions
  {
    'api_key' => {
      'type' => 'apiKey',
      'name' => 'api_key',
      'in'   => 'header'
    }
  }
end
basic_auth_definitions() click to toggle source

Override with custom values #

# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 60
def basic_auth_definitions
  {}
end
format_apikey_auth_definitions!() click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 35
def format_apikey_auth_definitions!
  add_security_definition(apikey_auth_definitions)
end
format_basic_auth_definitions!() click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 31
def format_basic_auth_definitions!
  add_security_definition(basic_auth_definitions)
end
format_oauth_definitions!() click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 39
def format_oauth_definitions!
  add_security_definition(oauth_definitions)
end
format_security_object!() click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 43
def format_security_object!
  return if security_object.blank?

  output.merge!('security' => security_object)
end
oauth_definitions() click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 74
def oauth_definitions
  {
    'petstore_auth' => {
      'type'             => 'oauth2',
      'authorizationUrl' => 'http://petstore.swagger.io/oauth/dialog',
      'flow'             => 'implicit',
      'scopes'           => {
        'write:pets' => 'modify pets in your account',
        'read:pets'  => 'read your pets'
      }
    }
  }
end
security_object() click to toggle source
# File lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb, line 88
def security_object
  {}
end