Module: Devise::Controllers::InternalHelpers

Included in:
ConfirmationsController, PasswordsController, SessionsController, UnlocksController
Defined in:
lib/devise/controllers/internal_helpers.rb

Overview

Those helpers are used only inside Devise controllers and should not be included in ApplicationController since they all depend on the url being accessed.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

:nodoc:



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/devise/controllers/internal_helpers.rb', line 8

def self.included(base)
  base.class_eval do
    unloadable

    helper_method :resource, :scope_name, :resource_name, :resource_class, :devise_mapping, :devise_controller?
    hide_action   :resource, :scope_name, :resource_name, :resource_class, :devise_mapping, :devise_controller?

    skip_before_filter *Devise.mappings.keys.map { |m| :"authenticate_#{m}!" }
    before_filter :is_devise_resource?
  end
end

Instance Method Details

#devise_controller?Boolean

Overwrites devise_controller? to return true

Returns:

  • (Boolean)


46
47
48
# File 'lib/devise/controllers/internal_helpers.rb', line 46

def devise_controller?
  true
end

#devise_mappingObject

Attempt to find the mapped route for devise based on request path



37
38
39
40
41
42
43
# File 'lib/devise/controllers/internal_helpers.rb', line 37

def devise_mapping
  @devise_mapping ||= begin
    mapping   = Devise::Mapping.find_by_path(request.path)
    mapping ||= Devise.mappings[Devise.default_scope] if Devise.use_default_scope
    mapping
  end
end

#resourceObject

Gets the actual resource stored in the instance variable



21
22
23
# File 'lib/devise/controllers/internal_helpers.rb', line 21

def resource
  instance_variable_get(:"@#{resource_name}")
end

#resource_classObject

Proxy to devise map class



32
33
34
# File 'lib/devise/controllers/internal_helpers.rb', line 32

def resource_class
  devise_mapping.to
end

#resource_nameObject Also known as: scope_name

Proxy to devise map name



26
27
28
# File 'lib/devise/controllers/internal_helpers.rb', line 26

def resource_name
  devise_mapping.name
end