| Class | ActiveLdap::Association::Collection |
| In: |
lib/active_ldap/association/collection.rb
|
| Parent: | Proxy |
# File lib/active_ldap/association/collection.rb, line 18
18: def <<(*entries)
19: add_entries(*entries)
20: end
# File lib/active_ldap/association/collection.rb, line 28
28: def delete(*entries)
29: entries = flatten_deeper(entries).reject do |entry|
30: @target.delete(entry) if entry.new_entry?
31: entry.new_entry?
32: end
33: return if entries.empty?
34:
35: delete_entries(entries)
36: entries.each do |entry|
37: @target.delete(entry)
38: end
39: end
# File lib/active_ldap/association/collection.rb, line 24
24: def each(&block)
25: to_ary.each(&block)
26: end
# File lib/active_ldap/association/collection.rb, line 62
62: def exists?
63: load_target
64: not @target.empty?
65: end
# File lib/active_ldap/association/collection.rb, line 41
41: def replace(others)
42: load_target
43:
44: entry = @target.first
45: if entry.nil?
46: deleted_entries = []
47: added_entries = others
48: else
49: base_class = entry.class
50: others = others.collect do |other|
51: other = base_class.find(other) unless other.is_a?(base_class)
52: other
53: end
54: deleted_entries = @target - others
55: added_entries = others - @target
56: end
57:
58: delete(deleted_entries)
59: concat(added_entries)
60: end
# File lib/active_ldap/association/collection.rb, line 13
13: def reset
14: @target = []
15: @loaded = false
16: end
# File lib/active_ldap/association/collection.rb, line 8
8: def to_ary
9: load_target
10: @target.to_ary
11: end
# File lib/active_ldap/association/collection.rb, line 79
79: def add_entries(*entries)
80: result = true
81: load_target
82:
83: flatten_deeper(entries).each do |entry|
84: unless @owner.new_entry?
85: infect_connection(entry)
86: result &&= insert_entry(entry)
87: end
88: @target << entry
89: end
90:
91: result && self
92: end
# File lib/active_ldap/association/collection.rb, line 94
94: def dn_values_to_string_values(values)
95: values.collect do |value|
96: if value.is_a?(DN)
97: value.to_s
98: else
99: value
100: end
101: end
102: end
# File lib/active_ldap/association/collection.rb, line 68
68: def flatten_deeper(array)
69: array.collect do |element|
70: element.respond_to?(:flatten) ? element.flatten : element
71: end.flatten
72: end