Class ActiveLdap::Association::Proxy
In: lib/active_ldap/association/proxy.rb
Parent: Object
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid LdapError DistinguishedNameNotSetError EntryNotFound SaveError StrongAuthenticationRequired AdapterNotFound ConnectionNotEstablished TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError DistinguishedNameInvalid DistinguishedName Base Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany BelongsToMany Proxy BelongsTo Common Find LDIF Delete Update Normalizable GetText Parser ActiveRecord::Callbacks ActiveRecord::Validations 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 Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/schema.rb lib/active_ldap/entry_attribute.rb lib/active_ldap/ldif.rb lib/active_ldap/ldap_error.rb 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 Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations GetTextSupport Escape ClassMethods Normalizable Attributes ClassMethods Configuration ClassMethods ObjectClass lib/active_ldap/get_text/parser.rb GetText ClassMethods Callbacks Validations lib/active_ldap/adapter/jndi_connection.rb lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb lib/active_ldap/adapter/jndi.rb Adapter Helper GetTextFallback ClassMethods HumanReadable Salt UserPassword ClassMethods Connection ActiveLdap dot/m_44_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 7
 7:       def initialize(owner, options)
 8:         @owner = owner
 9:         @options = options
10:         extend(options[:extend]) if options[:extend]
11:         reset
12:       end

Public Instance methods

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

    # 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

[Source]

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

[Source]

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

Private Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

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

[Validate]