||object oriented interface to Ruby/LDAP
||2004-08-25 04:48:20 GMT
||2006-05-21 23:21:01 GMT
(Projects of this owner)
Ruby/ActiveLDAP provides an object oriented interface to LDAP. This library was inspired by ActiveRecord (both the concept and the library). It maps LDAP entries to Ruby objects with LDAP attribute accessors exposed as methods dynamically assigned based on your LDAP schema and each object's objectClasses.
Any and all feedback, requests, patches, etc are appreciated!
* Stopped overriding Conn.schema in ldap/schema - now use schema2
* Fix attributes being deleted when changing between objectclasses with shared attributes
* Added schema attribute case insensitivity
* Added case insensitivity to the attribute methods.
* Added LDAP scope override support to ldap_mapping via :scope argument. (ldap_mapping :scope => LDAP::
* Fixed the bug where Klass.find() return nil (default arg for find/find_all now '*')
* Added :return_objects to Base.connect()/configuration.rb -- When true, sets the default behavior in B
ase.find/find_all to return objects instead of just the dnattr string.
* Hid away several exposed private class methods (do_bind, etc)
* Undefined dnattr for a class now raises a ConfigurationError
* Centralized all connection management code where possible
* Added Base.can_reconnect? which returns true if never connected or below the :retries limit
* Added block support to Base.connection to ensure "safe" connection usage. This is not just for intern
al library use. If you need to do something fancy with the connection object, use Base.connection do |con
* Fixed object instantiation in Base#initialize when using full DNs
* Added :parent_class option to ldap_mapping which allows for object.parent() to return an instantiated
object using the parent DN. (ldap_mapping :parent_class => String, ...)
* Fixed reconnect bug in Base#initialize (didn't respect infinite retries)
* Added(*) :timeout argument to allow timeouts on hanging LDAP connections
* Added(*) :retry_on_timeout boolean option to allow disabling retries on timeouts
* Added TimeoutError
* Added(*) a forking timeout using SIGALRM to interrupt handling.
(*) Only works when RUBY_PLATFORM has "linux" in it