def initialize(attributes=nil)
init_base
@new_entry = true
initial_classes = required_classes | recommended_classes
case attributes
when nil
self.classes = initial_classes
when String, Array, DN
self.classes = initial_classes
self.dn = attributes
when Hash
classes, attributes = extract_object_class(attributes)
self.classes = classes | initial_classes
normalized_attributes = {}
attributes.each do |key, value|
real_key = to_real_attribute_name(key) || key
normalized_attributes[real_key] = value
end
self.dn = normalized_attributes.delete(dn_attribute)
self.attributes = normalized_attributes
else
format = _("'%s' must be either nil, DN value as ActiveLdap::DN, " \
"String or Array or attributes as Hash")
raise ArgumentError, format % attributes.inspect
end
yield self if block_given?
end