Project

General

Profile

« Previous | Next » 

Revision a24bc5b1

Added by Marc Dequènes almost 15 years ago

  • ID a24bc5b15ef38d0047f2624df1f195a63f48fc13

[evol] improved 'list' command

View differences:

lib/ldap_shadows/object.rb
present_aspects
end
def objectclasses_attr_list(objectclass_list)
def self.objectclasses_attr_list(objectclass_list)
objectclass_list = [objectclass_list] unless objectclass_list.is_a? Array
list = []
objectclass_list.each do |objectclass|
......
list
end
def self.possible_attributes
klasses = self.required_classes
klasses += self.presentation[:optional_classes] if self.presentation.has_key?(:optional_classes)
self.objectclasses_attr_list(klasses)
end
def self.possible_attributes_for_aspect(aspect)
aspect_data = self.mapper.get_aspect(aspect)
self.objectclasses_attr_list(aspect_data[:mapping][:classes])
end
def info_for_relation(rel)
return nil unless self.relations.include?(rel)
......
if self.class.presentation.has_key?(:associated_attributes)
taken_attr_list += self.class.presentation[:associated_attributes]
end
taken_attr_list += objectclasses_attr_list(self.required_classes + (self.class.presentation[:optional_classes] || []))
taken_attr_list += self.class.possible_attributes
end
taken_attr_list = taken_attr_list.uniq & attr_list
obj_info = fetch_attributes_data(taken_attr_list, expert_attributes)
......
# second pass to dispath the remaining attributes
unless attr_list.empty?
aspects.each do |aspect|
aspect_data = self.class.mapper.get_aspect(aspect)
taken_attr_list = (objectclasses_attr_list(aspect_data[:mapping][:classes]) & attr_list)
taken_attr_list = (self.class.possible_attributes_for_aspect(aspect) & attr_list)
obj_aspects[aspect] ||= {}
obj_aspects[aspect].merge!(fetch_attributes_data(taken_attr_list, expert_attributes))
attr_list -= taken_attr_list

Also available in: Unified diff