class Doorkeeper::Rails::Routes

def self.install!

def self.install!
  ActionDispatch::Routing::Mapper.send :include, Doorkeeper::Rails::Routes::Helper
end

def application_routes(mapping)

def application_routes(mapping)
  routes.resources :doorkeeper_applications, controller: mapping[:controllers], as: :applications, path: 'applications'
end

def authorization_routes(mapping)

def authorization_routes(mapping)
  routes.resource(
    :authorization,
    path: 'authorize',
    only: [:create, :destroy],
    as: mapping[:as],
    controller: mapping[:controllers]
  ) do
    routes.get '/:code', action: :show, on: :member
    routes.get '/', action: :new, on: :member
  end
end

def authorized_applications_routes(mapping)

def authorized_applications_routes(mapping)
  routes.resources :authorized_applications, only: [:index, :destroy], controller: mapping[:controllers]
end

def generate_routes!(options)

def generate_routes!(options)
  @mapping = Mapper.new.map(&@block)
  routes.scope options[:scope] || 'oauth', as: 'oauth' do
    map_route(:authorizations, :authorization_routes)
    map_route(:tokens, :token_routes)
    map_route(:tokens, :revoke_routes)
    map_route(:applications, :application_routes)
    map_route(:authorized_applications, :authorized_applications_routes)
    map_route(:token_info, :token_info_routes)
  end
end

def initialize(routes, &block)

def initialize(routes, &block)
  @routes, @block = routes, block
end

def map_route(name, method)

def map_route(name, method)
  unless @mapping.skipped?(name)
    send method, @mapping[name]
  end
end

def revoke_routes(mapping)

def revoke_routes(mapping)
  routes.post 'revoke', controller: mapping[:controllers], action: :revoke
end

def token_info_routes(mapping)

def token_info_routes(mapping)
  routes.resource(
    :token_info,
    path: 'token/info',
    only: [:show], as: mapping[:as],
    controller: mapping[:controllers]
  )
end

def token_routes(mapping)

def token_routes(mapping)
  routes.resource(
    :token,
    path: 'token',
    only: [:create], as: mapping[:as],
    controller: mapping[:controllers]
  )
end