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



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

def add_class(*target_classes)
  replace_class(classes + target_classes)
end

#classesObject



37
38
39
# File 'lib/active_ldap/object_class.rb', line 37

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


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

def ensure_recommended_classes
  add_class(self.class.recommended_classes)
end

#remove_class(*target_classes) ⇒ Object



23
24
25
# File 'lib/active_ldap/object_class.rb', line 23

def remove_class(*target_classes)
  replace_class(classes - target_classes)
end

#replace_class(*target_classes) ⇒ Object Also known as: classes=



27
28
29
30
31
32
33
34
# File 'lib/active_ldap/object_class.rb', line 27

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