class Authem::Role

Constants

METHODS

Attributes

controller[R]
name[R]
options[R]

Public Class Methods

new(controller, name, options={}) click to toggle source
# File lib/authem/role.rb, line 13
def initialize(controller, name, options={})
  @controller, @name, @options = controller, name.to_s, options
end

Public Instance Methods

klass() click to toggle source
# File lib/authem/role.rb, line 17
def klass
  @klass ||= options.fetch(:model){ name.classify.constantize }
end
setup!() click to toggle source
# File lib/authem/role.rb, line 21
def setup!
  setup_controller_settings
  setup_controller_instance_methods
  setup_view_helpers
end

Private Instance Methods

define_controller_method(*args, &block) click to toggle source
# File lib/authem/role.rb, line 48
def define_controller_method(*args, &block)
  controller.instance_eval{ define_method *args, &block }
end
method_mapping() click to toggle source
# File lib/authem/role.rb, line 52
def method_mapping
  exposed_methods = %W[current_#{name} sign_in_#{name}
    #{name}_signed_in? require_#{name} sign_out_#{name}
    clear_all_#{name}_sessions_for deny_#{name}_access].map(&:to_sym)

  Hash[[METHODS, exposed_methods].transpose]
end
setup_controller_instance_methods() click to toggle source
# File lib/authem/role.rb, line 34
def setup_controller_instance_methods
  role = self

  method_mapping.each do |inner_method, exposed_method|
    define_controller_method exposed_method do |*args|
      role.public_send(inner_method, self, *args)
    end
  end
end
setup_controller_settings() click to toggle source
# File lib/authem/role.rb, line 29
def setup_controller_settings
  controller.authem_roles ||= []
  controller.authem_roles += [self]
end
setup_view_helpers() click to toggle source
# File lib/authem/role.rb, line 44
def setup_view_helpers
  controller.helper_method *%W[current_#{name} #{name}_signed_in?].map(&:to_sym)
end