| Class | ActiveLdap::EntryAttribute |
| In: |
lib/active_ldap/entry_attribute.rb
|
| Parent: | Object |
| may | [R] | |
| must | [R] | |
| object_classes | [R] | |
| schemata | [R] |
# File lib/active_ldap/entry_attribute.rb, line 8
8: def initialize(schema, object_classes)
9: @schemata = {}
10: @names = {}
11: @normalized_names = {}
12: @aliases = {}
13: @must = []
14: @may = []
15: @object_classes = []
16: register(schema.attribute('objectClass'))
17: object_classes.each do |objc|
18: # get all attributes for the class
19: object_class = schema.object_class(objc)
20: @object_classes << object_class
21: @must.concat(object_class.must)
22: @may.concat(object_class.may)
23: end
24: @must.uniq!
25: @may.uniq!
26: (@must + @may).each do |attr|
27: # Update attr_method with appropriate
28: register(attr)
29: end
30: end
# File lib/active_ldap/entry_attribute.rb, line 59
59: def all_names
60: @names.keys + @aliases.keys
61: end
# File lib/active_ldap/entry_attribute.rb, line 32
32: def names(normalize=false)
33: names = @names.keys
34: if normalize
35: names.collect do |name|
36: normalize(name)
37: end.uniq
38: else
39: names
40: end
41: end
# File lib/active_ldap/entry_attribute.rb, line 43
43: def normalize(name, allow_normalized_name=false)
44: return name if name.nil?
45: return nil if @names.empty? and @aliases.empty?
46: name = name.to_s
47: real_name = @names[name]
48: real_name ||= @aliases[name.underscore]
49: if real_name
50: real_name
51: elsif allow_normalized_name
52: return nil if @normalized_names.empty?
53: @normalized_names[normalize_attribute_name(name)]
54: else
55: nil
56: end
57: end
Make a method entry for every alias of a valid attribute and map it onto the first attribute passed in.
# File lib/active_ldap/entry_attribute.rb, line 67
67: def register(attribute)
68: real_name = attribute.name
69: return if @schemata.has_key?(real_name)
70: @schemata[real_name] = attribute
71: ([real_name] + attribute.aliases).each do |name|
72: @names[name] = real_name
73: @aliases[name.underscore] = real_name
74: @normalized_names[normalize_attribute_name(name)] = real_name
75: end
76: end