Class | ActiveLdap::Association::Proxy |
In: |
lib/active_ldap/association/proxy.rb
|
Parent: | Object |
respond_to? | -> | proxy_respond_to? |
extend | -> | proxy_extend |
# File lib/active_ldap/association/proxy.rb, line 7 7: def initialize(owner, options) 8: @owner = owner 9: @options = options 10: extend(options[:extend]) if options[:extend] 11: reset 12: end
# File lib/active_ldap/association/proxy.rb, line 19 19: def ===(other) 20: load_target and other === @target 21: end
# File lib/active_ldap/association/proxy.rb, line 50 50: def exists? 51: load_target 52: not @target.nil? 53: end
# File lib/active_ldap/association/proxy.rb, line 28 28: def reload 29: reset 30: load_target 31: end
# File lib/active_ldap/association/proxy.rb, line 23 23: def reset 24: @target = nil 25: @loaded = false 26: end
# File lib/active_ldap/association/proxy.rb, line 14 14: def respond_to?(symbol, include_priv=false) 15: proxy_respond_to?(symbol, include_priv) or 16: (load_target && @target.respond_to?(symbol, include_priv)) 17: end
# File lib/active_ldap/association/proxy.rb, line 45 45: def target=(target) 46: @target = target 47: loaded 48: end
# File lib/active_ldap/association/proxy.rb, line 88 88: def find_options(options={}) 89: if @owner.connection != @owner.class.connection 90: {:connection => @owner.connection}.merge(options) 91: else 92: options 93: end 94: end
# File lib/active_ldap/association/proxy.rb, line 61 61: def foreign_class 62: klass = @owner.class.associated_class(@options[:association_id]) 63: klass = @owner.class.module_eval(klass) if klass.is_a?(String) 64: klass 65: end
# File lib/active_ldap/association/proxy.rb, line 96 96: def infect_connection(target) 97: conn = @owner.instance_variable_get("@connection") 98: target.connection = conn if conn 99: end
# File lib/active_ldap/association/proxy.rb, line 75 75: def load_target 76: if !@owner.new_entry? or have_foreign_key? 77: begin 78: @target = find_target unless loaded? 79: rescue EntryNotFound 80: reset 81: end 82: end 83: 84: loaded if target 85: target 86: end
# File lib/active_ldap/association/proxy.rb, line 56 56: def method_missing(method, *args, &block) 57: load_target 58: @target.send(method, *args, &block) 59: end