net-ldap version 0.2 has been released!

* <http://net-ldap.rubyforge.org/>
* <https://github.com/ruby-ldap/ruby-net-ldap>

Net::LDAP for Ruby (also called net-ldap) implements client access for
the Lightweight Directory Access Protocol (LDAP), an IETF standard
protocol for accessing distributed directory services. Net::LDAP is
written completely in Ruby with no external dependencies. It supports
most LDAP client features and a subset of server features as well.

Net::LDAP has been tested against modern popular LDAP servers including
OpenLDAP and Active Directory. The current release is mostly compliant
with earlier versions of the IETF LDAP RFCs (2251=962256, 2829=962830, 3377=
,
and 3771). Our roadmap for Net::LDAP 1.0 is to gain full <em>client</em>
compliance with the most recent LDAP RFCs (4510=964519, plus portions of
4520=964532).

Changes:

### Net::LDAP 0.2 / 2011-03-__
* Major Enhancements:
  * Net::LDAP::Filter changes:
    * Filters can only be constructed using our custom constructors (eq,
      ge, etc.). Cleaned up the code to reflect the private new.
    * Fixed #to_ber to output a BER representation for :ne filters.
      Simplified the BER construction for substring matching.
    * Added Filter.join(left, right), Filter.intersect(left, right), and
      Filter.negate(filter) to match Filter#&, Filter#|, and Filter#~@
      to prevent those operators from having problems with the private
      new.
    * Added Filter.present and Filter.present? aliases for the method
      previously only known as Filter.pres.
    * Added Filter.escape to escape strings for use in filters, based on
      rfc4515.
    * Added Filter.equals, Filter.begins, Filter.ends and
      Filter.contains, which automatically escape input for use in a
      filter string.
    * Cleaned up Net::LDAP::Filter::FilterParser to handle branches
      better. Fixed some of the regular expressions to be more
      canonically defined.
    * Correctly handles single-branch branches.
    * Cleaned up the string representation of Filter objects.
    * Added experimental support for RFC4515 extensible matching (e.g.,
      "(cn:caseExactMatch:=3DFred Flintstone)"); provided by "nowhereman".
  * Net::LDAP::DN class representing an automatically
    escaping/unescaping distinguished name for LDAP queries.
* Minor Enhancements:
  * SSL capabilities will be enabled or disabled based on whether we can
    load OpenSSL successfully or not.
  * Moved the core class extensions extensions from being in the
    Net::LDAP hierarchy to the Net::BER hierarchy as most of the methods
    therein are related to BER-encoding values. This will make
    extracting Net::BER from Net::LDAP easier in the future.
  * Added some unit tests for the BER core extensions.
  * Paging controls are only sent where they are supported.
* Documentation Changes:
  * Core class extension methods under Net::BER.
  * Extensive changes to Net::BER documentation.
  * Cleaned up some rdoc oddities, suppressed empty documentation
    sections where possible.
  * Added a document describing how to contribute to Net::LDAP most
    effectively.
  * Added a document recognizing contributors to Net::LDAP.
* Extended unit testing:
  * Added some unit tests for the BER core extensions.
  * The LDIF test data file was split for Ruby 1.9 regexp support.
  * Added a cruisecontrol.rb task.
  * Converted some test/unit tests to specs.
* Code clean-up:
  * Made the formatting of code consistent across all files.
  * Removed Net::BER::BERParser::TagClasses as it does not appear to be
    used.
  * Replaced calls to #to_a with calls to Kernel#Array; since Ruby
    1.8.3, the default #to_a implementation has been deprecated and
    should be replaced either with calls to Kernel#Array or
    [value].flatten(1).
  * Modified #add and #modify to return a Pdu#result_code instead of a
    Pdu#result. This may be changed in Net::LDAP 1.0 to return the full
    Pdu#result, but if we do so, it will be that way for all LDAP calls
    involving Pdu objects.
  * Renamed Net::LDAP::Psw to Net::LDAP::Password with a corresponding
    filename change.
  * Removed the stub file lib/net/ldif.rb and class Net::LDIF.
* Project Management:
  * Changed the license from Ruby + GPL to MIT with the agreement of the
    original author (Francis Cianfrocca) and the named contributors.
    Versions prior to 0.2.0 are still available under the Ruby + GPL
    license.
--=20
Austin Ziegler =95 halostatue / gmail.com =95 austin / halostatue.ca
http://www.halostatue.ca/ =95 http://twitter.com/halostatue