Module: ActiveLdap::ObjectClass

Defined in:
lib/active_ldap/object_class.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
# File 'lib/active_ldap/object_class.rb', line 3

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#add_class(*target_classes) ⇒ Object



10
11
12
# File 'lib/active_ldap/object_class.rb', line 10

def add_class(*target_classes)
  replace_class((classes + target_classes.flatten).uniq)
end

#classesObject



30
31
32
# File 'lib/active_ldap/object_class.rb', line 30

def classes
  (get_attribute('objectClass', true) || []).dup
end


14
15
16
# File 'lib/active_ldap/object_class.rb', line 14

def ensure_recommended_classes
  add_class(self.class.recommended_classes)
end

#remove_class(*target_classes) ⇒ Object



18
19
20
# File 'lib/active_ldap/object_class.rb', line 18

def remove_class(*target_classes)
  replace_class((classes - target_classes.flatten).uniq)
end

#replace_class(*target_classes) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/active_ldap/object_class.rb', line 22

def replace_class(*target_classes)
  new_classes = target_classes.flatten.uniq
  assert_object_classes(new_classes)
  if new_classes.sort != classes.sort
    set_attribute('objectClass', new_classes)
  end
end