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