Class ActiveLdap::Association::Proxy
In: lib/active_ldap/association/proxy.rb
Parent: Object
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid DistinguishedNameNotSetError EntryNotFound LdapError SaveError StrongAuthenticationRequired NotImplemented AdapterNotFound TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError ConnectionNotSetup DistinguishedNameInvalid Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] Base DistinguishedName Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany BelongsToMany Proxy BelongsTo Normalizable Common Find LDIF Delete Update ActiveRecord::Callbacks GetText Parser Base\n[lib/active_ldap/adapter/base.rb\nlib/active_ldap/adapter/jndi.rb\nlib/active_ldap/adapter/ldap.rb\nlib/active_ldap/adapter/net_ldap.rb] Jndi Ldap NetLdap GetTextSupport ActiveRecord::Validations Xml JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/xml.rb lib/active_ldap/schema.rb lib/active_ldap/entry_attribute.rb lib/active_ldap/ldif.rb lib/active_ldap/ldap_error.rb Compatible ClassMethods Associations LdapBenchmarking ActionController Populate lib/active_ldap/association/has_many_wrap.rb lib/active_ldap/association/children.rb lib/active_ldap/association/collection.rb lib/active_ldap/association/proxy.rb lib/active_ldap/association/belongs_to_many.rb lib/active_ldap/association/belongs_to.rb lib/active_ldap/association/has_many.rb HasManyUtils Association ClassMethods Tree Acts Command ClassMethods Normalizable Attributes Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations GetTextSupport Escape ClassMethods Configuration ClassMethods ObjectClass ClassMethods Callbacks lib/active_ldap/get_text/parser.rb GetText lib/active_ldap/adapter/jndi_connection.rb lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb lib/active_ldap/adapter/base.rb lib/active_ldap/adapter/jndi.rb Adapter Validations GetTextFallback Helper ClassMethods HumanReadable Salt UserPassword ClassMethods Connection ActiveLdap dot/m_46_0.png

Methods

External Aliases

respond_to? -> proxy_respond_to?
extend -> proxy_extend

Public Class methods

[Source]

    # File lib/active_ldap/association/proxy.rb, line 8
 8:       def initialize(owner, options)
 9:         @owner = owner
10:         @options = options
11:         reset
12:         extend(options[:extend]) if options[:extend]
13:       end

Public Instance methods

[Source]

    # File lib/active_ldap/association/proxy.rb, line 20
20:       def ===(other)
21:         load_target and other === @target
22:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 51
51:       def exists?
52:         load_target
53:         not @target.nil?
54:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 38
38:       def loaded
39:         @loaded = true
40:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 34
34:       def loaded?
35:         @loaded
36:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 29
29:       def reload
30:         reset
31:         load_target
32:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 24
24:       def reset
25:         @target = nil
26:         @loaded = false
27:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 15
15:       def respond_to?(symbol, include_priv=false)
16:         proxy_respond_to?(symbol, include_priv) or
17:           (load_target && @target.respond_to?(symbol, include_priv))
18:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 42
42:       def target
43:         @target
44:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 46
46:       def target=(target)
47:         @target = target
48:         loaded
49:       end

Private Instance methods

[Source]

    # File lib/active_ldap/association/proxy.rb, line 93
93:       def find_options(options={})
94:         if @owner.connection != @owner.class.connection
95:           {:connection => @owner.connection}.merge(options)
96:         else
97:           options
98:         end
99:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 62
62:       def foreign_class
63:         klass = @owner.class.associated_class(@options[:association_id])
64:         klass = @owner.class.module_eval(klass) if klass.is_a?(String)
65:         klass
66:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 76
76:       def foreign_key
77:         @options[:foreign_key_name] || foreign_class.dn_attribute
78:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 68
68:       def have_foreign_key?
69:         false
70:       end

[Source]

     # File lib/active_ldap/association/proxy.rb, line 101
101:       def infect_connection(target)
102:         conn = @owner.instance_variable_get("@connection")
103:         target.connection = conn if conn
104:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 80
80:       def load_target
81:         if !@owner.new_entry? or have_foreign_key?
82:           begin
83:             @target = find_target unless loaded?
84:           rescue EntryNotFound
85:             reset
86:           end
87:         end
88: 
89:         loaded if target
90:         target
91:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 57
57:       def method_missing(method, *args, &block)
58:         load_target
59:         @target.send(method, *args, &block)
60:       end

[Source]

    # File lib/active_ldap/association/proxy.rb, line 72
72:       def primary_key
73:         @options[:primary_key_name] || @owner.dn_attribute
74:       end

[Validate]