| Module | ActiveLdap::Acts::Tree |
| In: |
lib/active_ldap/acts/tree.rb
|
# File lib/active_ldap/acts/tree.rb, line 4
4: def self.included(base)
5: base.class_eval do
6: extend(ClassMethods)
7: association_accessor(:children) do |target|
8: Association::Children.new(target, {})
9: end
10: end
11: end
# File lib/active_ldap/acts/tree.rb, line 49
49: def parent
50: if base == self.class.base
51: nil
52: else
53: find(:first, :base => base, :scope => :base)
54: end
55: end
# File lib/active_ldap/acts/tree.rb, line 57
57: def parent=(entry)
58: if entry.is_a?(String) or entry.is_a?(DN)
59: base = entry
60: elsif entry.respond_to?(:dn)
61: base = entry.dn
62: if entry.respond_to?(:clear_association_cache)
63: entry.clear_association_cache
64: end
65: else
66: message = _("parent must be an entry or parent DN: %s") % entry.inspect
67: raise ArgumentError, message
68: end
69: destroy unless new_entry?
70: self.dn = "#{dn_attribute}=#{id},#{base}"
71: save
72: end