I’ve put out a series of patches to ruby-ldap 0.8.3 to allow the easy use of controls. Controls take advantage of the extensible nature of LDAPv3 to provide functionality not part of the original protocol specification.
Specifically, I had a need at work to use the Paged Results control, described in RFC2696. ruby-ldap 0.8.3 allows the client to set controls at the search level via LDAP::Conn#search_ext and LDAP::Conn#search_ext2, but it has no way to return controls sent by the server to the client as a side-effect of the search. Furthermore, I wanted to be able to set controls at the session level and have those be effective during
LDAP::Conn#search and LDAP::Conn#search2, which are methods I use much more frequently.
Anyway, if you need to use LDAP controls from Ruby (and let’s face it, who doesn’t?), this if for you.