Skip to content

Commit adb3a3a

Browse files
committed
Import with fixes, rake cleanup, and working test suite
0 parents  commit adb3a3a

15 files changed

+2393
-0
lines changed

.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
*.gem
2+
ext/Makefile
3+
ext/*.log
4+
ext/*.o
5+
ext/*.dll
6+
ext/*.bundle
7+
ext/*.so

Rakefile

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# $Id: Rakefile 3546 2006-12-31 21:01:27Z francis $
2+
3+
require 'rake/gempackagetask'
4+
require 'rake/clean'
5+
require 'rake/testtask'
6+
7+
Rake::TestTask.new do |t|
8+
t.libs += %w(ext)
9+
t.test_files = FileList['test/test_*.rb']
10+
t.verbose = true
11+
end
12+
13+
namespace :build do
14+
sources = FileList['ext/*.{cpp,c,h}']
15+
16+
file 'ext/Makefile' => 'ext/extconf.rb' do
17+
Dir.chdir 'ext' do
18+
ruby 'extconf.rb'
19+
end
20+
end
21+
CLEAN.include('ext/Makefile')
22+
CLEAN.include('ext/*.log')
23+
24+
libfile = "ext/eventmachine_httpserver.#{Config::CONFIG['DLEXT']}"
25+
file libfile => ['ext/Makefile', *sources] do
26+
Dir.chdir 'ext' do
27+
make = case RUBY_PLATFORM
28+
when /mswin32/
29+
'nmake'
30+
else
31+
# typical gcc stack, might need a case for gmake on some
32+
'make'
33+
end
34+
sh make
35+
end
36+
end
37+
CLEAN.include(libfile)
38+
39+
task :makefile => 'ext/Makefile'
40+
41+
task :extension => libfile
42+
end
43+
44+
desc "Build the extension inside the ext dir"
45+
task :build => :"build:extension"
46+
47+
desc "Build as necessary, then run tests"
48+
task :test => :build
49+
50+
namespace :gem do
51+
# TODO : use rake-compiler (github.com/luislavena/rake-compiler) for this!
52+
# specbinary = eval(File.read("eventmachine_httpserver-binary.gemspec"))
53+
# specbinary.version = $version
54+
# desc "Build a binary RubyGem for EventMachine HTTP Server"
55+
# task :gembinary => ["pkg/eventmachine_httpserver-binary-#{$version}.gem"]
56+
# Rake::GemPackageTask.new(specbinary)
57+
58+
def gemspec
59+
# The template executes some ruby code to make a manifest, so we just eval
60+
# it. Later you could fill it with an ERB processor or whatever. It must
61+
# return a valid gemspec object.
62+
@gemspec ||= eval(File.read("eventmachine_httpserver.gemspec.tmpl"))
63+
end
64+
65+
def version
66+
gemspec.version
67+
end
68+
69+
file "eventmachine_httpserver.gemspec" => 'eventmachine_httpserver.gemspec.tmpl' do |t|
70+
open(t.name, 'w') { |f| f.write gemspec.to_ruby }
71+
end
72+
73+
desc "Generate the gemspec from template"
74+
task :spec => "eventmachine_httpserver.gemspec"
75+
76+
file "eventmachine_httpserver-#{version}.gem" => :"gem:spec" do
77+
sh "gem build eventmachine_httpserver.gemspec"
78+
end
79+
80+
desc "Build the RubyGem for EventMachine HTTP Server"
81+
task :build => "eventmachine_httpserver-#{version}.gem"
82+
83+
desc "run gem install on the built gem"
84+
task :install => :build do
85+
sh 'gem inst eventmachine_httpserver*.gem'
86+
end
87+
88+
CLOBBER.include("eventmachine_httpserver.gemspec")
89+
CLEAN.include("eventmachine_httpserver-#{version}.gem")
90+
end
91+
92+
task :default => :test

docs/COPYING

+281
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,281 @@
1+
.
2+
3+
GNU GENERAL PUBLIC LICENSE
4+
Version 2, June 1991
5+
6+
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
7+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
8+
Everyone is permitted to copy and distribute verbatim copies
9+
of this license document, but changing it is not allowed.
10+
11+
Preamble
12+
13+
The licenses for most software are designed to take away your
14+
freedom to share and change it. By contrast, the GNU General Public
15+
License is intended to guarantee your freedom to share and change free
16+
software--to make sure the software is free for all its users. This
17+
General Public License applies to most of the Free Software
18+
Foundation's software and to any other program whose authors commit to
19+
using it. (Some other Free Software Foundation software is covered by
20+
the GNU Lesser General Public License instead.) You can apply it to
21+
your programs, too.
22+
23+
When we speak of free software, we are referring to freedom, not
24+
price. Our General Public Licenses are designed to make sure that you
25+
have the freedom to distribute copies of free software (and charge for
26+
this service if you wish), that you receive source code or can get it
27+
if you want it, that you can change the software or use pieces of it
28+
in new free programs; and that you know you can do these things.
29+
30+
To protect your rights, we need to make restrictions that forbid
31+
anyone to deny you these rights or to ask you to surrender the rights.
32+
These restrictions translate to certain responsibilities for you if you
33+
distribute copies of the software, or if you modify it.
34+
35+
For example, if you distribute copies of such a program, whether
36+
gratis or for a fee, you must give the recipients all the rights that
37+
you have. You must make sure that they, too, receive or can get the
38+
source code. And you must show them these terms so they know their
39+
rights.
40+
41+
We protect your rights with two steps: (1) copyright the software, and
42+
(2) offer you this license which gives you legal permission to copy,
43+
distribute and/or modify the software.
44+
45+
Also, for each author's protection and ours, we want to make certain
46+
that everyone understands that there is no warranty for this free
47+
software. If the software is modified by someone else and passed on, we
48+
want its recipients to know that what they have is not the original, so
49+
that any problems introduced by others will not reflect on the original
50+
authors' reputations.
51+
52+
Finally, any free program is threatened constantly by software
53+
patents. We wish to avoid the danger that redistributors of a free
54+
program will individually obtain patent licenses, in effect making the
55+
program proprietary. To prevent this, we have made it clear that any
56+
patent must be licensed for everyone's free use or not licensed at all.
57+
58+
The precise terms and conditions for copying, distribution and
59+
modification follow.
60+
61+
GNU GENERAL PUBLIC LICENSE
62+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
63+
64+
0. This License applies to any program or other work which contains
65+
a notice placed by the copyright holder saying it may be distributed
66+
under the terms of this General Public License. The "Program", below,
67+
refers to any such program or work, and a "work based on the Program"
68+
means either the Program or any derivative work under copyright law:
69+
that is to say, a work containing the Program or a portion of it,
70+
either verbatim or with modifications and/or translated into another
71+
language. (Hereinafter, translation is included without limitation in
72+
the term "modification".) Each licensee is addressed as "you".
73+
74+
Activities other than copying, distribution and modification are not
75+
covered by this License; they are outside its scope. The act of
76+
running the Program is not restricted, and the output from the Program
77+
is covered only if its contents constitute a work based on the
78+
Program (independent of having been made by running the Program).
79+
Whether that is true depends on what the Program does.
80+
81+
1. You may copy and distribute verbatim copies of the Program's
82+
source code as you receive it, in any medium, provided that you
83+
conspicuously and appropriately publish on each copy an appropriate
84+
copyright notice and disclaimer of warranty; keep intact all the
85+
notices that refer to this License and to the absence of any warranty;
86+
and give any other recipients of the Program a copy of this License
87+
along with the Program.
88+
89+
You may charge a fee for the physical act of transferring a copy, and
90+
you may at your option offer warranty protection in exchange for a fee.
91+
92+
2. You may modify your copy or copies of the Program or any portion
93+
of it, thus forming a work based on the Program, and copy and
94+
distribute such modifications or work under the terms of Section 1
95+
above, provided that you also meet all of these conditions:
96+
97+
a) You must cause the modified files to carry prominent notices
98+
stating that you changed the files and the date of any change.
99+
100+
b) You must cause any work that you distribute or publish, that in
101+
whole or in part contains or is derived from the Program or any
102+
part thereof, to be licensed as a whole at no charge to all third
103+
parties under the terms of this License.
104+
105+
c) If the modified program normally reads commands interactively
106+
when run, you must cause it, when started running for such
107+
interactive use in the most ordinary way, to print or display an
108+
announcement including an appropriate copyright notice and a
109+
notice that there is no warranty (or else, saying that you provide
110+
a warranty) and that users may redistribute the program under
111+
these conditions, and telling the user how to view a copy of this
112+
License. (Exception: if the Program itself is interactive but
113+
does not normally print such an announcement, your work based on
114+
the Program is not required to print an announcement.)
115+
116+
These requirements apply to the modified work as a whole. If
117+
identifiable sections of that work are not derived from the Program,
118+
and can be reasonably considered independent and separate works in
119+
themselves, then this License, and its terms, do not apply to those
120+
sections when you distribute them as separate works. But when you
121+
distribute the same sections as part of a whole which is a work based
122+
on the Program, the distribution of the whole must be on the terms of
123+
this License, whose permissions for other licensees extend to the
124+
entire whole, and thus to each and every part regardless of who wrote it.
125+
126+
Thus, it is not the intent of this section to claim rights or contest
127+
your rights to work written entirely by you; rather, the intent is to
128+
exercise the right to control the distribution of derivative or
129+
collective works based on the Program.
130+
131+
In addition, mere aggregation of another work not based on the Program
132+
with the Program (or with a work based on the Program) on a volume of
133+
a storage or distribution medium does not bring the other work under
134+
the scope of this License.
135+
136+
3. You may copy and distribute the Program (or a work based on it,
137+
under Section 2) in object code or executable form under the terms of
138+
Sections 1 and 2 above provided that you also do one of the following:
139+
140+
a) Accompany it with the complete corresponding machine-readable
141+
source code, which must be distributed under the terms of Sections
142+
1 and 2 above on a medium customarily used for software interchange; or,
143+
144+
b) Accompany it with a written offer, valid for at least three
145+
years, to give any third party, for a charge no more than your
146+
cost of physically performing source distribution, a complete
147+
machine-readable copy of the corresponding source code, to be
148+
distributed under the terms of Sections 1 and 2 above on a medium
149+
customarily used for software interchange; or,
150+
151+
c) Accompany it with the information you received as to the offer
152+
to distribute corresponding source code. (This alternative is
153+
allowed only for noncommercial distribution and only if you
154+
received the program in object code or executable form with such
155+
an offer, in accord with Subsection b above.)
156+
157+
The source code for a work means the preferred form of the work for
158+
making modifications to it. For an executable work, complete source
159+
code means all the source code for all modules it contains, plus any
160+
associated interface definition files, plus the scripts used to
161+
control compilation and installation of the executable. However, as a
162+
special exception, the source code distributed need not include
163+
anything that is normally distributed (in either source or binary
164+
form) with the major components (compiler, kernel, and so on) of the
165+
operating system on which the executable runs, unless that component
166+
itself accompanies the executable.
167+
168+
If distribution of executable or object code is made by offering
169+
access to copy from a designated place, then offering equivalent
170+
access to copy the source code from the same place counts as
171+
distribution of the source code, even though third parties are not
172+
compelled to copy the source along with the object code.
173+
174+
4. You may not copy, modify, sublicense, or distribute the Program
175+
except as expressly provided under this License. Any attempt
176+
otherwise to copy, modify, sublicense or distribute the Program is
177+
void, and will automatically terminate your rights under this License.
178+
However, parties who have received copies, or rights, from you under
179+
this License will not have their licenses terminated so long as such
180+
parties remain in full compliance.
181+
182+
5. You are not required to accept this License, since you have not
183+
signed it. However, nothing else grants you permission to modify or
184+
distribute the Program or its derivative works. These actions are
185+
prohibited by law if you do not accept this License. Therefore, by
186+
modifying or distributing the Program (or any work based on the
187+
Program), you indicate your acceptance of this License to do so, and
188+
all its terms and conditions for copying, distributing or modifying
189+
the Program or works based on it.
190+
191+
6. Each time you redistribute the Program (or any work based on the
192+
Program), the recipient automatically receives a license from the
193+
original licensor to copy, distribute or modify the Program subject to
194+
these terms and conditions. You may not impose any further
195+
restrictions on the recipients' exercise of the rights granted herein.
196+
You are not responsible for enforcing compliance by third parties to
197+
this License.
198+
199+
7. If, as a consequence of a court judgment or allegation of patent
200+
infringement or for any other reason (not limited to patent issues),
201+
conditions are imposed on you (whether by court order, agreement or
202+
otherwise) that contradict the conditions of this License, they do not
203+
excuse you from the conditions of this License. If you cannot
204+
distribute so as to satisfy simultaneously your obligations under this
205+
License and any other pertinent obligations, then as a consequence you
206+
may not distribute the Program at all. For example, if a patent
207+
license would not permit royalty-free redistribution of the Program by
208+
all those who receive copies directly or indirectly through you, then
209+
the only way you could satisfy both it and this License would be to
210+
refrain entirely from distribution of the Program.
211+
212+
If any portion of this section is held invalid or unenforceable under
213+
any particular circumstance, the balance of the section is intended to
214+
apply and the section as a whole is intended to apply in other
215+
circumstances.
216+
217+
It is not the purpose of this section to induce you to infringe any
218+
patents or other property right claims or to contest validity of any
219+
such claims; this section has the sole purpose of protecting the
220+
integrity of the free software distribution system, which is
221+
implemented by public license practices. Many people have made
222+
generous contributions to the wide range of software distributed
223+
through that system in reliance on consistent application of that
224+
system; it is up to the author/donor to decide if he or she is willing
225+
to distribute software through any other system and a licensee cannot
226+
impose that choice.
227+
228+
This section is intended to make thoroughly clear what is believed to
229+
be a consequence of the rest of this License.
230+
231+
8. If the distribution and/or use of the Program is restricted in
232+
certain countries either by patents or by copyrighted interfaces, the
233+
original copyright holder who places the Program under this License
234+
may add an explicit geographical distribution limitation excluding
235+
those countries, so that distribution is permitted only in or among
236+
countries not thus excluded. In such case, this License incorporates
237+
the limitation as if written in the body of this License.
238+
239+
9. The Free Software Foundation may publish revised and/or new versions
240+
of the General Public License from time to time. Such new versions will
241+
be similar in spirit to the present version, but may differ in detail to
242+
address new problems or concerns.
243+
244+
Each version is given a distinguishing version number. If the Program
245+
specifies a version number of this License which applies to it and "any
246+
later version", you have the option of following the terms and conditions
247+
either of that version or of any later version published by the Free
248+
Software Foundation. If the Program does not specify a version number of
249+
this License, you may choose any version ever published by the Free Software
250+
Foundation.
251+
252+
10. If you wish to incorporate parts of the Program into other free
253+
programs whose distribution conditions are different, write to the author
254+
to ask for permission. For software which is copyrighted by the Free
255+
Software Foundation, write to the Free Software Foundation; we sometimes
256+
make exceptions for this. Our decision will be guided by the two goals
257+
of preserving the free status of all derivatives of our free software and
258+
of promoting the sharing and reuse of software generally.
259+
260+
NO WARRANTY
261+
262+
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
263+
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
264+
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
265+
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
266+
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
267+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
268+
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
269+
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
270+
REPAIR OR CORRECTION.
271+
272+
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
273+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
274+
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
275+
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
276+
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
277+
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
278+
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
279+
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
280+
POSSIBILITY OF SUCH DAMAGES.
281+

docs/README

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
$Id: README 3895 2007-03-06 20:16:36Z francis $
2+
3+
Homepage:: http://rubyeventmachine.com
4+
Copyright:: (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
5+
Email:: gmail address: garbagecat10
6+
7+
This program is made available under the terms of the Lesser-GPL version 2.
8+
See the file COPYING in this distribution for more information.

docs/RELEASE_NOTES

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
$Id: RELEASE_NOTES 3539 2006-12-31 03:05:56Z francis $
2+
3+

0 commit comments

Comments
 (0)