Module: Roles::Role::ClassMethods

Defined in:
lib/roles/role.rb

Instance Method Summary collapse

Instance Method Details

#with_role(role_name, resource = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/roles/role.rb', line 8

def with_role(role_name, resource = nil)
  if resource.nil?
    self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type IS NULL").where("#{role_table}.resource_id IS NULL")
  elsif resource.is_a? Class
    self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type LIKE '%s'", resource.to_s).where("#{role_table}.resource_id IS NULL")
  else
    self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type LIKE '%s'", resource.class.to_s).where("#{role_table}.resource_id = %s", resource.id)
  end
end