Class | ActiveLdap::Schema::ObjectClass |
In: |
lib/active_ldap/schema.rb
|
Parent: | Entry |
super_classes | [R] |
# File lib/active_ldap/schema.rb, line 456 456: def initialize(name, schema) 457: super(name, schema, "objectClasses") 458: end
# 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
# 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
# File lib/active_ldap/schema.rb, line 460 460: def super_class?(object_class) 461: @super_classes.include?(object_class) 462: end
# 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
# 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
# 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
# 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