Module: Roles

Defined in:
lib/roles.rb,
lib/roles/role.rb,
lib/roles/version.rb,
lib/roles/resource.rb,
lib/generators/roles/role/role_generator.rb

Defined Under Namespace

Modules: Generators, Resource, Role

Constant Summary collapse

VERSION =
"0.2.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#role_cnameObject

Returns the value of attribute role_cname.



6
7
8
# File 'lib/roles.rb', line 6

def role_cname
  @role_cname
end

#user_cnameObject

Returns the value of attribute user_cname.



7
8
9
# File 'lib/roles.rb', line 7

def user_cname
  @user_cname
end

Instance Method Details

#resourcify(options = {}) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/roles.rb', line 24

def resourcify(options = {})
  include Resource
  
  options.reverse_merge!({ :role_cname => 'Role', :dependent => :destroy, :user_cname => 'User' })
  resourcify_options = { :class_name => options[:role_cname].camelize, :as => :resource, :dependent => options[:dependent] }
  
  self.role_cname = options[:role_cname]
  self.user_cname = options[:user_cname]

  has_many self.role_table.to_sym, resourcify_options
end

#role_classObject



48
49
50
# File 'lib/roles.rb', line 48

def role_class
  @role_class ||= self.role_cname.constantize
end

#role_tableObject



40
41
42
# File 'lib/roles.rb', line 40

def role_table
  @role_table ||= self.role_cname.tableize
end

#rolify(options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/roles.rb', line 9

def rolify(options = {})
  include Role
  
  options.reverse_merge!({:role_cname => 'Role'})
  options.reverse_merge!({:user_cname => 'User'})

  roles_options = { :class_name => options[:role_cname].camelize, :dependent => :destroy }
  roles_options.merge!(options.select{ |k,v| [:before_add, :after_add, :before_remove, :after_remove].include? k.to_sym })

  self.role_cname = options[:role_cname]
  self.user_cname = options[:user_cname]

  has_many self.role_table.to_sym, roles_options
end

#user_classObject



44
45
46
# File 'lib/roles.rb', line 44

def user_class
  @user_class ||= self.user_cname.constantize
end

#user_tableObject



36
37
38
# File 'lib/roles.rb', line 36

def user_table
  @user_table ||= self.user_table.tableize
end