| Class | ActiveLdap::Association::HasManyWrap |
| In: |
lib/active_ldap/association/has_many_wrap.rb
|
| Parent: | Collection |
# File lib/active_ldap/association/has_many_wrap.rb, line 23
23: def delete_entries(entries)
24: old_value = @owner[@options[:wrap], true]
25: _primary_key = primary_key
26: if _primary_key == "dn"
27: old_value = dn_values_to_string_values(old_value)
28: end
29: new_value = old_value - entries.collect {|entry| entry[_primary_key]}
30: new_value = new_value.uniq.sort
31: if old_value != new_value
32: @owner[@options[:wrap]] = new_value
33: @owner.save
34: end
35: end
# File lib/active_ldap/association/has_many_wrap.rb, line 37
37: def find_target
38: targets, requested_targets = collect_targets(:wrap, true)
39: return [] if targets.nil?
40:
41: found_targets = {}
42: foreign_base_key = primary_key
43: targets.each do |target|
44: found_targets[target[foreign_base_key]] ||= target
45: end
46:
47: klass = foreign_class
48: requested_targets.collect do |name|
49: found_targets[name] || klass.new(name)
50: end
51: end
# File lib/active_ldap/association/has_many_wrap.rb, line 10
10: def insert_entry(entry)
11: old_value = @owner[@options[:wrap], true]
12: _primary_key = primary_key
13: if _primary_key == "dn"
14: old_value = dn_values_to_string_values(old_value)
15: end
16: new_value = (old_value + entry[_primary_key, true]).uniq.sort
17: if old_value != new_value
18: @owner[@options[:wrap]] = new_value
19: @owner.save
20: end
21: end