# class ActiveLdap::Association::BelongsTo

### Public Instance Methods

replace(entry) click to toggle source

    # File lib/active_ldap/association/belongs_to.rb, line 6
    def replace(entry)
      if entry.nil?
        @target = @owner[@options[:foreign_key_name]] = nil
      else
        @target = (Proxy === entry ? entry.target : entry)
        infect_connection(@target)
        unless entry.new_entry?
          @owner[@options[:foreign_key_name]] = entry[primary_key]
        end
        @updated = true
      end

      loaded
      entry
    end

updated?() click to toggle source

    # File lib/active_ldap/association/belongs_to.rb, line 22
    def updated?
      @updated
    end

### Private Instance Methods

find_target() click to toggle source

    # File lib/active_ldap/association/belongs_to.rb, line 31
    def find_target
      value = @owner[@options[:foreign_key_name]]
      raise EntryNotFound if value.nil?
      key = primary_key
      if key == "dn"
        result = foreign_class.find(value, find_options)
      else
        filter = {key => value}
        options = find_options(:filter => filter, :limit => 1)
        result = foreign_class.find(:all, options).first
      end
      raise EntryNotFound if result.nil?
      result
    end

have_foreign_key?() click to toggle source

    # File lib/active_ldap/association/belongs_to.rb, line 27
    def have_foreign_key?
      not @owner[@options[:foreign_key_name]].nil?
    end