Method: Rolify::Role#add_role

Defined in:
lib/rolify/role.rb

#add_role(role_name, resource = nil) ⇒ Object Also known as: grant



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rolify/role.rb', line 12

def add_role(role_name, resource = nil)
  role = self.class.adapter.find_or_create_by(role_name.to_s,
                                              (resource.is_a?(Class) ? resource.to_s : resource.class.name if resource),
                                              (resource.id if resource && !resource.is_a?(Class)))

  if !roles.include?(role)
    self.class.define_dynamic_method(role_name, resource) if Rolify.dynamic_shortcuts
    self.class.adapter.add(self, role)
  end
  role
end