module Grape::OAuth2

Main Grape::OAuth2 module.

Public Class Methods

api(*endpoints) click to toggle source

Method for injecting Grape::OAuth2 endpoints and helpers into Grape API class. Automatically set required middleware, OAuth2 helpers and mounts all (or configured) endpoints.

@param endpoints [Array<Symbol>, Array<String>] endpoints to add

# File lib/grape_oauth2.rb, line 95
def api(*endpoints)
  inject_to_api do |api|
    api.use(*Grape::OAuth2.middleware)
    api.helpers(Grape::OAuth2::Helpers::AccessTokenHelpers)

    (endpoints.presence || endpoints_mapping.keys).each do |name|
      endpoint = endpoints_mapping[name.to_sym]
      raise ArgumentError, "Unrecognized endpoint: #{endpoint}" if endpoint.nil?

      api.mount(endpoint)
    end
  end
end
check_configuration!() click to toggle source

Validates Grape::OAuth2 configuration to be set correctly.

# File lib/grape_oauth2.rb, line 80
def check_configuration!
  config.check!
end
config() click to toggle source

Grape::OAuth2 configuration.

@return [Grape::OAuth2::Configuration]

configuration object
# File lib/grape_oauth2.rb, line 69
def config
  @config ||= Grape::OAuth2::Configuration.new
end
configure() { |config| ... } click to toggle source

Configures Grape::OAuth2. Yields Grape::OAuth2::Configuration instance to the block.

# File lib/grape_oauth2.rb, line 75
def configure
  yield config
end
gem_version() click to toggle source

Grape::OAuth2 version. @return [Gem::Version] version of the gem

# File lib/grape_oauth2/gem_version.rb, line 6
def self.gem_version
  Gem::Version.new VERSION::STRING
end
middleware() click to toggle source

Grape::OAuth2 default middleware.

# File lib/grape_oauth2.rb, line 85
def middleware
  [Rack::OAuth2::Server::Resource::Bearer, config.realm, config.token_authenticator]
end
version() click to toggle source

Grape::OAuth2 gem version.

@return [Gem::Version]

version value
# File lib/grape_oauth2/version.rb, line 10
def self.version
  gem_version
end

Private Class Methods

endpoints_mapping() click to toggle source
# File lib/grape_oauth2.rb, line 111
def endpoints_mapping
  {
    token: ::Grape::OAuth2::Endpoints::Token,
    authorize: ::Grape::OAuth2::Endpoints::Authorize
  }
end
inject_to_api() { |base| ... } click to toggle source
# File lib/grape_oauth2.rb, line 118
def inject_to_api(&_block)
  raise ArgumentError, 'block must be specified!' unless block_given?

  Module.new do |mod|
    mod.define_singleton_method :included do |base|
      yield base
    end
  end
end