Added the framework for release. I haven't actually verified this yet for Net::LDAP, but I used the same framework for the recent release of MIME::Types. Some pieces of the code may need to be moved around to better handle the testing framework in the Rakefile and the pre-setup.rb file. To make this work, you will need the meta_project, gmailer, and archive-tar-minitar gems.

This commit is contained in:
austin 2006-04-30 03:34:34 +00:00
parent 65102e44d9
commit 2faf22a2af
11 changed files with 2025 additions and 278 deletions

401
COPYING
View file

@ -1,127 +1,122 @@
.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and
Everyone is permitted to copy and distribute verbatim copies distribute verbatim copies of this license document, but changing it is not
of this license document, but changing it is not allowed. allowed.
Preamble Preamble
The licenses for most software are designed to take away your The licenses for most software are designed to take away your freedom to
freedom to share and change it. By contrast, the GNU General Public share and change it. By contrast, the GNU General Public License is
License is intended to guarantee your freedom to share and change free intended to guarantee your freedom to share and change free software--to
software--to make sure the software is free for all its users. This make sure the software is free for all its users. This General Public
General Public License applies to most of the Free Software License applies to most of the Free Software Foundation's software and to
Foundation's software and to any other program whose authors commit to any other program whose authors commit to using it. (Some other Free
using it. (Some other Free Software Foundation software is covered by Software Foundation software is covered by the GNU Lesser General Public
the GNU Lesser General Public License instead.) You can apply it to License instead.) You can apply it to your programs, too.
your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not price. Our
price. Our General Public Licenses are designed to make sure that you General Public Licenses are designed to make sure that you have the freedom
have the freedom to distribute copies of free software (and charge for to distribute copies of free software (and charge for this service if you
this service if you wish), that you receive source code or can get it wish), that you receive source code or can get it if you want it, that you
if you want it, that you can change the software or use pieces of it can change the software or use pieces of it in new free programs; and that
in new free programs; and that you know you can do these things. you know you can do these things.
To protect your rights, we need to make restrictions that forbid To protect your rights, we need to make restrictions that forbid anyone to
anyone to deny you these rights or to ask you to surrender the rights. deny you these rights or to ask you to surrender the rights. These
These restrictions translate to certain responsibilities for you if you restrictions translate to certain responsibilities for you if you distribute
distribute copies of the software, or if you modify it. copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether For example, if you distribute copies of such a program, whether gratis or
gratis or for a fee, you must give the recipients all the rights that for a fee, you must give the recipients all the rights that you have. You
you have. You must make sure that they, too, receive or can get the must make sure that they, too, receive or can get the source code. And you
source code. And you must show them these terms so they know their must show them these terms so they know their rights.
rights.
We protect your rights with two steps: (1) copyright the software, and We protect your rights with two steps: (1) copyright the software, and (2)
(2) offer you this license which gives you legal permission to copy, offer you this license which gives you legal permission to copy, distribute
distribute and/or modify the software. and/or modify the software.
Also, for each author's protection and ours, we want to make certain Also, for each author's protection and ours, we want to make certain that
that everyone understands that there is no warranty for this free everyone understands that there is no warranty for this free software. If
software. If the software is modified by someone else and passed on, we the software is modified by someone else and passed on, we want its
want its recipients to know that what they have is not the original, so recipients to know that what they have is not the original, so that any
that any problems introduced by others will not reflect on the original problems introduced by others will not reflect on the original authors'
authors' reputations. reputations.
Finally, any free program is threatened constantly by software Finally, any free program is threatened constantly by software patents. We
patents. We wish to avoid the danger that redistributors of a free wish to avoid the danger that redistributors of a free program will
program will individually obtain patent licenses, in effect making the individually obtain patent licenses, in effect making the program
program proprietary. To prevent this, we have made it clear that any proprietary. To prevent this, we have made it clear that any patent must be
patent must be licensed for everyone's free use or not licensed at all. licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and modification
modification follow. follow.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains 0. This License applies to any program or other work which contains a notice
a notice placed by the copyright holder saying it may be distributed placed by the copyright holder saying it may be distributed under the
under the terms of this General Public License. The "Program", below, terms of this General Public License. The "Program", below, refers to
refers to any such program or work, and a "work based on the Program" any such program or work, and a "work based on the Program" means either
means either the Program or any derivative work under copyright law: the Program or any derivative work under copyright law: that is to say, a
that is to say, a work containing the Program or a portion of it, work containing the Program or a portion of it, either verbatim or with
either verbatim or with modifications and/or translated into another modifications and/or translated into another language. (Hereinafter,
language. (Hereinafter, translation is included without limitation in translation is included without limitation in the term "modification".)
the term "modification".) Each licensee is addressed as "you". Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of covered by this License; they are outside its scope. The act of running
running the Program is not restricted, and the output from the Program the Program is not restricted, and the output from the Program is covered
is covered only if its contents constitute a work based on the only if its contents constitute a work based on the Program (independent
Program (independent of having been made by running the Program). of having been made by running the Program). Whether that is true depends
Whether that is true depends on what the Program does. on what the Program does.
1. You may copy and distribute verbatim copies of the Program's 1. You may copy and distribute verbatim copies of the Program's source code
source code as you receive it, in any medium, provided that you as you receive it, in any medium, provided that you conspicuously and
conspicuously and appropriately publish on each copy an appropriate appropriately publish on each copy an appropriate copyright notice and
copyright notice and disclaimer of warranty; keep intact all the disclaimer of warranty; keep intact all the notices that refer to this
notices that refer to this License and to the absence of any warranty; License and to the absence of any warranty; and give any other recipients
and give any other recipients of the Program a copy of this License of the Program a copy of this License along with the Program.
along with the Program.
You may charge a fee for the physical act of transferring a copy, and You may charge a fee for the physical act of transferring a copy, and you
you may at your option offer warranty protection in exchange for a fee. may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion 2. You may modify your copy or copies of the Program or any portion of it,
of it, thus forming a work based on the Program, and copy and thus forming a work based on the Program, and copy and distribute such
distribute such modifications or work under the terms of Section 1 modifications or work under the terms of Section 1 above, provided that
above, provided that you also meet all of these conditions: you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices a) You must cause the modified files to carry prominent notices stating
stating that you changed the files and the date of any change. that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in b) You must cause any work that you distribute or publish, that in whole
whole or in part contains or is derived from the Program or any or in part contains or is derived from the Program or any part
part thereof, to be licensed as a whole at no charge to all third thereof, to be licensed as a whole at no charge to all third parties
parties under the terms of this License. under the terms of this License.
c) If the modified program normally reads commands interactively c) If the modified program normally reads commands interactively when
when run, you must cause it, when started running for such run, you must cause it, when started running for such interactive use
interactive use in the most ordinary way, to print or display an in the most ordinary way, to print or display an announcement
announcement including an appropriate copyright notice and a including an appropriate copyright notice and a notice that there is
notice that there is no warranty (or else, saying that you provide no warranty (or else, saying that you provide a warranty) and that
a warranty) and that users may redistribute the program under users may redistribute the program under these conditions, and telling
these conditions, and telling the user how to view a copy of this the user how to view a copy of this License. (Exception: if the
License. (Exception: if the Program itself is interactive but Program itself is interactive but does not normally print such an
does not normally print such an announcement, your work based on announcement, your work based on the Program is not required to print
the Program is not required to print an announcement.) an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program, and
and can be reasonably considered independent and separate works in can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based distribute the same sections as part of a whole which is a work based on
on the Program, the distribution of the whole must be on the terms of the Program, the distribution of the whole must be on the terms of this
this License, whose permissions for other licensees extend to the License, whose permissions for other licensees extend to the entire
entire whole, and thus to each and every part regardless of who wrote it. whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to your rights to work written entirely by you; rather, the intent is to
@ -129,116 +124,113 @@
collective works based on the Program. collective works based on the Program.
In addition, mere aggregation of another work not based on the Program In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of with the Program (or with a work based on the Program) on a volume of a
a storage or distribution medium does not bring the other work under storage or distribution medium does not bring the other work under the
the scope of this License. scope of this License.
3. You may copy and distribute the Program (or a work based on it, 3. You may copy and distribute the Program (or a work based on it, under
under Section 2) in object code or executable form under the terms of Section 2) in object code or executable form under the terms of Sections
Sections 1 and 2 above provided that you also do one of the following: 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable a) Accompany it with the complete corresponding machine-readable source
source code, which must be distributed under the terms of Sections code, which must be distributed under the terms of Sections 1 and 2
1 and 2 above on a medium customarily used for software interchange; or, above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three b) Accompany it with a written offer, valid for at least three years, to
years, to give any third party, for a charge no more than your give any third party, for a charge no more than your cost of
cost of physically performing source distribution, a complete physically performing source distribution, a complete machine-readable
machine-readable copy of the corresponding source code, to be copy of the corresponding source code, to be distributed under the
distributed under the terms of Sections 1 and 2 above on a medium terms of Sections 1 and 2 above on a medium customarily used for
customarily used for software interchange; or, software interchange; or,
c) Accompany it with the information you received as to the offer c) Accompany it with the information you received as to the offer to
to distribute corresponding source code. (This alternative is distribute corresponding source code. (This alternative is allowed
allowed only for noncommercial distribution and only if you only for noncommercial distribution and only if you received the
received the program in object code or executable form with such program in object code or executable form with such an offer, in
an offer, in accord with Subsection b above.) accord with Subsection b above.)
The source code for a work means the preferred form of the work for The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source making modifications to it. For an executable work, complete source code
code means all the source code for all modules it contains, plus any means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to associated interface definition files, plus the scripts used to control
control compilation and installation of the executable. However, as a compilation and installation of the executable. However, as a special
special exception, the source code distributed need not include exception, the source code distributed need not include anything that is
anything that is normally distributed (in either source or binary normally distributed (in either source or binary form) with the major
form) with the major components (compiler, kernel, and so on) of the components (compiler, kernel, and so on) of the operating system on which
operating system on which the executable runs, unless that component the executable runs, unless that component itself accompanies the
itself accompanies the executable. executable.
If distribution of executable or object code is made by offering If distribution of executable or object code is made by offering access
access to copy from a designated place, then offering equivalent to copy from a designated place, then offering equivalent access to copy
access to copy the source code from the same place counts as the source code from the same place counts as distribution of the source
distribution of the source code, even though third parties are not code, even though third parties are not compelled to copy the source
compelled to copy the source along with the object code. along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program except as
except as expressly provided under this License. Any attempt expressly provided under this License. Any attempt otherwise to copy,
otherwise to copy, modify, sublicense or distribute the Program is modify, sublicense or distribute the Program is void, and will
void, and will automatically terminate your rights under this License. automatically terminate your rights under this License. However, parties
However, parties who have received copies, or rights, from you under who have received copies, or rights, from you under this License will not
this License will not have their licenses terminated so long as such have their licenses terminated so long as such parties remain in full
parties remain in full compliance. compliance.
5. You are not required to accept this License, since you have not 5. You are not required to accept this License, since you have not signed
signed it. However, nothing else grants you permission to modify or it. However, nothing else grants you permission to modify or distribute
distribute the Program or its derivative works. These actions are the Program or its derivative works. These actions are prohibited by law
prohibited by law if you do not accept this License. Therefore, by if you do not accept this License. Therefore, by modifying or
modifying or distributing the Program (or any work based on the distributing the Program (or any work based on the Program), you indicate
Program), you indicate your acceptance of this License to do so, and your acceptance of this License to do so, and all its terms and
all its terms and conditions for copying, distributing or modifying conditions for copying, distributing or modifying the Program or works
the Program or works based on it. based on it.
6. Each time you redistribute the Program (or any work based on the 6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further these terms and conditions. You may not impose any further restrictions
restrictions on the recipients' exercise of the rights granted herein. on the recipients' exercise of the rights granted herein. You are not
You are not responsible for enforcing compliance by third parties to responsible for enforcing compliance by third parties to this License.
this License.
7. If, as a consequence of a court judgment or allegation of patent 7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues), infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot excuse you from the conditions of this License. If you cannot distribute
distribute so as to satisfy simultaneously your obligations under this so as to satisfy simultaneously your obligations under this License and
License and any other pertinent obligations, then as a consequence you any other pertinent obligations, then as a consequence you may not
may not distribute the Program at all. For example, if a patent distribute the Program at all. For example, if a patent license would
license would not permit royalty-free redistribution of the Program by not permit royalty-free redistribution of the Program by all those who
all those who receive copies directly or indirectly through you, then receive copies directly or indirectly through you, then the only way you
the only way you could satisfy both it and this License would be to could satisfy both it and this License would be to refrain entirely from
refrain entirely from distribution of the Program. distribution of the Program.
If any portion of this section is held invalid or unenforceable under If any portion of this section is held invalid or unenforceable under any
any particular circumstance, the balance of the section is intended to particular circumstance, the balance of the section is intended to apply
apply and the section as a whole is intended to apply in other and the section as a whole is intended to apply in other circumstances.
circumstances.
It is not the purpose of this section to induce you to infringe any It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any patents or other property right claims or to contest validity of any such
such claims; this section has the sole purpose of protecting the claims; this section has the sole purpose of protecting the integrity of
integrity of the free software distribution system, which is the free software distribution system, which is implemented by public
implemented by public license practices. Many people have made license practices. Many people have made generous contributions to the
generous contributions to the wide range of software distributed wide range of software distributed through that system in reliance on
through that system in reliance on consistent application of that consistent application of that system; it is up to the author/donor to
system; it is up to the author/donor to decide if he or she is willing decide if he or she is willing to distribute software through any other
to distribute software through any other system and a licensee cannot system and a licensee cannot impose that choice.
impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to be
be a consequence of the rest of this License. a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in certain
certain countries either by patents or by copyrighted interfaces, the countries either by patents or by copyrighted interfaces, the original
original copyright holder who places the Program under this License copyright holder who places the Program under this License may add an
may add an explicit geographical distribution limitation excluding explicit geographical distribution limitation excluding those countries,
those countries, so that distribution is permitted only in or among so that distribution is permitted only in or among countries not thus
countries not thus excluded. In such case, this License incorporates excluded. In such case, this License incorporates the limitation as if
the limitation as if written in the body of this License. written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions 9. The Free Software Foundation may publish revised and/or new versions of
of the General Public License from time to time. Such new versions will the General Public License from time to time. Such new versions will be
be similar in spirit to the present version, but may differ in detail to similar in spirit to the present version, but may differ in detail to
address new problems or concerns. address new problems or concerns.
Each version is given a distinguishing version number. If the Program Each version is given a distinguishing version number. If the Program
@ -246,36 +238,35 @@
later version", you have the option of following the terms and conditions later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software this License, you may choose any version ever published by the Free
Foundation. Software Foundation.
10. If you wish to incorporate parts of the Program into other free 10. If you wish to incorporate parts of the Program into other free programs
programs whose distribution conditions are different, write to the author whose distribution conditions are different, write to the author to ask
to ask for permission. For software which is copyrighted by the Free for permission. For software which is copyrighted by the Free Software
Software Foundation, write to the Free Software Foundation; we sometimes Foundation, write to the Free Software Foundation; we sometimes make
make exceptions for this. Our decision will be guided by the two goals exceptions for this. Our decision will be guided by the two goals of
of preserving the free status of all derivatives of our free software and preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally. of promoting the sharing and reuse of software generally.
NO WARRANTY NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
REPAIR OR CORRECTION. NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
POSSIBILITY OF SUCH DAMAGES. OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

15
ChangeLog Normal file
View file

@ -0,0 +1,15 @@
= Net::LDAP Changelong
== Net::LDAP 0.0.1: April 30, 2006
#--
# Net::LDAP for Ruby.
# http://rubyforge.org/projects/net-ldap/
# Copyright 2006 Francis Cianfrocca
#
# Available under the same terms as Ruby. See LICENCE in the main
# distribution for full licensing information.
#
# $Id: ChangeLog,v 1.17.2.4 2005/09/09 12:36:42 austin Exp $
#++
# vim: sts=2 sw=2 ts=4 et ai tw=77

21
Install Normal file
View file

@ -0,0 +1,21 @@
Net::LDAP is a pure Ruby LDAP client. It does not as yet require any external
libraries. It can be installed with:
% ruby setup.rb
Alternatively, you can use the RubyGems version of Net::LDAP availalble as
ruby-net-ldap-0.0.1.gem from the usual sources.
Net::LDAP:: http://rubyforge.org/projects/net-ldap/
#--
# Net::LDAP for Ruby.
# http://rubyforge.org/projects/net-ldap/
# Copyright 2006 Francis Cianfrocca
#
# Available under the same terms as Ruby. See LICENCE in the main
# distribution for full licensing information.
#
# $Id: ChangeLog,v 1.17.2.4 2005/09/09 12:36:42 austin Exp $
#++
# vim: sts=2 sw=2 ts=4 et ai tw=77

55
LICENCE Normal file
View file

@ -0,0 +1,55 @@
Net::LDAP is copyrighted free software by Francis Gianfrocca
<garbagecat@gmail.com>. You can redistribute it and/or modify it under either
the terms of the GPL (see the file COPYING), or the conditions below:
1. You may make and give away verbatim copies of the source form of the
software without restriction, provided that you duplicate all of the
original copyright notices and associated disclaimers.
2. You may modify your copy of the software in any way, provided that you do
at least ONE of the following:
a) place your modifications in the Public Domain or otherwise make them
Freely Available, such as by posting said modifications to Usenet or
an equivalent medium, or by allowing the author to include your
modifications in the software.
b) use the modified software only within your corporation or
organization.
c) rename any non-standard executables so the names do not conflict with
standard executables, which must also be provided.
d) make other distribution arrangements with the author.
3. You may distribute the software in object code or executable form,
provided that you do at least ONE of the following:
a) distribute the executables and library files of the software, together
with instructions (in the manual page or equivalent) on where to get
the original distribution.
b) accompany the distribution with the machine-readable source of the
software.
c) give non-standard executables non-standard names, with instructions on
where to get the original software distribution.
d) make other distribution arrangements with the author.
4. You may modify and include the part of the software into any other
software (possibly commercial). But some files in the distribution are
not written by the author, so that they are not under this terms.
They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
files under the ./missing directory. See each file for the copying
condition.
5. The scripts and library files supplied as input to or produced as output
from the software do not automatically fall under the copyright of the
software, but belong to whomever generated them, and may be sold
commercially, and may be aggregated with this software.
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

35
README
View file

@ -1,11 +1,26 @@
= Net::LDAP for Ruby
Net::LDAP is an LDAP support library written in pure Ruby. It supports all
LDAP client features, and a subset of server features as well.
Homepage:: http://rubyforge.org/projects/net-ldap/
Copyright:: 2006, Francis Cianfrocca
== LICENCE NOTES
Please read the file LICENCE for licensing restrictions on this library. In
it simplest terms, this library is available under the same terms as Ruby
itself.
== Requirements
PDF::Writer requires Ruby 1.8.2 or better.
#--
# Net::LDAP for Ruby.
# http://rubyforge.org/projects/net-ldap/
# Copyright 2006 Francis Cianfrocca
#
# Available under the same terms as Ruby. See LICENCE in the main
# distribution for full licensing information.
#
# $Id$ # $Id$
# #++
# # vim: sts=2 sw=2 ts=4 et ai tw=77
Net::LDAP is an LDAP support library written in pure Ruby.
It supports all LDAP client features, and a subset of server features as well.
NOTE: Net::LDAP is currently released under GPL but we expect that it will
be changed to the Ruby license before being released in a "stable" version.

View file

@ -1,6 +0,0 @@
# $Id$
#
#
Release notes for Net::LDAP.

242
Rakefile
View file

@ -1,32 +1,230 @@
# $Id$ #! /usr/bin/env rake
# Rakefile for the netldap ruby gem. #--
# Net::LDAP for Ruby.
# http://rubyforge.org/projects/net-ldap/
# Copyright 2006 Francis Cianfrocca
# #
# Available under the same terms as Ruby. See LICENCE in the main
# distribution for full licensing information.
#
# $Id$
#++
require 'meta_project'
require 'rubygems'
Gem::manage_gems
require 'rake/gempackagetask' require 'rake/gempackagetask'
require 'rake/contrib/xforge'
require 'rake/clean'
em_version = "0.0.1" $can_gmail = false
begin
require 'gmailer'
$can_gmail = true
rescue LoadError
end
spec = Gem::Specification.new {|s| $can_minitar = false
s.name = "netldap" begin
s.version = em_version require 'archive/tar/minitar'
s.author = "Francis Cianfrocca" require 'zlib'
s.email = "garbagecat10@gmail.com" $can_minitar = true
s.homepage = "netldap@rubyforge.org" rescue LoadError
s.summary = "Net::LDAP library" end
s.files = FileList["{bin,tests,lib}/**/*"].exclude("rdoc").to_a
s.require_paths = ["lib"] $LOAD_PATH.unshift "lib"
s.test_file = "tests/testem.rb" require 'net/ldap'
s.has_rdoc = true
s.extra_rdoc_files = ["README", "RELEASE_NOTES", "COPYING"] $version = Net::LDAP::VERSION
$name = Net::LDAP.to_s
$project = MetaProject::Project::XForge::RubyForge.new('net-ldap')
$distdir = "ruby-net-ldap-#$version"
$tardist = "../#$distdir.tar.gz"
$release_date = nil
$release_date = Time.parse(ENV['RELEASE_DATE']) if ENV['RELEASE_DATE']
desc "Run the tests for #$name."
task :test do |t|
require 'test/unit/testsuite'
require 'test/unit/ui/console/testrunner'
runner = Test::Unit::UI::Console::TestRunner
$LOAD_PATH.unshift('tests')
$stderr.puts "Checking for test cases:" if t.verbose
Dir['tests/tc_*.rb'].each do |testcase|
$stderr.puts "\t#{testcase}" if t.verbose
load testcase
end
suite = Test::Unit::TestSuite.new($name)
ObjectSpace.each_object(Class) do |testcase|
suite << testcase.suite if testcase < Test::Unit::TestCase
end
runner.run(suite)
end
spec = eval(File.read("net-ldap.gemspec"))
spec.version = $version
desc "Build the RubyGem for #$name."
task :gem => [ :test ]
Rake::GemPackageTask.new(spec) do |g|
if $can_minitar
g.need_tar = false
g.need_zip = false
end
g.package_dir = ".."
end
if $can_minitar
desc "Build a #$name .tar.gz distribution."
task :tar => [ $tardist ]
file $tardist => [ :test ] do |t|
current = File.basename(Dir.pwd)
Dir.chdir("..") do
begin
files = %W(bin/**/* lib/**/* tests/**/* ChangeLog README LICENCE
COPYING Rakefile net-ldap.gemspec setup.rb pre-setup.rb)
files = FileList[files.map { |file| File.join(current, file) }].to_a
files.map! do |dd|
ddnew = dd.gsub(/^#{current}/, $distdir)
mtime = $release_date || File.stat(dd).mtime
if File.directory?(dd)
{ :name => ddnew, :mode => 0755, :dir => true, :mtime => mtime }
else
if dd =~ %r{bin/}
mode = 0755
else
mode = 0644
end
data = File.open(dd, "rb") { |ff| ff.read }
{ :name => ddnew, :mode => mode, :data => data, :size =>
data.size, :mtime => mtime }
end
end
ff = File.open(t.name.gsub(%r{^\.\./}o, ''), "wb")
gz = Zlib::GzipWriter.new(ff)
tw = Archive::Tar::Minitar::Writer.new(gz)
files.each do |entry|
if entry[:dir]
tw.mkdir(entry[:name], entry)
else
tw.add_file_simple(entry[:name], entry) { |os| os.write(entry[:data]) }
end
end
ensure
tw.close if tw
gz.finish if gz
ff.close
end
end
end
task $tardist => [ :test ]
end
desc "Build the RDoc documentation for #$name."
task :docs do
require 'rdoc/rdoc'
rdoc_options = %W(--title #$name --main README --line-numbers)
files = FileList[*%w(README LICENCE ChangeLog COPYING LICENCE bin/**/*.rb lib/**/*.rb)]
rdoc_options += files.to_a
RDoc::RDoc.new.document(rdoc_options)
end
task :verify_rubyforge do
raise "RUBYFORGE_USER environment variable not set!" unless ENV['RUBYFORGE_USER']
raise "RUBYFORGE_PASSWORD environment variable not set!" unless ENV['RUBYFORGE_PASSWORD']
end
if $can_gmail
task :verify_gmail do
raise "GMAIL_USER environment variable not set!" unless ENV['GMAIL_USER']
raise "GMAIL_PASSWORD environment variable not set!" unless ENV['GMAIL_PASSWORD']
end
desc "Post a release announcement via GMail."
task :email_announcement => [ :verify_gmail ] do
GMailer.connect(ENV["GMAIL_USER"], ENV["GMAIL_PASSWORD"]) do |gmail|
msg = {
:to => "ruby-talk@ruby-lang.org, #{ENV['GMAIL_USER']}@gmail.com",
:subject => "[ANN] #$name #$version",
:body => File.read("Release-Announcement"),
} }
gmail.send msg
end
end
end
Rake::GemPackageTask.new( spec ) {|pkg| desc "Release files on RubyForge."
pkg.need_tar = true task :release_files => [ :verify_rubyforge, :gem ] do
} release_files = FileList[$tardist, "../#$distdir.gem"]
Rake::XForge::Release.new($project) do |release|
release.user_name = ENV['RUBYFORGE_USER']
release.password = ENV['RUBYFORGE_PASSWORD']
release.files = release_files.to_a
release.release_name = "#$name #$version"
release.package_name = "mime-types"
notes = []
File.open("README") do |file|
file.each do |line|
line.chomp!
line.gsub!(/^#.*$/, '') and next
notes << line
end
end
release.release_notes = notes.join("\n")
task :default => ["pkg/netldap-#{em_version}.gem"] changes = []
File.open("ChangeLog") do |file|
current = true
file.each do |line|
line.chomp!
current = false if current and line =~ /^==/
break if line.empty? and not current
changes << line
end
end
release.release_changes = changes.join("\n")
end
end
desc "Publish news on RubyForge"
task :publish_news => [ :verify_rubyforge, :gem ] do
Rake::XForge::NewsPublisher.new($project) do |news|
news.user_name = ENV['RUBYFORGE_USER']
news.password = ENV['RUBYFORGE_PASSWORD']
news.subject = "#$name #$version Released"
news.changes_file = nil
details = []
File.open("Release-Announcement") do |file|
file.each do |line|
line.chomp!
break if line =~ /^=/
details << line
end
end
news.details = details.join("\n")
end
end
desc "Release the latest version."
task :release => [ :verify_rubyforge, :release_files, :publish_news, :docs ]
if $can_gmail
task :release => [ :verify_gmail, :email_announcment ]
end
desc "Build everything."
task :default => [ :gem ]
if $can_minitar
task :release_files => :tar
task :publish_news => :tar
task :default => :tar
end

33
Release-Announcement Normal file
View file

@ -0,0 +1,33 @@
It is with great excitement that I announce the first release of the pure
Ruby LDAP library, Net::LDAP.
= What is Net::LDAP for Ruby?
[...]
Homepage:: http://ruby-pdf.rubyforge.org/net-ldap/
Download:: http://rubyforge.org/frs/?****
Copyright:: 2006 Francis Cianfrocca
This software is based on RFC***, describing the Lightweight Directory
Access Protocol.
== LICENCE NOTES
[...]
== Requirements and Installation
Net::LDAP requires Ruby 1.8.2 or better.
Net::LDAP can be installed with:
% ruby setup.rb
Alternatively, you can use the RubyGems version of Net::LDAP available
as ruby-net-ldap-0.0.1.gem from the usual sources.
== Whet your appetite:
[...]
== Net::LDAP 0.0.1: April 30, 2006
[...]
[signature here]

13
net-ldap.gemspec Normal file
View file

@ -0,0 +1,13 @@
spec = Gem::Specification.new {|s|
s.name = "netldap"
s.version = em_version
s.author = "Francis Cianfrocca"
s.email = "garbagecat10@gmail.com"
s.homepage = "netldap@rubyforge.org"
s.summary = "Net::LDAP library"
s.files = FileList["{bin,tests,lib}/**/*"].exclude("rdoc").to_a
s.require_paths = ["lib"]
s.test_file = "tests/testem.rb"
s.has_rdoc = true
s.extra_rdoc_files = ["README", "RELEASE_NOTES", "COPYING"]
}

46
pre-setup.rb Normal file
View file

@ -0,0 +1,46 @@
require 'rdoc/rdoc'
##
# Build the rdoc documentation. Also, try to build the RI documentation.
#
def build_rdoc(options)
RDoc::RDoc.new.document(options)
rescue RDoc::RDocError => e
$stderr.puts e.message
rescue Exception => e
$stderr.puts "Couldn't build RDoc documentation\n#{e.message}"
end
def build_ri(files)
RDoc::RDoc.new(["--ri-site", "--merge"] + files)
rescue RDoc::RDocError => e
$stderr.puts e.message
rescue Exception => e
$stderr.puts "Couldn't build Ri documentation\n#{e.message}"
end
def run_tests(test_list)
return if test_list.empty?
require 'test/unit/ui/console/testrunner'
$:.unshift "lib"
test_list.each do |test|
next if File.directory?(test)
require test
end
tests = []
ObjectSpace.each_object { |o| tests << o if o.kind_of?(Class) }
tests.delete_if { |o| !o.ancestors.include?(Test::Unit::TestCase) }
tests.delete_if { |o| o == Test::Unit::TestCase }
tests.each { |test| Test::Unit::UI::Console::TestRunner.run(test) }
$:.shift
end
rdoc = %w(--main README --line-numbers
--title MIME::Types)
ri = %w(--ri-site --merge)
dox = %w(README ChangeLog lib)
build_rdoc rdoc + dox
build_ri ri + dox
run_tests Dir["tests/**/*"]

1366
setup.rb Normal file

File diff suppressed because it is too large Load diff