def update_all(attributes, filter=nil, options={})
search_options = options.dup
if filter
if filter.is_a?(String) and /[=\(\)&\|]/ !~ filter
search_options = search_options.merge(:value => filter)
else
search_options = search_options.merge(:filter => filter)
end
end
targets = search(search_options).collect do |dn, attrs|
dn
end
unnormalized_attributes = attributes.collect do |name, value|
normalized_name, normalized_value = normalize_attribute(name, value)
[:replace, normalized_name,
unnormalize_attribute(normalized_name, normalized_value)]
end
options[:connection] ||= connection
conn = options[:connection]
targets.each do |dn|
conn.modify(dn, unnormalized_attributes, options)
end
end