Andre, thanks for testing and confirming the fix. It will be in the
next release of Net::LDAP. We added a class method to
Net::LDAP::Filter called #from_rfc2254, which takes a standard LDAP
filter string and returns a Net::LDAP::Filter object. We may rename it
to something more graceful before the release.

I'll think about your suggestion that we provide the same
functionality as an overload to Net::LDAP::Filter#new.

Regarding #search: this method currently does return a full result set
(an array of the entries returned by the search) whether or not you
provide a block. If you provide a block, then each entry is *also*
passed to the block. I think this is the flexibility you were looking
for in your question.

The reason we provided the :return_result flag to #search is so you
can turn off the generation of a result-set array. The flag defaults
to true, meaning the default behavior is both to return a result set
and to call a user-supplied block (if present) for each result. If you
set :return_result to false, then the results will only be passed to
your block, and discarded by Net::LDAP after each one is processed.
The point of being able to turn off the result set is to save memory
when the set is very large. The performance improvement is potentially
very large.

Thanks again for the testing you did.

On 5/15/06, Andre Nathan <andre / digirati.com.br> wrote:
> Hello
>
> Excuse me if this is a dumb question but I searched the docs and
> couldn't find a way to do this... Is there any method that converts an
> LDAP filter string to a filter object to be used in #search, ie,
> something like
>
> "uid=foo" being understood as Net::LDAP::Filter.eq("uid", "foo")
>
> ?
>
> Thanks in advance,
> Andre
>
>
>
>
>
>
>