Class ActiveLdap::Schema::ObjectClass
In: lib/active_ldap/schema.rb
Parent: Entry
Error DeleteError LdapError AdapterNotSpecified OperationNotPermitted RequiredAttributeMissed LdifInvalid AttributeAssignmentError RequiredObjectClassMissed DistinguishedNameNotSetError StrongAuthenticationRequired ConnectionError SaveError EntryNotFound AuthenticationError EntryNotSaved UnknownAttribute ConnectionNotEstablished TimeoutError ConfigurationError AdapterNotFound DistinguishedNameInvalid ObjectClassError EntryInvalid EntryAlreadyExist Base DistinguishedName Ldif Reloadable::Deprecated Reloadable::Subclasses Enumerable Collection StandardError Children HasMany HasManyWrap BelongsToMany Proxy BelongsTo Common Find LDIF Delete Update GetText Parser GetTextSupport Base\n[lib/active_ldap/adapter/base.rb\nlib/active_ldap/adapter/ldap.rb\nlib/active_ldap/adapter/net_ldap.rb] Ldap NetLdap Normalize ActiveRecord::Callbacks ActiveRecord::Validations Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] lib/active_ldap/base.rb lib/active_ldap/schema.rb lib/active_ldap/ldif.rb lib/active_ldap/distinguished_name.rb lib/active_ldap/ldap_error.rb ClassMethods Associations ClassMethods HumanReadable lib/active_ldap/association/has_many_wrap.rb lib/active_ldap/association/has_many.rb lib/active_ldap/association/proxy.rb lib/active_ldap/association/children.rb lib/active_ldap/association/collection.rb lib/active_ldap/association/belongs_to_many.rb lib/active_ldap/association/belongs_to.rb HasManyUtils Association ClassMethods Tree Acts Common LDIF Delete Find Update Operations lib/active_ldap/get_text/parser.rb GetText ClassMethods Configuration Command lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb Adapter GetTextSupport Normalize ClassMethods Attributes Escape Callbacks ClassMethods ObjectClass Helper Validations ClassMethods Connection GetTextFallback Populate Salt UserPassword ActiveLdap dot/m_40_0.png

Methods

Attributes

super_classes  [R] 

Public Class methods

[Source]

     # File lib/active_ldap/schema.rb, line 456
456:       def initialize(name, schema)
457:         super(name, schema, "objectClasses")
458:       end

Public Instance methods

[Source]

     # File lib/active_ldap/schema.rb, line 472
472:       def may(include_super_class=true)
473:         if include_super_class
474:           @all_may
475:         else
476:           @may
477:         end
478:       end

[Source]

     # File lib/active_ldap/schema.rb, line 464
464:       def must(include_super_class=true)
465:         if include_super_class
466:           @all_must
467:         else
468:           @must
469:         end
470:       end

[Source]

     # File lib/active_ldap/schema.rb, line 460
460:       def super_class?(object_class)
461:         @super_classes.include?(object_class)
462:       end

Private Instance methods

[Source]

     # File lib/active_ldap/schema.rb, line 523
523:       def attribute(attribute_name, name=@name)
524:         @schema.object_class_attribute(name, attribute_name)
525:       end

[Source]

     # File lib/active_ldap/schema.rb, line 505
505:       def collect_attributes
506:         must = attribute('MUST').collect {|name| @schema.attribute(name)}
507:         may = attribute('MAY').collect {|name| @schema.attribute(name)}
508: 
509:         all_must = must.dup
510:         all_may = may.dup
511:         @super_classes.each do |super_class|
512:           all_must.concat(super_class.must(false))
513:           all_may.concat(super_class.may(false))
514:         end
515: 
516:         # Clean out the dupes.
517:         all_must.uniq!
518:         all_may.uniq!
519: 
520:         [must, may, all_must, all_may]
521:       end

[Source]

     # File lib/active_ldap/schema.rb, line 481
481:       def collect_info
482:         @description = attribute("DESC")[0]
483:         @super_classes = collect_super_classes
484:         @must, @may, @all_must, @all_may = collect_attributes
485:       end

[Source]

     # File lib/active_ldap/schema.rb, line 487
487:       def collect_super_classes
488:         super_classes = attribute('SUP')
489:         loop do
490:           start_size = super_classes.size
491:           new_super_classes = []
492:           super_classes.each do |super_class|
493:             new_super_classes.concat(attribute('SUP', super_class))
494:           end
495: 
496:           super_classes.concat(new_super_classes)
497:           super_classes.uniq!
498:           break if super_classes.size == start_size
499:         end
500:         super_classes.collect do |name|
501:           @schema.object_class(name)
502:         end
503:       end

[Validate]