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