Module: Janus::InternalHelpers

Extended by:
ActiveSupport::Concern
Included in:
ConfirmationsController, PasswordsController, RegistrationsController, SessionsController
Defined in:
lib/janus/controllers/internal_helpers.rb

Overview

A collection of abstraction helper methods used in Janus controllers and views. This should be of no particular outside of abstract controllers for Janus that must be working for all scopes at once.

Instance Method Summary collapse

Instance Method Details

#authenticate!Object

Abstract method for the authenticate_scope! before filter, with scope as detected by janus_scope.



14
15
16
# File 'lib/janus/controllers/internal_helpers.rb', line 14

def authenticate!
  send("authenticate_#{janus_scope}!")
end

#initialize_resourceObject



80
81
82
# File 'lib/janus/controllers/internal_helpers.rb', line 80

def initialize_resource
  resource_class.new
end

#janus_scopeObject

Detects the scope from the controller name.



19
20
21
# File 'lib/janus/controllers/internal_helpers.rb', line 19

def janus_scope
  @janus_scope ||= self.class.name.split('::', 2).first.underscore.singularize
end

#mailer_classObject

Returns the ‘UserMailer` class (or `AdminMailer` or whatever) as detected by janus_scope.



56
57
58
# File 'lib/janus/controllers/internal_helpers.rb', line 56

def mailer_class
  @mailer_class ||= (janus_scope.camelize + 'Mailer').constantize
end

#resourceObject

Returns the ‘@user` instance variable (or `@admin` or whatever), as detected by janus_scope.



25
26
27
# File 'lib/janus/controllers/internal_helpers.rb', line 25

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

#resource=(value) ⇒ Object

Sets the ‘@user` instance variable (or `@admin` or whatever), as detected by janus_scope.



31
32
33
# File 'lib/janus/controllers/internal_helpers.rb', line 31

def resource=(value)
  instance_variable_set(:"@#{janus_scope}", value)
end

#resource_authentication_paramsObject



46
47
48
49
50
51
52
# File 'lib/janus/controllers/internal_helpers.rb', line 46

def resource_authentication_params
  if params.respond_to?(:permit)
    params.require(janus_scope).permit(*resource_class.authentication_keys)
  else
    params[janus_scope].slice(*resource_class.authentication_keys)
  end
end

#resource_classObject

Returns the ‘User` class (or `Admin` or whatever) as detected by janus_scope.



37
38
39
# File 'lib/janus/controllers/internal_helpers.rb', line 37

def resource_class
  @resource_class ||= janus_scope.camelize.constantize
end

#resource_nameObject

Alias for janus_scope.



42
43
44
# File 'lib/janus/controllers/internal_helpers.rb', line 42

def resource_name
  janus_scope
end

#respond_with_failure(error, options = {}) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/janus/controllers/internal_helpers.rb', line 67

def respond_with_failure(error, options = {})
  status = options[:status] || error

  respond_to do |format|
    format.html do
      self.resource = initialize_resource
      resource.errors.add(:base, error)
      render 'new', status: status
    end
    format.any { head status }
  end
end

#respond_with_success(&block) ⇒ Object



60
61
62
63
64
65
# File 'lib/janus/controllers/internal_helpers.rb', line 60

def respond_with_success(&block)
  respond_to do |format|
    format.html(&block)
    format.any { head :ok }
  end
end