Class | ActiveLdap::Schema::ObjectClass |
In: |
lib/active_ldap/schema.rb
|
Parent: | Entry |
super_classes | [R] |
# File lib/active_ldap/schema.rb, line 565 565: def initialize(name, schema) 566: super(name, schema, "objectClasses") 567: end
# File lib/active_ldap/schema.rb, line 581 581: def may(include_super_class=true) 582: if include_super_class 583: @all_may 584: else 585: @may 586: end 587: end
# File lib/active_ldap/schema.rb, line 573 573: def must(include_super_class=true) 574: if include_super_class 575: @all_must 576: else 577: @must 578: end 579: end
# File lib/active_ldap/schema.rb, line 569 569: def super_class?(object_class) 570: @super_classes.include?(object_class) 571: end
# File lib/active_ldap/schema.rb, line 632 632: def attribute(attribute_name, name=@name) 633: @schema.object_class_attribute(name, attribute_name) 634: end
# File lib/active_ldap/schema.rb, line 614 614: def collect_attributes 615: must = attribute('MUST').collect {|name| @schema.attribute(name)} 616: may = attribute('MAY').collect {|name| @schema.attribute(name)} 617: 618: all_must = must.dup 619: all_may = may.dup 620: @super_classes.each do |super_class| 621: all_must.concat(super_class.must(false)) 622: all_may.concat(super_class.may(false)) 623: end 624: 625: # Clean out the dupes. 626: all_must.uniq! 627: all_may.uniq! 628: 629: [must, may, all_must, all_may] 630: end
# File lib/active_ldap/schema.rb, line 590 590: def collect_info 591: @description = attribute("DESC")[0] 592: @super_classes = collect_super_classes 593: @must, @may, @all_must, @all_may = collect_attributes 594: end
# File lib/active_ldap/schema.rb, line 596 596: def collect_super_classes 597: super_classes = attribute('SUP') 598: loop do 599: start_size = super_classes.size 600: new_super_classes = [] 601: super_classes.each do |super_class| 602: new_super_classes.concat(attribute('SUP', super_class)) 603: end 604: 605: super_classes.concat(new_super_classes) 606: super_classes.uniq! 607: break if super_classes.size == start_size 608: end 609: super_classes.collect do |name| 610: @schema.object_class(name) 611: end 612: end