# File lib/puppet/provider/ldap.rb, line 72
 72:     def initialize(*args)
 73:         raise(Puppet::DevError, "No LDAP Configuration defined for %s" % self.class) unless self.class.manager
 74:         raise(Puppet::DevError, "Invalid LDAP Configuration defined for %s" % self.class) unless self.class.manager.valid?
 75:         super
 76: 
 77:         @property_hash = @property_hash.inject({}) do |result, ary|
 78:             param, values = ary
 79: 
 80:             # Skip any attributes we don't manage.
 81:             next result unless self.class.resource_type.validattr?(param)
 82: 
 83:             paramclass = self.class.resource_type.attrclass(param)
 84: 
 85:             unless values.is_a?(Array)
 86:                 result[param] = values
 87:                 next result
 88:             end
 89: 
 90:             # Only use the first value if the attribute class doesn't manage
 91:             # arrays of values.
 92:             if paramclass.superclass == Puppet::Parameter or paramclass.array_matching == :first
 93:                 result[param] = values[0]
 94:             else
 95:                 result[param] = values
 96:             end
 97:             result
 98:         end
 99: 
100:         # Make a duplicate, so that we have a copy for comparison
101:         # at the end.
102:         @ldap_properties = @property_hash.dup
103:     end