Module: RoleStrategy::ActiveRecord::ManyRoles::Implementation

Defined in:
lib/roles_active_record/strategy/multi/many_roles.rb

Instance Method Summary collapse

Instance Method Details

#add_roles(*_roles) ⇒ Object



50
51
52
53
54
55
56
57
58
# File 'lib/roles_active_record/strategy/multi/many_roles.rb', line 50

def add_roles(*_roles)  
  _roles = get_roles(_roles)
  return nil if _roles.none?                

  role_relations = role_class.find_roles(_roles)
  puts "role_relations: #{role_relations.inspect}"
  self.send(role_attribute) << role_relations
  save
end

#role_attributeObject



36
37
38
# File 'lib/roles_active_record/strategy/multi/many_roles.rb', line 36

def role_attribute
  strategy_class.roles_attribute_name
end

#rolesObject

query assigned roles



61
62
63
# File 'lib/roles_active_record/strategy/multi/many_roles.rb', line 61

def roles
  self.send(role_attribute)
end

#roles=(*_roles) ⇒ Object

assign roles



41
42
43
44
45
46
47
48
# File 'lib/roles_active_record/strategy/multi/many_roles.rb', line 41

def roles=(*_roles)  
  _roles = get_roles(_roles)
  return nil if _roles.none?

  role_relations = role_class.find_roles(_roles) 
  self.send("#{role_attribute}=", role_relations)
  save
end

#roles_listObject



65
66
67
# File 'lib/roles_active_record/strategy/multi/many_roles.rb', line 65

def roles_list     
  [roles].flatten.map{|r| r.name }.compact.to_symbols
end