# File lib/active_ldap/association/proxy.rb, line 72 def primary_key @options[:primary_key_name] || @owner.dn_attribute end
class ActiveLdap::Association::Proxy
Public Class Methods
Source
# File lib/active_ldap/association/proxy.rb, line 8 def initialize(owner, options) @owner = owner @options = options reset extend(options[:extend]) if options[:extend] end
Public Instance Methods
Source
# File lib/active_ldap/association/proxy.rb, line 20 def ===(other) load_target and other === @target end
Source
# File lib/active_ldap/association/proxy.rb, line 51 def exists? load_target not @target.nil? end
Source
# File lib/active_ldap/association/proxy.rb, line 29 def reload reset load_target end
Source
# File lib/active_ldap/association/proxy.rb, line 24 def reset @target = nil @loaded = false end
Source
# File lib/active_ldap/association/proxy.rb, line 15 def respond_to?(symbol, include_priv=false) proxy_respond_to?(symbol, include_priv) or (load_target && @target.respond_to?(symbol, include_priv)) end
Also aliased as: proxy_respond_to?
Source
# File lib/active_ldap/association/proxy.rb, line 46 def target=(target) @target = target loaded end
Private Instance Methods
Source
# File lib/active_ldap/association/proxy.rb, line 93 def find_options(options={}) if @owner.connection != @owner.class.connection {:connection => @owner.connection}.merge(options) else options end end
Source
# File lib/active_ldap/association/proxy.rb, line 62 def foreign_class klass = @owner.class.associated_class(@options[:association_id]) klass = @owner.class.module_eval(klass) if klass.is_a?(String) klass end
Source
# File lib/active_ldap/association/proxy.rb, line 76 def foreign_key @options[:foreign_key_name] || foreign_class.dn_attribute end
Source
# File lib/active_ldap/association/proxy.rb, line 68 def have_foreign_key? false end
Source
# File lib/active_ldap/association/proxy.rb, line 101 def infect_connection(target) conn = @owner.instance_variable_get("@connection") target.connection = conn if conn end
Source
# File lib/active_ldap/association/proxy.rb, line 80 def load_target if !@owner.new_entry? or have_foreign_key? begin @target = find_target unless loaded? rescue EntryNotFound reset end end loaded if target target end
Source
# File lib/active_ldap/association/proxy.rb, line 57 def method_missing(method, *args, &block) load_target @target.send(method, *args, &block) end