Class: HaveAPI::Authentication::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/haveapi/authentication/base.rb

Overview

Base class for authentication providers.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(server, v) ⇒ Base

Returns a new instance of Base.



26
27
28
29
30
31
# File 'lib/haveapi/authentication/base.rb', line 26

def initialize(server, v)
  @name = self.class.auth_method
  @server = server
  @version = v
  setup
end

Instance Attribute Details

#nameSymbol (readonly)

Returns:

  • (Symbol)


24
25
26
# File 'lib/haveapi/authentication/base.rb', line 24

def name
  @name
end

Class Method Details

.auth_method(v = nil) ⇒ Symbol

Get or set auth method name

Parameters:

  • v (Symbol, nil) (defaults to: nil)

Returns:

  • (Symbol)


10
11
12
13
14
15
16
# File 'lib/haveapi/authentication/base.rb', line 10

def self.auth_method(v = nil)
  if v
    @auth_method = v
  else
    @auth_method || name.split('::').last.underscore.to_sym
  end
end

.inherited(subclass) ⇒ Object



18
19
20
21
# File 'lib/haveapi/authentication/base.rb', line 18

def self.inherited(subclass)
  super
  subclass.send(:instance_variable_set, '@auth_method', @auth_method)
end

Instance Method Details

#authenticate(request) ⇒ Object

Reimplement this method in your authentication provider. request is passed directly from Sinatra.



45
# File 'lib/haveapi/authentication/base.rb', line 45

def authenticate(request); end

#describeObject

Reimplement to describe provider.



48
49
50
# File 'lib/haveapi/authentication/base.rb', line 48

def describe
  {}
end

#register_routes(sinatra, prefix) ⇒ Object

Register custom path handlers in sinatra

Parameters:

  • sinatra (Sinatra::Base)
  • prefix (String)


36
# File 'lib/haveapi/authentication/base.rb', line 36

def register_routes(sinatra, prefix); end

#resource_moduleModule?

Returns:

  • (Module, nil)


39
40
41
# File 'lib/haveapi/authentication/base.rb', line 39

def resource_module
  nil
end