passenger 2.2.8 → 2.2.9
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/NEWS +56 -0
- data/bin/passenger-install-nginx-module +2 -2
- data/doc/Users guide Apache.html +43 -4
- data/doc/Users guide Nginx.html +43 -4
- data/doc/cxxapi/Bucket_8h-source.html +1 -1
- data/doc/cxxapi/Configuration_8h-source.html +1 -1
- data/doc/cxxapi/DirectoryMapper_8h-source.html +1 -1
- data/doc/cxxapi/Hooks_8h-source.html +1 -1
- data/doc/cxxapi/annotated.html +1 -1
- data/doc/cxxapi/classHooks-members.html +1 -1
- data/doc/cxxapi/classHooks.html +1 -1
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +1 -1
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +1 -1
- data/doc/cxxapi/classes.html +1 -1
- data/doc/cxxapi/definitions_8h-source.html +1 -1
- data/doc/cxxapi/files.html +1 -1
- data/doc/cxxapi/functions.html +1 -1
- data/doc/cxxapi/functions_func.html +1 -1
- data/doc/cxxapi/graph_legend.html +1 -1
- data/doc/cxxapi/group__Configuration.html +1 -1
- data/doc/cxxapi/group__Core.html +1 -1
- data/doc/cxxapi/group__Hooks.html +1 -1
- data/doc/cxxapi/group__Support.html +1 -1
- data/doc/cxxapi/main.html +1 -1
- data/doc/cxxapi/modules.html +1 -1
- data/doc/rdoc/classes/PhusionPassenger.html +1 -1
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +247 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +120 -0
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +1 -1
- data/doc/rdoc/files/README.html +1 -1
- data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +100 -0
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +1 -1
- data/doc/rdoc/files/misc/rake/extensions_rb.html +1 -1
- data/ext/common/Version.h +1 -1
- data/lib/phusion_passenger/constants.rb +1 -1
- data/lib/phusion_passenger/railz/application_spawner.rb +19 -4
- metadata +5 -2
data/NEWS
CHANGED
@@ -1,3 +1,59 @@
|
|
1
|
+
Release 2.2.9
|
2
|
+
-------------
|
3
|
+
|
4
|
+
* Fixed compatibility with Rails 3.
|
5
|
+
Actually, previous Phusion Passenger releases were already compatible
|
6
|
+
with Rails 3, depending on the spawn method that would be invoked. Here's
|
7
|
+
the story:
|
8
|
+
|
9
|
+
Since Phusion Passenger 2.2.8, when the file config.ru exists, Phusion
|
10
|
+
Passenger will treat the app as a Rack app, not as a Rails app. This is
|
11
|
+
in contrast to earlier versions which gave Rails detection more priority
|
12
|
+
than Rack detection. Phusion Passenger loads Rack apps and Rails apps in
|
13
|
+
different ways. The Rails loader was not compatible with Rails 3, which
|
14
|
+
is what we've fixed in this release.
|
15
|
+
|
16
|
+
That said, a Rails 3 app would have worked out-of-the-box on Phusion
|
17
|
+
Passenger 2.2.8 as well because Rails 3 apps include a config.ru file
|
18
|
+
by default, causing Phusion Passenger 2.2.8 to use the Rack loader.
|
19
|
+
Earlier versions of Phusion Passenger would just completely bail out
|
20
|
+
because they'd use the Rails loader.
|
21
|
+
|
22
|
+
That said, with 2.2.9 there are still some caveats:
|
23
|
+
- Smart spawning (the mechanism with which REE's 33% memory reduction
|
24
|
+
is implemented) is *not* supported for Rack apps. This means that if
|
25
|
+
you want to utilize smart spawning with Rails 3, then you should
|
26
|
+
remove your config.ru file.
|
27
|
+
- Rails 3 depends on Rack 1.1.0. You must have Rack 1.1.0 installed as
|
28
|
+
a gem, even if you've bundled it with the gem bundler. This is because
|
29
|
+
Phusion Passenger itself depends on Rack.
|
30
|
+
|
31
|
+
Both of these caveats are temporary. We have plans to solve both of these
|
32
|
+
properly in the future.
|
33
|
+
* What's up with the Gem Bundler?
|
34
|
+
There has been some reports that Phusion Passenger is not compatible with
|
35
|
+
Yehuda Katz's gem bundler (http://github.com/wycats/bundler). This might
|
36
|
+
have been true for an earlier version of the gem bundler, but the latest
|
37
|
+
version seems to work fine. Please note that you need to insert the
|
38
|
+
following snippet in config/preinitializer.rb, as instructed by the gem
|
39
|
+
bundler's README:
|
40
|
+
|
41
|
+
require "#{RAILS_ROOT}/vendor/gems/environment"
|
42
|
+
|
43
|
+
The Rails::Boot monkey patching code as posted at
|
44
|
+
http://yehudakatz.com/2009/11/03/using-the-new-gem-bundler-today/
|
45
|
+
does not seem to be required anymore.
|
46
|
+
* Fixed support for ActiveRecord subclasses that connect to another database.
|
47
|
+
ActiveRecord subclasses that connect to a database other than the default
|
48
|
+
one did not have their connection correctly cleared after forking.
|
49
|
+
This can result in weird errors along the lines of "Lost connection to
|
50
|
+
MySQL server during query". Issue #429.
|
51
|
+
* [Nginx] Fixed PCRE URL.
|
52
|
+
passenger-install-nginx-module downloads PCRE 7.8 if PCRE is not already
|
53
|
+
installed. However PCRE 7.8 has been removed from their FTP server,
|
54
|
+
so we've updated the URL to point to the latest version, 8.0.
|
55
|
+
|
56
|
+
|
1
57
|
Release 2.2.8
|
2
58
|
-------------
|
3
59
|
|
@@ -149,8 +149,8 @@ private
|
|
149
149
|
new_screen
|
150
150
|
color_puts "<banner>PCRE (required by Nginx) not installed, downloading it...</banner>"
|
151
151
|
|
152
|
-
basename = "pcre-
|
153
|
-
dirname = "pcre-
|
152
|
+
basename = "pcre-8.00.tar.gz"
|
153
|
+
dirname = "pcre-8.00"
|
154
154
|
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/#{basename}"
|
155
155
|
File.unlink("/tmp/#{basename}") rescue nil
|
156
156
|
FileUtils.rm_rf("/tmp/#{dirname}")
|
data/doc/Users guide Apache.html
CHANGED
@@ -3425,7 +3425,20 @@ Passenger is creating a new worker process. Phusion Passenger provides the API
|
|
3425
3425
|
call <tt>PhusionPassenger.on_event(:starting_worker_process)</tt> to do so. So you
|
3426
3426
|
could insert the following code in your <em>environment.rb</em>:</p></div>
|
3427
3427
|
<div class="listingblock">
|
3428
|
-
<div class="content"
|
3428
|
+
<div class="content"><!-- Generator: GNU source-highlight 2.11.1
|
3429
|
+
by Lorenzo Bettini
|
3430
|
+
http://www.lorenzobettini.it
|
3431
|
+
http://www.gnu.org/software/src-highlite -->
|
3432
|
+
<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="font-weight: bold"><span style="color: #0000FF">defined</span></span><span style="color: #990000">?(</span>PhusionPassenger<span style="color: #990000">)</span>
|
3433
|
+
PhusionPassenger<span style="color: #990000">.</span>on_event<span style="color: #990000">(:</span>starting_worker_process<span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>forked<span style="color: #990000">|</span>
|
3434
|
+
<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> forked
|
3435
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in smart spawning mode.</span></span>
|
3436
|
+
<span style="color: #990000">...</span> code to reestablish socket connections here <span style="color: #990000">...</span>
|
3437
|
+
<span style="font-weight: bold"><span style="color: #0000FF">else</span></span>
|
3438
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in conservative spawning mode. We don't need to do anything.</span></span>
|
3439
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
3440
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
3441
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
|
3429
3442
|
<div class="paragraph"><p>Note that Phusion Passenger automatically reestablishes the connection to the
|
3430
3443
|
database upon creating a new worker process, which is why you normally do not
|
3431
3444
|
encounter any database issues when using smart spawning mode.</p></div>
|
@@ -3505,7 +3518,20 @@ Memcached is forced to handle this as an error.</p></div>
|
|
3505
3518
|
<div class="paragraph"><p>Worker process 2 now has its own, separate communication channel with Memcached.
|
3506
3519
|
The code in <em>environment.rb</em> looks like this:</p></div>
|
3507
3520
|
<div class="listingblock">
|
3508
|
-
<div class="content"
|
3521
|
+
<div class="content"><!-- Generator: GNU source-highlight 2.11.1
|
3522
|
+
by Lorenzo Bettini
|
3523
|
+
http://www.lorenzobettini.it
|
3524
|
+
http://www.gnu.org/software/src-highlite -->
|
3525
|
+
<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="font-weight: bold"><span style="color: #0000FF">defined</span></span><span style="color: #990000">?(</span>PhusionPassenger<span style="color: #990000">)</span>
|
3526
|
+
PhusionPassenger<span style="color: #990000">.</span>on_event<span style="color: #990000">(:</span>starting_worker_process<span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>forked<span style="color: #990000">|</span>
|
3527
|
+
<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> forked
|
3528
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in smart spawning mode.</span></span>
|
3529
|
+
reestablish_connection_to_memcached
|
3530
|
+
<span style="font-weight: bold"><span style="color: #0000FF">else</span></span>
|
3531
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in conservative spawning mode. We don't need to do anything.</span></span>
|
3532
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
3533
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
3534
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
|
3509
3535
|
<h4 id="_example_2_log_file_sharing_not_harmful">12.3.2. Example 2: Log file sharing (not harmful)</h4>
|
3510
3536
|
<div class="paragraph"><p>There are also cases in which unintential file descriptor sharing is not harmful.
|
3511
3537
|
One such case is log file file descriptor sharing. Even if two processes write
|
@@ -3522,7 +3548,20 @@ then those threads will no longer be running in newly created worker process.
|
|
3522
3548
|
You need to revive them when a new worker process is created. Use the
|
3523
3549
|
<tt>:starting_worker_process</tt> event that Phusion Passenger provides, like this:</p></div>
|
3524
3550
|
<div class="listingblock">
|
3525
|
-
<div class="content"
|
3551
|
+
<div class="content"><!-- Generator: GNU source-highlight 2.11.1
|
3552
|
+
by Lorenzo Bettini
|
3553
|
+
http://www.lorenzobettini.it
|
3554
|
+
http://www.gnu.org/software/src-highlite -->
|
3555
|
+
<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="font-weight: bold"><span style="color: #0000FF">defined</span></span><span style="color: #990000">?(</span>PhusionPassenger<span style="color: #990000">)</span>
|
3556
|
+
PhusionPassenger<span style="color: #990000">.</span>on_event<span style="color: #990000">(:</span>starting_worker_process<span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>forked<span style="color: #990000">|</span>
|
3557
|
+
<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> forked
|
3558
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in smart spawning mode.</span></span>
|
3559
|
+
<span style="color: #990000">...</span> code to revive threads here <span style="color: #990000">...</span>
|
3560
|
+
<span style="font-weight: bold"><span style="color: #0000FF">else</span></span>
|
3561
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in conservative spawning mode. We don't need to do anything.</span></span>
|
3562
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
3563
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
3564
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
|
3526
3565
|
<h3 id="_smart_spawning_gotcha_3_code_load_order">12.5. Smart spawning gotcha #3: code load order</h3>
|
3527
3566
|
<div class="paragraph"><p>This gotcha is only applicable to the <em>smart</em> spawn method, not the <em>smart-lv2</em>
|
3528
3567
|
spawn method.</p></div>
|
@@ -3542,7 +3581,7 @@ has no effect.</p></div>
|
|
3542
3581
|
</div>
|
3543
3582
|
<div id="footer">
|
3544
3583
|
<div id="footer-text">
|
3545
|
-
Last updated
|
3584
|
+
Last updated 2010-01-08 11:24:06 CEST
|
3546
3585
|
</div>
|
3547
3586
|
</div>
|
3548
3587
|
</body>
|
data/doc/Users guide Nginx.html
CHANGED
@@ -2103,7 +2103,20 @@ Passenger is creating a new worker process. Phusion Passenger provides the API
|
|
2103
2103
|
call <tt>PhusionPassenger.on_event(:starting_worker_process)</tt> to do so. So you
|
2104
2104
|
could insert the following code in your <em>environment.rb</em>:</p></div>
|
2105
2105
|
<div class="listingblock">
|
2106
|
-
<div class="content"
|
2106
|
+
<div class="content"><!-- Generator: GNU source-highlight 2.11.1
|
2107
|
+
by Lorenzo Bettini
|
2108
|
+
http://www.lorenzobettini.it
|
2109
|
+
http://www.gnu.org/software/src-highlite -->
|
2110
|
+
<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="font-weight: bold"><span style="color: #0000FF">defined</span></span><span style="color: #990000">?(</span>PhusionPassenger<span style="color: #990000">)</span>
|
2111
|
+
PhusionPassenger<span style="color: #990000">.</span>on_event<span style="color: #990000">(:</span>starting_worker_process<span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>forked<span style="color: #990000">|</span>
|
2112
|
+
<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> forked
|
2113
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in smart spawning mode.</span></span>
|
2114
|
+
<span style="color: #990000">...</span> code to reestablish socket connections here <span style="color: #990000">...</span>
|
2115
|
+
<span style="font-weight: bold"><span style="color: #0000FF">else</span></span>
|
2116
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in conservative spawning mode. We don't need to do anything.</span></span>
|
2117
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
2118
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
2119
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
|
2107
2120
|
<div class="paragraph"><p>Note that Phusion Passenger automatically reestablishes the connection to the
|
2108
2121
|
database upon creating a new worker process, which is why you normally do not
|
2109
2122
|
encounter any database issues when using smart spawning mode.</p></div>
|
@@ -2183,7 +2196,20 @@ Memcached is forced to handle this as an error.</p></div>
|
|
2183
2196
|
<div class="paragraph"><p>Worker process 2 now has its own, separate communication channel with Memcached.
|
2184
2197
|
The code in <em>environment.rb</em> looks like this:</p></div>
|
2185
2198
|
<div class="listingblock">
|
2186
|
-
<div class="content"
|
2199
|
+
<div class="content"><!-- Generator: GNU source-highlight 2.11.1
|
2200
|
+
by Lorenzo Bettini
|
2201
|
+
http://www.lorenzobettini.it
|
2202
|
+
http://www.gnu.org/software/src-highlite -->
|
2203
|
+
<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="font-weight: bold"><span style="color: #0000FF">defined</span></span><span style="color: #990000">?(</span>PhusionPassenger<span style="color: #990000">)</span>
|
2204
|
+
PhusionPassenger<span style="color: #990000">.</span>on_event<span style="color: #990000">(:</span>starting_worker_process<span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>forked<span style="color: #990000">|</span>
|
2205
|
+
<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> forked
|
2206
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in smart spawning mode.</span></span>
|
2207
|
+
reestablish_connection_to_memcached
|
2208
|
+
<span style="font-weight: bold"><span style="color: #0000FF">else</span></span>
|
2209
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in conservative spawning mode. We don't need to do anything.</span></span>
|
2210
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
2211
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
2212
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
|
2187
2213
|
<h4 id="_example_2_log_file_sharing_not_harmful">10.3.2. Example 2: Log file sharing (not harmful)</h4>
|
2188
2214
|
<div class="paragraph"><p>There are also cases in which unintential file descriptor sharing is not harmful.
|
2189
2215
|
One such case is log file file descriptor sharing. Even if two processes write
|
@@ -2200,7 +2226,20 @@ then those threads will no longer be running in newly created worker process.
|
|
2200
2226
|
You need to revive them when a new worker process is created. Use the
|
2201
2227
|
<tt>:starting_worker_process</tt> event that Phusion Passenger provides, like this:</p></div>
|
2202
2228
|
<div class="listingblock">
|
2203
|
-
<div class="content"
|
2229
|
+
<div class="content"><!-- Generator: GNU source-highlight 2.11.1
|
2230
|
+
by Lorenzo Bettini
|
2231
|
+
http://www.lorenzobettini.it
|
2232
|
+
http://www.gnu.org/software/src-highlite -->
|
2233
|
+
<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="font-weight: bold"><span style="color: #0000FF">defined</span></span><span style="color: #990000">?(</span>PhusionPassenger<span style="color: #990000">)</span>
|
2234
|
+
PhusionPassenger<span style="color: #990000">.</span>on_event<span style="color: #990000">(:</span>starting_worker_process<span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>forked<span style="color: #990000">|</span>
|
2235
|
+
<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> forked
|
2236
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in smart spawning mode.</span></span>
|
2237
|
+
<span style="color: #990000">...</span> code to revive threads here <span style="color: #990000">...</span>
|
2238
|
+
<span style="font-weight: bold"><span style="color: #0000FF">else</span></span>
|
2239
|
+
<span style="font-style: italic"><span style="color: #9A1900"># We're in conservative spawning mode. We don't need to do anything.</span></span>
|
2240
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
2241
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
|
2242
|
+
<span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
|
2204
2243
|
<h3 id="_smart_spawning_gotcha_3_code_load_order">10.5. Smart spawning gotcha #3: code load order</h3>
|
2205
2244
|
<div class="paragraph"><p>This gotcha is only applicable to the <em>smart</em> spawn method, not the <em>smart-lv2</em>
|
2206
2245
|
spawn method.</p></div>
|
@@ -2220,7 +2259,7 @@ has no effect.</p></div>
|
|
2220
2259
|
</div>
|
2221
2260
|
<div id="footer">
|
2222
2261
|
<div id="footer-text">
|
2223
|
-
Last updated
|
2262
|
+
Last updated 2010-01-08 11:24:06 CEST
|
2224
2263
|
</div>
|
2225
2264
|
</div>
|
2226
2265
|
</body>
|
@@ -107,7 +107,7 @@
|
|
107
107
|
<a name="l00086"></a>00086
|
108
108
|
<a name="l00087"></a>00087 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BUCKET_H_ */</span>
|
109
109
|
</pre></div></div>
|
110
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
110
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by
|
111
111
|
<a href="http://www.doxygen.org/index.html">
|
112
112
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
113
113
|
</body>
|
@@ -425,7 +425,7 @@
|
|
425
425
|
<a name="l00404"></a>00404
|
426
426
|
<a name="l00405"></a>00405 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_CONFIGURATION_H_ */</span>
|
427
427
|
</pre></div></div>
|
428
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
428
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by
|
429
429
|
<a href="http://www.doxygen.org/index.html">
|
430
430
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
431
431
|
</body>
|
@@ -316,7 +316,7 @@
|
|
316
316
|
<a name="l00295"></a>00295 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_DIRECTORY_MAPPER_H_ */</span>
|
317
317
|
<a name="l00296"></a>00296
|
318
318
|
</pre></div></div>
|
319
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
319
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by
|
320
320
|
<a href="http://www.doxygen.org/index.html">
|
321
321
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
322
322
|
</body>
|
@@ -65,7 +65,7 @@
|
|
65
65
|
<a name="l00044"></a>00044 <span class="preprocessor"></span>
|
66
66
|
<a name="l00045"></a>00045 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_HOOKS_H_ */</span>
|
67
67
|
</pre></div></div>
|
68
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
68
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by
|
69
69
|
<a href="http://www.doxygen.org/index.html">
|
70
70
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
71
71
|
</body>
|
data/doc/cxxapi/annotated.html
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
<tr><td class="indexkey"><a class="el" href="classHooks.html">Hooks</a></td><td class="indexvalue">Apache hook functions, wrapped in a class </td></tr>
|
28
28
|
</table>
|
29
29
|
</div>
|
30
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
30
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
31
31
|
<a href="http://www.doxygen.org/index.html">
|
32
32
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
33
33
|
</body>
|
@@ -28,7 +28,7 @@
|
|
28
28
|
<tr class="memlist"><td><a class="el" href="classHooks.html#d6cca64be8a9075b4b92efdb4d9020a5">startBlockingModAutoIndex</a>(request_rec *r)</td><td><a class="el" href="classHooks.html">Hooks</a></td><td><code> [inline]</code></td></tr>
|
29
29
|
<tr class="memlist"><td><a class="el" href="classHooks.html#e3091c57c95b2f8269f566099802f0ec">startBlockingModDir</a>(request_rec *r)</td><td><a class="el" href="classHooks.html">Hooks</a></td><td><code> [inline]</code></td></tr>
|
30
30
|
</table></div>
|
31
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
31
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
32
32
|
<a href="http://www.doxygen.org/index.html">
|
33
33
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
34
34
|
</body>
|
data/doc/cxxapi/classHooks.html
CHANGED
@@ -148,7 +148,7 @@ So in <a class="el" href="classHooks.html#e3091c57c95b2f8269f566099802f0ec" titl
|
|
148
148
|
<hr>The documentation for this class was generated from the following file:<ul>
|
149
149
|
<li>Hooks.cpp</ul>
|
150
150
|
</div>
|
151
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
151
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
152
152
|
<a href="http://www.doxygen.org/index.html">
|
153
153
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
154
154
|
</body>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1DirectoryMapper.html#f5091e3cef3878e160e5d3b2181d82fb">getEnvironment</a>()</td><td><a class="el" href="classPassenger_1_1DirectoryMapper.html">Passenger::DirectoryMapper</a></td><td><code> [inline]</code></td></tr>
|
31
31
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1DirectoryMapper.html#ef969f27622fb215990a870076648aa1">getPublicDirectory</a>()</td><td><a class="el" href="classPassenger_1_1DirectoryMapper.html">Passenger::DirectoryMapper</a></td><td><code> [inline]</code></td></tr>
|
32
32
|
</table></div>
|
33
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
33
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
34
34
|
<a href="http://www.doxygen.org/index.html">
|
35
35
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
36
36
|
</body>
|
@@ -251,7 +251,7 @@ Returns an empty string if the document root of the HTTP request cannot be deter
|
|
251
251
|
<hr>The documentation for this class was generated from the following file:<ul>
|
252
252
|
<li><a class="el" href="DirectoryMapper_8h-source.html">DirectoryMapper.h</a></ul>
|
253
253
|
</div>
|
254
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
254
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
255
255
|
<a href="http://www.doxygen.org/index.html">
|
256
256
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
257
257
|
</body>
|
data/doc/cxxapi/classes.html
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
</td><td><a class="el" href="classPassenger_1_1DirectoryMapper.html">DirectoryMapper</a> (Passenger) </td><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> H </div></td></tr></table>
|
29
29
|
</td><td><a class="el" href="classHooks.html">Hooks</a> </td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_H">H</a></div><p>
|
30
30
|
</div>
|
31
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
31
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
32
32
|
<a href="http://www.doxygen.org/index.html">
|
33
33
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
34
34
|
</body>
|
@@ -25,7 +25,7 @@
|
|
25
25
|
<a name="l00004"></a>00004 <span class="comment">@defgroup Support Apache-independent support classes and function</span>
|
26
26
|
<a name="l00005"></a>00005 <span class="comment">*/</span>
|
27
27
|
</pre></div></div>
|
28
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
28
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by
|
29
29
|
<a href="http://www.doxygen.org/index.html">
|
30
30
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
31
31
|
</body>
|
data/doc/cxxapi/files.html
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
<tr><td class="indexkey"><b>Hooks.h</b> <a href="Hooks_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
30
30
|
</table>
|
31
31
|
</div>
|
32
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
32
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
33
33
|
<a href="http://www.doxygen.org/index.html">
|
34
34
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
35
35
|
</body>
|
data/doc/cxxapi/functions.html
CHANGED
@@ -53,7 +53,7 @@ Here is a list of all documented class members with links to the class documenta
|
|
53
53
|
: <a class="el" href="classHooks.html#e3091c57c95b2f8269f566099802f0ec">Hooks</a>
|
54
54
|
</ul>
|
55
55
|
</div>
|
56
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
56
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
57
57
|
<a href="http://www.doxygen.org/index.html">
|
58
58
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
59
59
|
</body>
|
@@ -53,7 +53,7 @@
|
|
53
53
|
: <a class="el" href="classHooks.html#e3091c57c95b2f8269f566099802f0ec">Hooks</a>
|
54
54
|
</ul>
|
55
55
|
</div>
|
56
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
56
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
57
57
|
<a href="http://www.doxygen.org/index.html">
|
58
58
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
59
59
|
</body>
|
@@ -79,7 +79,7 @@ A purple dashed arrow is used if a class is contained or used by another class.
|
|
79
79
|
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
|
80
80
|
</ul>
|
81
81
|
</div>
|
82
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
82
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
83
83
|
<a href="http://www.doxygen.org/index.html">
|
84
84
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
85
85
|
</body>
|
@@ -204,7 +204,7 @@ Apache module commands array.
|
|
204
204
|
</div>
|
205
205
|
</div><p>
|
206
206
|
</div>
|
207
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
207
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
208
208
|
<a href="http://www.doxygen.org/index.html">
|
209
209
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
210
210
|
</body>
|
data/doc/cxxapi/group__Core.html
CHANGED
@@ -41,7 +41,7 @@ Collaboration diagram for Core Apache-related classes and functions:</div>
|
|
41
41
|
|
42
42
|
</table>
|
43
43
|
</div>
|
44
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
44
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
45
45
|
<a href="http://www.doxygen.org/index.html">
|
46
46
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
47
47
|
</body>
|
@@ -32,7 +32,7 @@ Collaboration diagram for Apache hooks:</div>
|
|
32
32
|
<tr><td></td></tr>
|
33
33
|
</table>
|
34
34
|
</div>
|
35
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
35
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
36
36
|
<a href="http://www.doxygen.org/index.html">
|
37
37
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
38
38
|
</body>
|
@@ -20,7 +20,7 @@
|
|
20
20
|
<tr><td></td></tr>
|
21
21
|
</table>
|
22
22
|
</div>
|
23
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
23
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
24
24
|
<a href="http://www.doxygen.org/index.html">
|
25
25
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
26
26
|
</body>
|
data/doc/cxxapi/main.html
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
<h1>Passenger Documentation</h1>
|
20
20
|
<p>
|
21
21
|
</div>
|
22
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
22
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by
|
23
23
|
<a href="http://www.doxygen.org/index.html">
|
24
24
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
25
25
|
</body>
|
data/doc/cxxapi/modules.html
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
<li><a class="el" href="group__Support.html">Apache-independent support classes and function</a>
|
26
26
|
</ul>
|
27
27
|
</div>
|
28
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
28
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:57 2010 for Passenger by
|
29
29
|
<a href="http://www.doxygen.org/index.html">
|
30
30
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
31
31
|
</body>
|
@@ -135,7 +135,7 @@ Class <a href="PhusionPassenger/VersionNotFound.html" class="link">PhusionPassen
|
|
135
135
|
<tr valign='top'>
|
136
136
|
<td class="attr-name">VERSION_STRING</td>
|
137
137
|
<td>=</td>
|
138
|
-
<td class="attr-value">'2.2.
|
138
|
+
<td class="attr-value">'2.2.9'</td>
|
139
139
|
</tr>
|
140
140
|
<tr valign='top'>
|
141
141
|
<td> </td>
|
@@ -0,0 +1,247 @@
|
|
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
|
+
<html>
|
6
|
+
<head>
|
7
|
+
<title>Class: PhusionPassenger::Utils::RewindableInput</title>
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
9
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
10
|
+
|
11
|
+
<script language="JavaScript" type="text/javascript">
|
12
|
+
// <![CDATA[
|
13
|
+
|
14
|
+
function toggleSource( id )
|
15
|
+
{
|
16
|
+
var elem
|
17
|
+
var link
|
18
|
+
|
19
|
+
if( document.getElementById )
|
20
|
+
{
|
21
|
+
elem = document.getElementById( id )
|
22
|
+
link = document.getElementById( "l_" + id )
|
23
|
+
}
|
24
|
+
else if ( document.all )
|
25
|
+
{
|
26
|
+
elem = eval( "document.all." + id )
|
27
|
+
link = eval( "document.all.l_" + id )
|
28
|
+
}
|
29
|
+
else
|
30
|
+
return false;
|
31
|
+
|
32
|
+
if( elem.style.display == "block" )
|
33
|
+
{
|
34
|
+
elem.style.display = "none"
|
35
|
+
link.innerHTML = "show source"
|
36
|
+
}
|
37
|
+
else
|
38
|
+
{
|
39
|
+
elem.style.display = "block"
|
40
|
+
link.innerHTML = "hide source"
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
function openCode( url )
|
45
|
+
{
|
46
|
+
window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
|
47
|
+
}
|
48
|
+
// ]]>
|
49
|
+
</script>
|
50
|
+
</head>
|
51
|
+
|
52
|
+
<body>
|
53
|
+
<table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
|
54
|
+
<td class="file-title"><span class="file-title-prefix">Class</span><br />PhusionPassenger::Utils::RewindableInput</td>
|
55
|
+
<td align="right">
|
56
|
+
<table cellspacing="0" cellpadding="2">
|
57
|
+
<tr valign="top">
|
58
|
+
<td>In:</td>
|
59
|
+
<td>
|
60
|
+
<a href="../../../files/lib/phusion_passenger/utils/rewindable_input_rb.html">lib/phusion_passenger/utils/rewindable_input.rb</a>
|
61
|
+
</td>
|
62
|
+
</tr>
|
63
|
+
<tr>
|
64
|
+
<td>Parent:</td>
|
65
|
+
<td>
|
66
|
+
Object
|
67
|
+
</td>
|
68
|
+
</tr>
|
69
|
+
</table>
|
70
|
+
</td>
|
71
|
+
</tr>
|
72
|
+
</table>
|
73
|
+
<!-- banner header -->
|
74
|
+
|
75
|
+
<div id="bodyContent">
|
76
|
+
<div id="content">
|
77
|
+
|
78
|
+
<div class="description"><p>
|
79
|
+
Class which can make any <a href="../../IO.html">IO</a> object rewindable,
|
80
|
+
including non-rewindable ones. It does this by buffering the data into a
|
81
|
+
tempfile, which is rewindable.
|
82
|
+
</p>
|
83
|
+
<p>
|
84
|
+
rack.input is required to be rewindable, so if your input stream <a
|
85
|
+
href="../../IO.html">IO</a> is non-rewindable by nature (e.g. a pipe or a
|
86
|
+
socket) then you can wrap it in an object of this class to easily make it
|
87
|
+
rewindable.
|
88
|
+
</p>
|
89
|
+
<p>
|
90
|
+
Don‘t forget to call <a
|
91
|
+
href="RewindableInput.html#M000100">#close</a> when you‘re done. This
|
92
|
+
frees up temporary resources that <a
|
93
|
+
href="RewindableInput.html">RewindableInput</a> uses, though it does
|
94
|
+
<b>not</b> <a href="RewindableInput.html#M000100">close</a> the original <a
|
95
|
+
href="../../IO.html">IO</a> object.
|
96
|
+
</p>
|
97
|
+
</div>
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
<div class="sectiontitle">Methods</div>
|
102
|
+
<ul>
|
103
|
+
<li><a href="#M000100">close</a></li>
|
104
|
+
<li><a href="#M000098">each</a></li>
|
105
|
+
<li><a href="#M000096">gets</a></li>
|
106
|
+
<li><a href="#M000095">new</a></li>
|
107
|
+
<li><a href="#M000097">read</a></li>
|
108
|
+
<li><a href="#M000099">rewind</a></li>
|
109
|
+
</ul>
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
<div class="sectiontitle">Classes and Modules</div>
|
114
|
+
Class <a href="RewindableInput/Tempfile.html" class="link">PhusionPassenger::Utils::RewindableInput::Tempfile</a><br />
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
<div class="sectiontitle">Public Class methods</div>
|
120
|
+
<div class="method">
|
121
|
+
<div class="title">
|
122
|
+
<a name="M000095"></a><b>new</b>(io)
|
123
|
+
</div>
|
124
|
+
<div class="sourcecode">
|
125
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000095_source')" id="l_M000095_source">show source</a> ]</p>
|
126
|
+
<div id="M000095_source" class="dyn-source">
|
127
|
+
<pre>
|
128
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/rewindable_input.rb, line 18</span>
|
129
|
+
18: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>)
|
130
|
+
19: <span class="ruby-ivar">@io</span> = <span class="ruby-identifier">io</span>
|
131
|
+
20: <span class="ruby-ivar">@rewindable_io</span> = <span class="ruby-keyword kw">nil</span>
|
132
|
+
21: <span class="ruby-ivar">@unlinked</span> = <span class="ruby-keyword kw">false</span>
|
133
|
+
22: <span class="ruby-keyword kw">end</span>
|
134
|
+
</pre>
|
135
|
+
</div>
|
136
|
+
</div>
|
137
|
+
</div>
|
138
|
+
<div class="sectiontitle">Public Instance methods</div>
|
139
|
+
<div class="method">
|
140
|
+
<div class="title">
|
141
|
+
<a name="M000100"></a><b>close</b>()
|
142
|
+
</div>
|
143
|
+
<div class="description">
|
144
|
+
<p>
|
145
|
+
Closes this <a href="RewindableInput.html">RewindableInput</a> object
|
146
|
+
without closing the originally wrapped <a href="../../IO.html">IO</a>
|
147
|
+
oject. Cleans up any temporary resources that this <a
|
148
|
+
href="RewindableInput.html">RewindableInput</a> has created.
|
149
|
+
</p>
|
150
|
+
<p>
|
151
|
+
This method may be called multiple times. It does nothing on subsequent
|
152
|
+
calls.
|
153
|
+
</p>
|
154
|
+
</div>
|
155
|
+
<div class="sourcecode">
|
156
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000100_source')" id="l_M000100_source">show source</a> ]</p>
|
157
|
+
<div id="M000100_source" class="dyn-source">
|
158
|
+
<pre>
|
159
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/rewindable_input.rb, line 49</span>
|
160
|
+
49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
|
161
|
+
50: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@rewindable_io</span>
|
162
|
+
51: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@unlinked</span>
|
163
|
+
52: <span class="ruby-ivar">@rewindable_io</span>.<span class="ruby-identifier">close</span>
|
164
|
+
53: <span class="ruby-keyword kw">else</span>
|
165
|
+
54: <span class="ruby-ivar">@rewindable_io</span>.<span class="ruby-identifier">close!</span>
|
166
|
+
55: <span class="ruby-keyword kw">end</span>
|
167
|
+
56: <span class="ruby-ivar">@rewindable_io</span> = <span class="ruby-keyword kw">nil</span>
|
168
|
+
57: <span class="ruby-keyword kw">end</span>
|
169
|
+
58: <span class="ruby-keyword kw">end</span>
|
170
|
+
</pre>
|
171
|
+
</div>
|
172
|
+
</div>
|
173
|
+
</div>
|
174
|
+
<div class="method">
|
175
|
+
<div class="title">
|
176
|
+
<a name="M000098"></a><b>each</b>(&block)
|
177
|
+
</div>
|
178
|
+
<div class="sourcecode">
|
179
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000098_source')" id="l_M000098_source">show source</a> ]</p>
|
180
|
+
<div id="M000098_source" class="dyn-source">
|
181
|
+
<pre>
|
182
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/rewindable_input.rb, line 34</span>
|
183
|
+
34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
184
|
+
35: <span class="ruby-identifier">make_rewindable</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@rewindable_io</span>
|
185
|
+
36: <span class="ruby-ivar">@rewindable_io</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
186
|
+
37: <span class="ruby-keyword kw">end</span>
|
187
|
+
</pre>
|
188
|
+
</div>
|
189
|
+
</div>
|
190
|
+
</div>
|
191
|
+
<div class="method">
|
192
|
+
<div class="title">
|
193
|
+
<a name="M000096"></a><b>gets</b>()
|
194
|
+
</div>
|
195
|
+
<div class="sourcecode">
|
196
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000096_source')" id="l_M000096_source">show source</a> ]</p>
|
197
|
+
<div id="M000096_source" class="dyn-source">
|
198
|
+
<pre>
|
199
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/rewindable_input.rb, line 24</span>
|
200
|
+
24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gets</span>
|
201
|
+
25: <span class="ruby-identifier">make_rewindable</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@rewindable_io</span>
|
202
|
+
26: <span class="ruby-ivar">@rewindable_io</span>.<span class="ruby-identifier">gets</span>
|
203
|
+
27: <span class="ruby-keyword kw">end</span>
|
204
|
+
</pre>
|
205
|
+
</div>
|
206
|
+
</div>
|
207
|
+
</div>
|
208
|
+
<div class="method">
|
209
|
+
<div class="title">
|
210
|
+
<a name="M000097"></a><b>read</b>(*args)
|
211
|
+
</div>
|
212
|
+
<div class="sourcecode">
|
213
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000097_source')" id="l_M000097_source">show source</a> ]</p>
|
214
|
+
<div id="M000097_source" class="dyn-source">
|
215
|
+
<pre>
|
216
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/rewindable_input.rb, line 29</span>
|
217
|
+
29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
218
|
+
30: <span class="ruby-identifier">make_rewindable</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@rewindable_io</span>
|
219
|
+
31: <span class="ruby-ivar">@rewindable_io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
220
|
+
32: <span class="ruby-keyword kw">end</span>
|
221
|
+
</pre>
|
222
|
+
</div>
|
223
|
+
</div>
|
224
|
+
</div>
|
225
|
+
<div class="method">
|
226
|
+
<div class="title">
|
227
|
+
<a name="M000099"></a><b>rewind</b>()
|
228
|
+
</div>
|
229
|
+
<div class="sourcecode">
|
230
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000099_source')" id="l_M000099_source">show source</a> ]</p>
|
231
|
+
<div id="M000099_source" class="dyn-source">
|
232
|
+
<pre>
|
233
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/rewindable_input.rb, line 39</span>
|
234
|
+
39: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rewind</span>
|
235
|
+
40: <span class="ruby-identifier">make_rewindable</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@rewindable_io</span>
|
236
|
+
41: <span class="ruby-ivar">@rewindable_io</span>.<span class="ruby-identifier">rewind</span>
|
237
|
+
42: <span class="ruby-keyword kw">end</span>
|
238
|
+
</pre>
|
239
|
+
</div>
|
240
|
+
</div>
|
241
|
+
</div>
|
242
|
+
</div>
|
243
|
+
|
244
|
+
</div>
|
245
|
+
|
246
|
+
</body>
|
247
|
+
</html>
|