# File lib/puppet/provider/ldap.rb, line 72
 72:   def initialize(*args)
 73:     raise(Puppet::DevError, "No LDAP Configuration defined for #{self.class}") unless self.class.manager
 74:     raise(Puppet::DevError, "Invalid LDAP Configuration defined for #{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.valid_parameter?(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