Sha256: 43b28e86e6e04d975f049bd21ad9b7797558fdbfef67afedd0a1e13f0538ea42
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
require 'active_ldap/association/collection' require 'active_ldap/association/has_many_utils' module ActiveLdap module Association class HasManyWrap < Collection include HasManyUtils private def insert_entry(entry) old_value = @owner[@options[:wrap], true] new_value = (old_value + entry[primary_key, true]).uniq.sort if old_value != new_value @owner[@options[:wrap]] = new_value @owner.save end end def delete_entries(entries) old_value = @owner[@options[:wrap], true] new_value = old_value - entries.collect {|entry| entry[primary_key]} new_value = new_value.uniq.sort if old_value != new_value @owner[@options[:wrap]] = new_value @owner.save end end def find_target targets, requested_targets = collect_targets(:wrap, true) return [] if targets.nil? found_targets = {} foreign_base_key = primary_key targets.each do |target| found_targets[target.send(foreign_base_key)] ||= target end klass = foreign_class requested_targets.collect do |name| found_targets[name] || klass.new(name) end end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
activeldap-0.9.0 | lib/active_ldap/association/has_many_wrap.rb |
ruby-activeldap-0.8.3.1 | lib/active_ldap/association/has_many_wrap.rb |