class Lolita::Extensions::Authentication::DeviseAdapter

Public Class Methods

new(context, options={}) click to toggle source
# File lib/lolita/extensions/authentication/devise_adapter.rb, line 6
def initialize context, options={}
  raise Lolita::NoAuthenticationDefinedError, "Lolita.authentication is not defined" unless Lolita.authentication
  @context = context
end

Public Instance Methods

authenticate_user!(*args) click to toggle source
# File lib/lolita/extensions/authentication/devise_adapter.rb, line 24
def authenticate_user! *args
  @context.send(Lolita.authentication)
end
current_user() click to toggle source
# File lib/lolita/extensions/authentication/devise_adapter.rb, line 11
def current_user
  unless @current_user
    find_class_and_user do |klass,user|
      @current_user = user
    end
  end
  @current_user
end
edit_path() click to toggle source
# File lib/lolita/extensions/authentication/devise_adapter.rb, line 32
def edit_path
  find_class_and_user do |klass,user|
    return @context.send(:"edit_#{klass.to_s.downcase}_password_path")
  end
end
sign_out_path() click to toggle source
# File lib/lolita/extensions/authentication/devise_adapter.rb, line 38
def sign_out_path
  find_class_and_user do |klass,user|
    return @context.send(:"destroy_#{klass.to_s.downcase}_session_path")
  end
end
sign_out_via() click to toggle source
# File lib/lolita/extensions/authentication/devise_adapter.rb, line 28
def sign_out_via
  ::Devise.sign_out_via
end
user_signed_in?() click to toggle source
# File lib/lolita/extensions/authentication/devise_adapter.rb, line 20
def user_signed_in?
  !!current_user
end

Private Instance Methods

find_class_and_user() { |klass, user| ... } click to toggle source
# File lib/lolita/extensions/authentication/devise_adapter.rb, line 46
def find_class_and_user
  Lolita.user_classes.each do |klass|
    if @context.respond_to?(:"current_#{klass.to_s.downcase}") && user = @context.send(:"current_#{klass.to_s.downcase}")
      yield klass, user
      break
    end
  end
end