mongrel 0.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +24 -28
- data/Rakefile +11 -4
- data/bin/mongrel_rails +82 -25
- data/doc/rdoc/classes/FactoryError.html +144 -0
- data/doc/rdoc/classes/FactoryError.src/M000001.html +23 -0
- data/doc/rdoc/classes/Mongrel.html +5 -5
- data/doc/rdoc/classes/Mongrel.src/{M000001.html → M000015.html} +4 -4
- data/doc/rdoc/classes/Mongrel/Const.html +2 -2
- data/doc/rdoc/classes/Mongrel/DirHandler.html +26 -26
- data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000009.html → M000023.html} +0 -0
- data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000010.html → M000024.html} +5 -2
- data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000011.html → M000025.html} +26 -26
- data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000012.html → M000026.html} +17 -17
- data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000013.html → M000027.html} +24 -24
- data/doc/rdoc/classes/Mongrel/Error404Handler.html +10 -10
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000033.html → M000047.html} +0 -0
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000034.html → M000048.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HeaderOut.html +10 -10
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000019.html → M000033.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000020.html → M000034.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpHandler.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000025.html → M000039.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpParser.html +35 -35
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000002.html → M000016.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000003.html → M000017.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000004.html → M000018.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000005.html → M000019.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000006.html → M000020.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000007.html → M000021.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000008.html → M000022.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpRequest.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000035.html → M000049.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.html +36 -36
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000026.html → M000040.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000027.html → M000041.html} +1 -1
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000028.html → M000042.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000029.html → M000043.html} +1 -1
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000030.html → M000044.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000031.html → M000045.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000032.html → M000046.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.html +28 -28
- data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000014.html → M000028.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000015.html → M000029.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000016.html → M000030.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000017.html → M000031.html} +0 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000018.html → M000032.html} +0 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.html +20 -20
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000021.html → M000035.html} +0 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000022.html → M000036.html} +0 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000023.html → M000037.html} +0 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000024.html → M000038.html} +0 -0
- data/doc/rdoc/classes/PluginFactory.html +409 -0
- data/doc/rdoc/classes/PluginFactory.src/M000002.html +18 -0
- data/doc/rdoc/classes/PluginFactory.src/M000003.html +18 -0
- data/doc/rdoc/classes/PluginFactory.src/M000004.html +22 -0
- data/doc/rdoc/classes/PluginFactory.src/M000005.html +22 -0
- data/doc/rdoc/classes/PluginFactory.src/M000006.html +33 -0
- data/doc/rdoc/classes/PluginFactory.src/M000007.html +32 -0
- data/doc/rdoc/classes/PluginFactory.src/M000008.html +18 -0
- data/doc/rdoc/classes/PluginFactory.src/M000009.html +24 -0
- data/doc/rdoc/classes/PluginFactory.src/M000010.html +40 -0
- data/doc/rdoc/classes/PluginFactory.src/M000011.html +39 -0
- data/doc/rdoc/classes/PluginFactory.src/M000012.html +24 -0
- data/doc/rdoc/classes/PluginFactory.src/M000013.html +70 -0
- data/doc/rdoc/classes/PluginFactory.src/M000014.html +34 -0
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/README.html +29 -37
- data/doc/rdoc/files/lib/mongrel_rb.html +1 -1
- data/doc/rdoc/files/lib/pluginfactory_rb.html +132 -0
- data/doc/rdoc/fr_class_index.html +2 -0
- data/doc/rdoc/fr_file_index.html +1 -0
- data/doc/rdoc/fr_method_index.html +49 -35
- data/examples/simpletest.rb +10 -3
- data/lib/mongrel.rb +6 -3
- data/lib/mongrel/command.rb +192 -0
- data/lib/pluginfactory.rb +384 -0
- data/tools/rakehelp.rb +33 -29
- metadata +71 -41
data/README
CHANGED
|
@@ -11,30 +11,31 @@ scream without too many portability issues.
|
|
|
11
11
|
|
|
12
12
|
== Status
|
|
13
13
|
|
|
14
|
-
The 0.3 release
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
The 0.3.1 release support Ruby On Rails much better than previously, and also
|
|
15
|
+
sports the beginning of a command and plugin infrastructure. This last part
|
|
16
|
+
isn't documented yet.
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
do the following to run your Rails applications:
|
|
18
|
+
After you've installed (either with gem install mongrel or via source) you should
|
|
19
|
+
have the mongrel_rails command available in your PATH. Then you just do the following:
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
> cd myrailsapp
|
|
22
|
+
> mongrel_rails start
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
This will start it in the foreground so you can play with it. It runs your application
|
|
25
|
+
in production mode. To get help do:
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
background. You can kill it with:
|
|
27
|
+
> mongrel_rails start -h
|
|
30
28
|
|
|
31
|
-
|
|
29
|
+
Finally, you can then start in background mode (probably won't work in win32):
|
|
32
30
|
|
|
33
|
-
|
|
31
|
+
> mongrel_rails start -d
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
And you can stop it whenever you like with:
|
|
34
|
+
|
|
35
|
+
> mongrel_rails stop
|
|
36
|
+
|
|
37
|
+
All of which should be done from your application's directory. It writes the
|
|
38
|
+
PID of the process you ran into log/mongrel.pid.
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
== Install
|
|
@@ -82,16 +83,13 @@ type mapping is missing though.*
|
|
|
82
83
|
|
|
83
84
|
== Speed
|
|
84
85
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
make it any faster. In short: Mongrel is amazingly fast considering Ruby's speed
|
|
90
|
-
limitations.
|
|
86
|
+
Like previous releases 0.3.1 continues the trend of making things
|
|
87
|
+
as fast as possible. It currently might be a little slower than
|
|
88
|
+
other releases but should hold up pretty good against at least
|
|
89
|
+
WEBrick (especially when running Rails).
|
|
91
90
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
parameter:
|
|
91
|
+
As before you can control the number of processor threads (and thus
|
|
92
|
+
ActiveRecord database connections) with:
|
|
95
93
|
|
|
96
94
|
h = Mongrel::HttpServer.new("0.0.0.0", "3000", 40)
|
|
97
95
|
|
|
@@ -101,8 +99,6 @@ limited processors also means that you can use ActiveRecord as-is and it will
|
|
|
101
99
|
create a matching database connection for each processor thread. More on
|
|
102
100
|
this in future releases.
|
|
103
101
|
|
|
104
|
-
With this release I'm hoping that I've created a nice solid fast as hell core
|
|
105
|
-
upon which I can build the remaining features I want in Mongrel.
|
|
106
102
|
|
|
107
103
|
== The Future
|
|
108
104
|
|
data/Rakefile
CHANGED
|
@@ -8,7 +8,7 @@ require 'fileutils'
|
|
|
8
8
|
include FileUtils
|
|
9
9
|
|
|
10
10
|
setup_tests
|
|
11
|
-
setup_clean ["ext/http11/Makefile", "pkg", "lib/*.bundle", "ext/http11/*.bundle"]
|
|
11
|
+
setup_clean ["ext/http11/Makefile", "pkg", "lib/*.bundle", "ext/http11/*.bundle", "doc/site/output"]
|
|
12
12
|
setup_rdoc ['README', 'LICENSE', 'COPYING', 'lib/*.rb', 'doc/**/*.rdoc', 'ext/http11/http11.c']
|
|
13
13
|
|
|
14
14
|
desc "Does a full compile, test run"
|
|
@@ -19,11 +19,18 @@ task :compile => [:http11]
|
|
|
19
19
|
task :package => [:clean]
|
|
20
20
|
|
|
21
21
|
task :ragel do
|
|
22
|
-
|
|
22
|
+
sh %{/usr/local/bin/ragel ext/http11/http11_parser.rl | /usr/local/bin/rlcodegen -G2 -o ext/http11/http11_parser.c}
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
task :site do
|
|
26
|
+
sh %{pushd doc/site; webgen; scp -r output/* #{ENV['SSH_USER']}@rubyforge.org:/var/www/gforge-projects/mongrel/; popd }
|
|
27
|
+
sh %{ scp -r doc/rdoc/* #{ENV['SSH_USER']}@rubyforge.org:/var/www/gforge-projects/mongrel/rdoc/ }
|
|
23
28
|
end
|
|
24
29
|
|
|
25
30
|
setup_extension("http11", "http11")
|
|
26
31
|
|
|
27
|
-
summary = "
|
|
32
|
+
summary = "A small fast HTTP library and server that runs Rails, Camping, and Nitro apps."
|
|
28
33
|
test_file = "test/test_ws.rb"
|
|
29
|
-
setup_gem("mongrel", "0.3", "Zed A. Shaw", summary, ['mongrel_rails'], test_file)
|
|
34
|
+
setup_gem("mongrel", "0.3.1", "Zed A. Shaw", summary, ['mongrel_rails'], test_file) do |spec|
|
|
35
|
+
spec.add_dependency('daemons', '>= 0.4.2')
|
|
36
|
+
end
|
data/bin/mongrel_rails
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
require 'rubygems'
|
|
2
2
|
require 'mongrel'
|
|
3
3
|
require 'cgi'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
HAVE_DAEMONS=true
|
|
7
|
-
rescue
|
|
8
|
-
HAVE_DAEMONS=false
|
|
9
|
-
end
|
|
4
|
+
require 'daemons/daemonize'
|
|
5
|
+
require 'mongrel/command'
|
|
10
6
|
|
|
11
7
|
|
|
12
8
|
class CGIFixed < ::CGI
|
|
@@ -87,28 +83,89 @@ class RailsHandler < Mongrel::HttpHandler
|
|
|
87
83
|
end
|
|
88
84
|
|
|
89
85
|
|
|
90
|
-
if ARGV.length != 2
|
|
91
|
-
STDERR.puts "usage: mongrel_rails <host> <port>"
|
|
92
|
-
exit(1)
|
|
93
|
-
end
|
|
94
86
|
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
class StartCommand < Mongrel::Command::Command
|
|
88
|
+
|
|
89
|
+
def configure
|
|
90
|
+
options [
|
|
91
|
+
["-e", "--environment ENV", "Rails environment to run as", :@environment, "production"],
|
|
92
|
+
["-d", "--daemonize", "Whether to run in the background or not", :@daemon, false],
|
|
93
|
+
['-p', '--port PORT', "Which port to bind to", :@port, 3000],
|
|
94
|
+
['-a', '--address ADDR', "Address to bind to", :@address, "0.0.0.0"],
|
|
95
|
+
['-l', '--log FILE', "Where to write log messages", :@log_file, "log/mongrel.log"],
|
|
96
|
+
['-P', '--pid FILE', "Where to write the PID", :@pid_file, "log/mongrel.pid"]
|
|
97
|
+
]
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def validate
|
|
101
|
+
valid? ["production","development"].include?(@environment), "Only valid environments are 'production' or 'development'"
|
|
102
|
+
valid_dir? File.dirname(@log_file), "Path to log file not valid: #@log_file"
|
|
103
|
+
valid_dir? File.dirname(@pid_file), "Path to pid file not valid: #@pid_file"
|
|
104
|
+
|
|
105
|
+
return @valid
|
|
106
|
+
end
|
|
97
107
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
108
|
+
|
|
109
|
+
def run
|
|
110
|
+
cwd = Dir.pwd
|
|
111
|
+
|
|
112
|
+
if @daemon
|
|
113
|
+
puts "Running as Daemon at #@address:#@port"
|
|
114
|
+
Daemonize.daemonize(log_file=@log_file)
|
|
115
|
+
open(File.join(cwd,@pid_file),"w") {|f| f.write(Process.pid) }
|
|
116
|
+
# change back to the original starting directory
|
|
117
|
+
Dir.chdir(cwd)
|
|
118
|
+
else
|
|
119
|
+
puts "Running at #@address:#@port"
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
ENV['RAILS_ENV'] = @environment
|
|
123
|
+
|
|
124
|
+
require 'config/environment'
|
|
125
|
+
h = Mongrel::HttpServer.new(@address, @port)
|
|
126
|
+
h.register("/", RailsHandler.new(File.join(cwd,"public")))
|
|
127
|
+
h.run
|
|
128
|
+
|
|
129
|
+
begin
|
|
130
|
+
h.acceptor.join
|
|
131
|
+
rescue Interrupt
|
|
132
|
+
puts "Interrupted."
|
|
133
|
+
end
|
|
134
|
+
end
|
|
103
135
|
end
|
|
104
136
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class StopCommand < Mongrel::Command::Command
|
|
140
|
+
|
|
141
|
+
def configure
|
|
142
|
+
options [
|
|
143
|
+
["-d", "--daemonize", "Whether to run in the background or not", :@daemon, false],
|
|
144
|
+
['-P', '--pid FILE', "Where to write the PID", :@pid_file, "log/mongrel.pid"]
|
|
145
|
+
]
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def validate
|
|
149
|
+
valid_exists? @pid_file, "PID file #@pid_file does not exist. Not running?"
|
|
150
|
+
return @valid
|
|
151
|
+
end
|
|
152
|
+
|
|
112
153
|
|
|
113
|
-
|
|
154
|
+
def run
|
|
155
|
+
pid = open(@pid_file).read.to_i
|
|
156
|
+
print "Stopping Mongrel at PID #{pid}..."
|
|
157
|
+
begin
|
|
158
|
+
Process.kill("INT", pid)
|
|
159
|
+
rescue Errno::ESRCH
|
|
160
|
+
puts "Process does not exist. Not running."
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
File.unlink(@pid_file)
|
|
164
|
+
puts "Done."
|
|
165
|
+
end
|
|
114
166
|
end
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
Mongrel::Command::Registry.instance.run ARGV
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Class: FactoryError</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Class</strong></td>
|
|
53
|
+
<td class="class-name-in-header">FactoryError</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../files/lib/pluginfactory_rb.html">
|
|
59
|
+
lib/pluginfactory.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
RuntimeError
|
|
69
|
+
</td>
|
|
70
|
+
</tr>
|
|
71
|
+
</table>
|
|
72
|
+
</div>
|
|
73
|
+
<!-- banner header -->
|
|
74
|
+
|
|
75
|
+
<div id="bodyContent">
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<div id="contextContent">
|
|
80
|
+
|
|
81
|
+
<div id="description">
|
|
82
|
+
<p>
|
|
83
|
+
An exception class for <a href="PluginFactory.html">PluginFactory</a>
|
|
84
|
+
specific errors.
|
|
85
|
+
</p>
|
|
86
|
+
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
<div id="method-list">
|
|
93
|
+
<h3 class="section-bar">Methods</h3>
|
|
94
|
+
|
|
95
|
+
<div class="name-list">
|
|
96
|
+
<a href="#M000001">new</a>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
<!-- if includes -->
|
|
104
|
+
|
|
105
|
+
<div id="section">
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
<!-- if method_list -->
|
|
115
|
+
<div id="methods">
|
|
116
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
117
|
+
|
|
118
|
+
<div id="method-M000001" class="method-detail">
|
|
119
|
+
<a name="M000001"></a>
|
|
120
|
+
|
|
121
|
+
<div class="method-heading">
|
|
122
|
+
<a href="FactoryError.src/M000001.html" target="Code" class="method-signature"
|
|
123
|
+
onclick="popupCode('FactoryError.src/M000001.html');return false;">
|
|
124
|
+
<span class="method-name">new</span><span class="method-args">( *args )</span>
|
|
125
|
+
</a>
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
<div class="method-description">
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
<div id="validator-badges">
|
|
140
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
</body>
|
|
144
|
+
</html>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>new (FactoryError)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/pluginfactory.rb, line 87</span>
|
|
14
|
+
87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
|
|
15
|
+
88: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
|
|
16
|
+
89: <span class="ruby-identifier">msg</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>}.<span class="ruby-identifier">join</span>
|
|
17
|
+
90: <span class="ruby-keyword kw">super</span>( <span class="ruby-identifier">msg</span> )
|
|
18
|
+
91: <span class="ruby-keyword kw">else</span>
|
|
19
|
+
92: <span class="ruby-keyword kw">super</span>( <span class="ruby-identifier">message</span> )
|
|
20
|
+
93: <span class="ruby-keyword kw">end</span>
|
|
21
|
+
94: <span class="ruby-keyword kw">end</span></pre>
|
|
22
|
+
</body>
|
|
23
|
+
</html>
|
|
@@ -93,7 +93,7 @@ to service web application requests fast as possible.
|
|
|
93
93
|
<h3 class="section-bar">Methods</h3>
|
|
94
94
|
|
|
95
95
|
<div class="name-list">
|
|
96
|
-
<a href="#
|
|
96
|
+
<a href="#M000015">add_mime_type</a>
|
|
97
97
|
</div>
|
|
98
98
|
</div>
|
|
99
99
|
|
|
@@ -151,12 +151,12 @@ href="Mongrel/Const.html">Mongrel::Const</a>.
|
|
|
151
151
|
<div id="methods">
|
|
152
152
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
153
153
|
|
|
154
|
-
<div id="method-
|
|
155
|
-
<a name="
|
|
154
|
+
<div id="method-M000015" class="method-detail">
|
|
155
|
+
<a name="M000015"></a>
|
|
156
156
|
|
|
157
157
|
<div class="method-heading">
|
|
158
|
-
<a href="Mongrel.src/
|
|
159
|
-
onclick="popupCode('Mongrel.src/
|
|
158
|
+
<a href="Mongrel.src/M000015.html" target="Code" class="method-signature"
|
|
159
|
+
onclick="popupCode('Mongrel.src/M000015.html');return false;">
|
|
160
160
|
<span class="method-name">add_mime_type</span><span class="method-args">(extension, type)</span>
|
|
161
161
|
</a>
|
|
162
162
|
</div>
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 580</span>
|
|
14
|
+
580: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_mime_type</span>(<span class="ruby-identifier">extension</span>, <span class="ruby-identifier">type</span>)
|
|
15
|
+
581: <span class="ruby-constant">MIME_TYPES</span>[<span class="ruby-identifier">extension</span>] = <span class="ruby-identifier">type</span>
|
|
16
|
+
582: <span class="ruby-keyword kw">end</span></pre>
|
|
17
17
|
</body>
|
|
18
18
|
</html>
|
|
@@ -230,7 +230,7 @@ DNS resolves. It is only here for completeness for the CGI standard.
|
|
|
230
230
|
<td width="3em"> </td>
|
|
231
231
|
<td class="context-item-desc">
|
|
232
232
|
The name/host of our server as given by the <a
|
|
233
|
-
href="HttpServer.html#
|
|
233
|
+
href="HttpServer.html#M000028">HttpServer.new</a>(host,port) call.
|
|
234
234
|
|
|
235
235
|
</td>
|
|
236
236
|
</tr>
|
|
@@ -241,7 +241,7 @@ href="HttpServer.html#M000014">HttpServer.new</a>(host,port) call.
|
|
|
241
241
|
<td width="3em"> </td>
|
|
242
242
|
<td class="context-item-desc">
|
|
243
243
|
The port of our server as given by the <a
|
|
244
|
-
href="HttpServer.html#
|
|
244
|
+
href="HttpServer.html#M000028">HttpServer.new</a>(host,port) call.
|
|
245
245
|
|
|
246
246
|
</td>
|
|
247
247
|
</tr>
|