def class_attributes(objc)
if @@class_cache.has_key? objc
return @@class_cache[objc]
end
@@class_cache[objc] = {}
@@class_cache[objc] = {:must => attr('objectClasses', objc, 'MUST'),
:may => attr('objectClasses', objc, 'MAY')}
sups = attr('objectClasses', objc, 'SUP')
loop do
start_size = sups.size
new_sups = []
sups.each do |sup|
new_sups += attr('objectClasses', sup, 'SUP')
end
sups += new_sups
sups.uniq!
break if sups.size == start_size
end
sups.each do |sup|
@@class_cache[objc][:must] += attr('objectClasses', sup, 'MUST')
@@class_cache[objc][:may] += attr('objectClasses', sup, 'MAY')
end
@@class_cache[objc][:must].uniq!
@@class_cache[objc][:may].uniq!
return @@class_cache[objc].dup
end