module Rbacfull
Constants
- VERSION
Attributes
adapter[RW]
resource_adapter[RW]
role_cname[RW]
role_join_table_name[RW]
role_table_name[RW]
Public Class Methods
resource_types()
click to toggle source
# File lib/rbacfull.rb, line 65 def self.resource_types @@resource_types end
Public Instance Methods
rbacfull(options = {})
click to toggle source
# File lib/rbacfull.rb, line 9 def rbacfull(options = {}) include Role extend Dynamic if Rbacfull.dynamic_shortcuts options.reverse_merge!({:role_cname => 'Role'}) self.role_cname = options[:role_cname] self.role_table_name = self.role_cname.tableize.gsub(/\//, "_") default_join_table = "#{self.to_s.tableize.gsub(/\//, "_")}_#{self.role_table_name}" options.reverse_merge!({:role_join_table_name => default_join_table}) self.role_join_table_name = options[:role_join_table_name] rbacfull_options = { :class_name => options[:role_cname].camelize } rbacfull_options.merge!({ :join_table => self.role_join_table_name }) if Rbacfull.orm == "active_record" rbacfull_options.merge!(options.reject{ |k,v| ![ :before_add, :after_add, :before_remove, :after_remove ].include? k.to_sym }) has_and_belongs_to_many :roles, rbacfull_options self.adapter = Rbacfull::Adapter::Base.create("role_adapter", self.role_cname, self.name) load_dynamic_methods if Rbacfull.dynamic_shortcuts end
resourcify(association_name = :roles, options = {})
click to toggle source
# File lib/rbacfull.rb, line 36 def resourcify(association_name = :roles, options = {}) include Resource options.reverse_merge!({ :role_cname => 'Role', :dependent => :destroy }) resourcify_options = { :class_name => options[:role_cname].camelize, :as => :resource, :dependent => options[:dependent] } self.role_cname = options[:role_cname] self.role_table_name = self.role_cname.tableize.gsub(/\//, "_") has_many association_name, resourcify_options self.resource_adapter = Rbacfull::Adapter::Base.create("resource_adapter", self.role_cname, self.name) @@resource_types << self.name end
role_class()
click to toggle source
# File lib/rbacfull.rb, line 60 def role_class return self.superclass.role_class unless self.instance_variable_defined? '@role_cname' self.role_cname.constantize end
scopify()
click to toggle source
# File lib/rbacfull.rb, line 55 def scopify require "rbacfull/adapters/#{Rbacfull.orm}/scopes.rb" extend Rbacfull::Adapter::Scopes end