|
|
|
module LdapShadows
|
|
module Display
|
|
def self.display_fields(attr_data, options = {})
|
|
attr_data.each_pair do |key, val|
|
|
field_name = translate_field_name(key)
|
|
field_name += " [#{key}]" if options[:handles]
|
|
puts field_name + ": " + (val.is_a?(Array) ? val.sort.collect{|v| v.to_s }.join(", ") : val.to_s)
|
|
end
|
|
end
|
|
|
|
def self.display_item(item, options = {})
|
|
obj_human_name = translate_object_name(item.handle)
|
|
name = item.human_name
|
|
name += " [#{item.name}]" if options[:handles]
|
|
puts "=== #{obj_human_name}: #{name} ==="
|
|
|
|
if options[:debug]
|
|
puts item.to_s
|
|
puts "--- Detected Info ---"
|
|
puts "aspects: " + item.aspects.sort.join(", ")
|
|
|
|
puts "--- Family ---"
|
|
puts "parent: " + item.family_parent_dn.to_s
|
|
puts "siblings: " + item.family_siblings_dn.join(", ")
|
|
puts "children: " + item.family_children_dn.join(", ")
|
|
|
|
puts "--- Relations ---"
|
|
item.relations.each do |rel|
|
|
puts "#{rel}: " + item.send(rel).collect{|g| g.name }.join(", ")
|
|
end
|
|
else
|
|
obj_info, obj_aspects = item.organized_data(:expert => options[:expert], :skip_binary => true)
|
|
|
|
display_fields(obj_info, options)
|
|
|
|
obj_aspects.each_pair do |aspect_name, aspect_data|
|
|
puts "--- #{translate_aspect_name(aspect_name)} ---"
|
|
display_fields(aspect_data, options)
|
|
end
|
|
end
|
|
end
|
|
|
|
def self.display_hash_tree(tree, level)
|
|
tree.keys.sort.each do |key|
|
|
str = ""
|
|
str += " " + "| " * (level -1) + "+-- " if level > 0
|
|
str += "<#{key}>"
|
|
puts str
|
|
|
|
display_hash_tree(tree[key], level + 1) if tree[key]
|
|
end
|
|
end
|
|
end
|
|
end
|