passenger 3.0.0.pre4 → 3.0.0
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/bin/passenger-install-apache2-module +6 -6
- data/doc/Users guide Apache.html +1 -1
- data/doc/Users guide Nginx.html +1 -1
- data/doc/Users guide Standalone.html +1 -1
- data/doc/cxxapi/Constants_8h_source.html +1 -1
- data/doc/cxxapi/MessageServer_8h_source.html +416 -410
- data/doc/rdoc/classes/ConditionVariable.html +215 -0
- data/doc/rdoc/classes/Exception.html +120 -0
- data/doc/rdoc/classes/GC.html +113 -0
- data/doc/rdoc/classes/IO.html +221 -0
- data/doc/rdoc/classes/PhusionPassenger.html +397 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +180 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +647 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +654 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +97 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +96 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +97 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +96 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +619 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +142 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +368 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +231 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +588 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +147 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +279 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +123 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +341 -0
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +294 -0
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +199 -0
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +155 -0
- data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +367 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +95 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +351 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +98 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +200 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +410 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +98 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +156 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +115 -0
- data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +202 -0
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +172 -0
- data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +273 -0
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +145 -0
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +162 -0
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +141 -0
- data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +673 -0
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +415 -0
- data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +134 -0
- data/doc/rdoc/classes/PhusionPassenger/Packaging.html +129 -0
- data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +1809 -0
- data/doc/rdoc/classes/PhusionPassenger/Plugin.html +237 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack.html +91 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +312 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +98 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +218 -0
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +114 -0
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +256 -0
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +139 -0
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +118 -0
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +135 -0
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +378 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone.html +111 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +252 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +161 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +368 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +132 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +151 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +189 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +177 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +341 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +203 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +156 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +168 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +86 -0
- data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +135 -0
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +125 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +1550 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +204 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +171 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +140 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +260 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +169 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +265 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +120 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +561 -0
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +140 -0
- data/doc/rdoc/classes/PhusionPassenger/WSGI.html +89 -0
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +182 -0
- data/doc/rdoc/classes/Process.html +115 -0
- data/doc/rdoc/classes/Signal.html +139 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/DEVELOPERS_TXT.html +276 -0
- data/doc/rdoc/files/README.html +157 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +130 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +135 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +128 -0
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +132 -0
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +129 -0
- data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +141 -0
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +146 -0
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +125 -0
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +132 -0
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +147 -0
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +120 -0
- data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +132 -0
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +129 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +128 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +137 -0
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +125 -0
- data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +160 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +135 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +133 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +136 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +120 -0
- data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +100 -0
- data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +179 -0
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +132 -0
- data/doc/rdoc/fr_class_index.html +138 -0
- data/doc/rdoc/fr_file_index.html +108 -0
- data/doc/rdoc/fr_method_index.html +430 -0
- data/doc/rdoc/index.html +26 -0
- data/doc/rdoc/rdoc-style.css +187 -0
- data/ext/apache2/HelperAgent.cpp +7 -1
- data/ext/common/Constants.h +1 -1
- data/ext/common/MessageServer.h +7 -1
- data/ext/nginx/StaticContentHandler.c +5 -13
- data/lib/phusion_passenger.rb +2 -2
- data/lib/phusion_passenger/standalone/start_command.rb +6 -6
- data/lib/phusion_passenger/templates/standalone/config.erb +2 -2
- metadata +168 -12
- data/ext/libev/config.h +0 -122
@@ -0,0 +1,294 @@
|
|
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::AnalyticsLogger::Log</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::AnalyticsLogger::Log</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/analytics_logger_rb.html">lib/phusion_passenger/analytics_logger.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
|
+
|
79
|
+
|
80
|
+
|
81
|
+
<div class="sectiontitle">Methods</div>
|
82
|
+
<ul>
|
83
|
+
<li><a href="#M000291">begin_measure</a></li>
|
84
|
+
<li><a href="#M000295">close</a></li>
|
85
|
+
<li><a href="#M000292">end_measure</a></li>
|
86
|
+
<li><a href="#M000293">measure</a></li>
|
87
|
+
<li><a href="#M000294">measured_time_points</a></li>
|
88
|
+
<li><a href="#M000290">message</a></li>
|
89
|
+
<li><a href="#M000288">new</a></li>
|
90
|
+
<li><a href="#M000289">null?</a></li>
|
91
|
+
</ul>
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
<div class="sectiontitle">Attributes</div>
|
98
|
+
<table border='0' cellpadding='5'>
|
99
|
+
<tr valign='top'>
|
100
|
+
<td class='attr-rw'>
|
101
|
+
[R]
|
102
|
+
</td>
|
103
|
+
<td class='attr-name'>txn_id</td>
|
104
|
+
<td class='attr-desc'></td>
|
105
|
+
</tr>
|
106
|
+
</table>
|
107
|
+
|
108
|
+
<div class="sectiontitle">Public Class methods</div>
|
109
|
+
<div class="method">
|
110
|
+
<div class="title">
|
111
|
+
<a name="M000288"></a><b>new</b>(shared_data = nil, txn_id = nil)
|
112
|
+
</div>
|
113
|
+
<div class="sourcecode">
|
114
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000288_source')" id="l_M000288_source">show source</a> ]</p>
|
115
|
+
<div id="M000288_source" class="dyn-source">
|
116
|
+
<pre>
|
117
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 41</span>
|
118
|
+
41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">shared_data</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">txn_id</span> = <span class="ruby-keyword kw">nil</span>)
|
119
|
+
42: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">shared_data</span>
|
120
|
+
43: <span class="ruby-ivar">@shared_data</span> = <span class="ruby-identifier">shared_data</span>
|
121
|
+
44: <span class="ruby-ivar">@txn_id</span> = <span class="ruby-identifier">txn_id</span>
|
122
|
+
45: <span class="ruby-identifier">shared_data</span>.<span class="ruby-identifier">ref</span>
|
123
|
+
46: <span class="ruby-keyword kw">end</span>
|
124
|
+
47: <span class="ruby-keyword kw">end</span>
|
125
|
+
</pre>
|
126
|
+
</div>
|
127
|
+
</div>
|
128
|
+
</div>
|
129
|
+
<div class="sectiontitle">Public Instance methods</div>
|
130
|
+
<div class="method">
|
131
|
+
<div class="title">
|
132
|
+
<a name="M000291"></a><b>begin_measure</b>(name, extra_info = nil)
|
133
|
+
</div>
|
134
|
+
<div class="sourcecode">
|
135
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000291_source')" id="l_M000291_source">show source</a> ]</p>
|
136
|
+
<div id="M000291_source" class="dyn-source">
|
137
|
+
<pre>
|
138
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 61</span>
|
139
|
+
61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">begin_measure</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">extra_info</span> = <span class="ruby-keyword kw">nil</span>)
|
140
|
+
62: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">extra_info</span>
|
141
|
+
63: <span class="ruby-identifier">extra_info_base64</span> = [<span class="ruby-identifier">extra_info</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">"m"</span>)
|
142
|
+
64: <span class="ruby-identifier">extra_info_base64</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-value str">"\n"</span>, <span class="ruby-value str">""</span>)
|
143
|
+
65: <span class="ruby-identifier">extra_info_base64</span>.<span class="ruby-identifier">strip!</span>
|
144
|
+
66: <span class="ruby-keyword kw">else</span>
|
145
|
+
67: <span class="ruby-identifier">extra_info_base64</span> = <span class="ruby-keyword kw">nil</span>
|
146
|
+
68: <span class="ruby-keyword kw">end</span>
|
147
|
+
69: <span class="ruby-identifier">times</span> = <span class="ruby-constant">NativeSupport</span>.<span class="ruby-identifier">process_times</span>
|
148
|
+
70: <span class="ruby-identifier">message</span> <span class="ruby-node">"BEGIN: #{name} (#{current_timestamp.to_s(36)},#{times.utime.to_s(36)},#{times.stime.to_s(36)}) #{extra_info_base64}"</span>
|
149
|
+
71: <span class="ruby-keyword kw">end</span>
|
150
|
+
</pre>
|
151
|
+
</div>
|
152
|
+
</div>
|
153
|
+
</div>
|
154
|
+
<div class="method">
|
155
|
+
<div class="title">
|
156
|
+
<a name="M000295"></a><b>close</b>(flush_to_disk = false)
|
157
|
+
</div>
|
158
|
+
<div class="sourcecode">
|
159
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000295_source')" id="l_M000295_source">show source</a> ]</p>
|
160
|
+
<div id="M000295_source" class="dyn-source">
|
161
|
+
<pre>
|
162
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 108</span>
|
163
|
+
108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>(<span class="ruby-identifier">flush_to_disk</span> = <span class="ruby-keyword kw">false</span>)
|
164
|
+
109: <span class="ruby-ivar">@shared_data</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
|
165
|
+
110: <span class="ruby-ivar">@shared_data</span>.<span class="ruby-identifier">client</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">"closeTransaction"</span>, <span class="ruby-ivar">@txn_id</span>,
|
166
|
+
111: <span class="ruby-constant">AnalyticsLogger</span>.<span class="ruby-identifier">timestamp_string</span>)
|
167
|
+
112: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">flush_to_disk</span>
|
168
|
+
113: <span class="ruby-ivar">@shared_data</span>.<span class="ruby-identifier">client</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">"flush"</span>)
|
169
|
+
114: <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@shared_data</span>.<span class="ruby-identifier">client</span>.<span class="ruby-identifier">read</span>
|
170
|
+
115: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span> <span class="ruby-operator">!=</span> [<span class="ruby-value str">"ok"</span>]
|
171
|
+
116: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Invalid logging server response #{result.inspect} to the 'flush' command"</span>
|
172
|
+
117: <span class="ruby-keyword kw">end</span>
|
173
|
+
118: <span class="ruby-keyword kw">end</span>
|
174
|
+
119: <span class="ruby-ivar">@shared_data</span>.<span class="ruby-identifier">unref</span>
|
175
|
+
120: <span class="ruby-ivar">@shared_data</span> = <span class="ruby-keyword kw">nil</span>
|
176
|
+
121: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@shared_data</span>
|
177
|
+
122: <span class="ruby-keyword kw">end</span>
|
178
|
+
</pre>
|
179
|
+
</div>
|
180
|
+
</div>
|
181
|
+
</div>
|
182
|
+
<div class="method">
|
183
|
+
<div class="title">
|
184
|
+
<a name="M000292"></a><b>end_measure</b>(name, error_encountered = false)
|
185
|
+
</div>
|
186
|
+
<div class="sourcecode">
|
187
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000292_source')" id="l_M000292_source">show source</a> ]</p>
|
188
|
+
<div id="M000292_source" class="dyn-source">
|
189
|
+
<pre>
|
190
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 73</span>
|
191
|
+
73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">end_measure</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">error_encountered</span> = <span class="ruby-keyword kw">false</span>)
|
192
|
+
74: <span class="ruby-identifier">times</span> = <span class="ruby-constant">NativeSupport</span>.<span class="ruby-identifier">process_times</span>
|
193
|
+
75: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">error_encountered</span>
|
194
|
+
76: <span class="ruby-identifier">message</span> <span class="ruby-node">"FAIL: #{name} (#{current_timestamp.to_s(36)},#{times.utime.to_s(36)},#{times.stime.to_s(36)})"</span>
|
195
|
+
77: <span class="ruby-keyword kw">else</span>
|
196
|
+
78: <span class="ruby-identifier">message</span> <span class="ruby-node">"END: #{name} (#{current_timestamp.to_s(36)},#{times.utime.to_s(36)},#{times.stime.to_s(36)})"</span>
|
197
|
+
79: <span class="ruby-keyword kw">end</span>
|
198
|
+
80: <span class="ruby-keyword kw">end</span>
|
199
|
+
</pre>
|
200
|
+
</div>
|
201
|
+
</div>
|
202
|
+
</div>
|
203
|
+
<div class="method">
|
204
|
+
<div class="title">
|
205
|
+
<a name="M000293"></a><b>measure</b>(name, extra_info = nil) {|| ...}
|
206
|
+
</div>
|
207
|
+
<div class="sourcecode">
|
208
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000293_source')" id="l_M000293_source">show source</a> ]</p>
|
209
|
+
<div id="M000293_source" class="dyn-source">
|
210
|
+
<pre>
|
211
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 82</span>
|
212
|
+
82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">measure</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">extra_info</span> = <span class="ruby-keyword kw">nil</span>)
|
213
|
+
83: <span class="ruby-identifier">begin_measure</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">extra_info</span>)
|
214
|
+
84: <span class="ruby-keyword kw">begin</span>
|
215
|
+
85: <span class="ruby-keyword kw">yield</span>
|
216
|
+
86: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
|
217
|
+
87: <span class="ruby-identifier">error</span> = <span class="ruby-keyword kw">true</span>
|
218
|
+
88: <span class="ruby-identifier">raise</span>
|
219
|
+
89: <span class="ruby-keyword kw">ensure</span>
|
220
|
+
90: <span class="ruby-identifier">end_measure</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">error</span>)
|
221
|
+
91: <span class="ruby-keyword kw">end</span>
|
222
|
+
92: <span class="ruby-keyword kw">end</span>
|
223
|
+
</pre>
|
224
|
+
</div>
|
225
|
+
</div>
|
226
|
+
</div>
|
227
|
+
<div class="method">
|
228
|
+
<div class="title">
|
229
|
+
<a name="M000294"></a><b>measured_time_points</b>(name, begin_time, end_time, extra_info = nil)
|
230
|
+
</div>
|
231
|
+
<div class="sourcecode">
|
232
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000294_source')" id="l_M000294_source">show source</a> ]</p>
|
233
|
+
<div id="M000294_source" class="dyn-source">
|
234
|
+
<pre>
|
235
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 94</span>
|
236
|
+
94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">measured_time_points</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">begin_time</span>, <span class="ruby-identifier">end_time</span>, <span class="ruby-identifier">extra_info</span> = <span class="ruby-keyword kw">nil</span>)
|
237
|
+
95: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">extra_info</span>
|
238
|
+
96: <span class="ruby-identifier">extra_info_base64</span> = [<span class="ruby-identifier">extra_info</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">"m"</span>)
|
239
|
+
97: <span class="ruby-identifier">extra_info_base64</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-value str">"\n"</span>, <span class="ruby-value str">""</span>)
|
240
|
+
98: <span class="ruby-identifier">extra_info_base64</span>.<span class="ruby-identifier">strip!</span>
|
241
|
+
99: <span class="ruby-keyword kw">else</span>
|
242
|
+
100: <span class="ruby-identifier">extra_info_base64</span> = <span class="ruby-keyword kw">nil</span>
|
243
|
+
101: <span class="ruby-keyword kw">end</span>
|
244
|
+
102: <span class="ruby-identifier">begin_timestamp</span> = <span class="ruby-identifier">begin_time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">*</span> <span class="ruby-value">1_000_000</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">begin_time</span>.<span class="ruby-identifier">usec</span>
|
245
|
+
103: <span class="ruby-identifier">end_timestamp</span> = <span class="ruby-identifier">end_time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">*</span> <span class="ruby-value">1_000_000</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">end_time</span>.<span class="ruby-identifier">usec</span>
|
246
|
+
104: <span class="ruby-identifier">message</span> <span class="ruby-node">"BEGIN: #{name} (#{begin_timestamp.to_s(36)}) #{extra_info_base64}"</span>
|
247
|
+
105: <span class="ruby-identifier">message</span> <span class="ruby-node">"END: #{name} (#{end_timestamp.to_s(36)})"</span>
|
248
|
+
106: <span class="ruby-keyword kw">end</span>
|
249
|
+
</pre>
|
250
|
+
</div>
|
251
|
+
</div>
|
252
|
+
</div>
|
253
|
+
<div class="method">
|
254
|
+
<div class="title">
|
255
|
+
<a name="M000290"></a><b>message</b>(text)
|
256
|
+
</div>
|
257
|
+
<div class="sourcecode">
|
258
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000290_source')" id="l_M000290_source">show source</a> ]</p>
|
259
|
+
<div id="M000290_source" class="dyn-source">
|
260
|
+
<pre>
|
261
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 53</span>
|
262
|
+
53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message</span>(<span class="ruby-identifier">text</span>)
|
263
|
+
54: <span class="ruby-ivar">@shared_data</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
|
264
|
+
55: <span class="ruby-ivar">@shared_data</span>.<span class="ruby-identifier">client</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">"log"</span>, <span class="ruby-ivar">@txn_id</span>,
|
265
|
+
56: <span class="ruby-constant">AnalyticsLogger</span>.<span class="ruby-identifier">timestamp_string</span>)
|
266
|
+
57: <span class="ruby-ivar">@shared_data</span>.<span class="ruby-identifier">client</span>.<span class="ruby-identifier">write_scalar</span>(<span class="ruby-identifier">text</span>)
|
267
|
+
58: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@shared_data</span>
|
268
|
+
59: <span class="ruby-keyword kw">end</span>
|
269
|
+
</pre>
|
270
|
+
</div>
|
271
|
+
</div>
|
272
|
+
</div>
|
273
|
+
<div class="method">
|
274
|
+
<div class="title">
|
275
|
+
<a name="M000289"></a><b>null?</b>()
|
276
|
+
</div>
|
277
|
+
<div class="sourcecode">
|
278
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000289_source')" id="l_M000289_source">show source</a> ]</p>
|
279
|
+
<div id="M000289_source" class="dyn-source">
|
280
|
+
<pre>
|
281
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 49</span>
|
282
|
+
49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">null?</span>
|
283
|
+
50: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@shared_data</span>
|
284
|
+
51: <span class="ruby-keyword kw">end</span>
|
285
|
+
</pre>
|
286
|
+
</div>
|
287
|
+
</div>
|
288
|
+
</div>
|
289
|
+
</div>
|
290
|
+
|
291
|
+
</div>
|
292
|
+
|
293
|
+
</body>
|
294
|
+
</html>
|
@@ -0,0 +1,199 @@
|
|
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::AnalyticsLogger::SharedData</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::AnalyticsLogger::SharedData</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/analytics_logger_rb.html">lib/phusion_passenger/analytics_logger.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
|
+
|
79
|
+
|
80
|
+
|
81
|
+
<div class="sectiontitle">Methods</div>
|
82
|
+
<ul>
|
83
|
+
<li><a href="#M000297">disconnect</a></li>
|
84
|
+
<li><a href="#M000296">new</a></li>
|
85
|
+
<li><a href="#M000298">ref</a></li>
|
86
|
+
<li><a href="#M000300">synchronize</a></li>
|
87
|
+
<li><a href="#M000299">unref</a></li>
|
88
|
+
</ul>
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
<div class="sectiontitle">Attributes</div>
|
95
|
+
<table border='0' cellpadding='5'>
|
96
|
+
<tr valign='top'>
|
97
|
+
<td class='attr-rw'>
|
98
|
+
[RW]
|
99
|
+
</td>
|
100
|
+
<td class='attr-name'>client</td>
|
101
|
+
<td class='attr-desc'></td>
|
102
|
+
</tr>
|
103
|
+
</table>
|
104
|
+
|
105
|
+
<div class="sectiontitle">Public Class methods</div>
|
106
|
+
<div class="method">
|
107
|
+
<div class="title">
|
108
|
+
<a name="M000296"></a><b>new</b>()
|
109
|
+
</div>
|
110
|
+
<div class="sourcecode">
|
111
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000296_source')" id="l_M000296_source">show source</a> ]</p>
|
112
|
+
<div id="M000296_source" class="dyn-source">
|
113
|
+
<pre>
|
114
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 267</span>
|
115
|
+
267: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
116
|
+
268: <span class="ruby-ivar">@mutex</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
|
117
|
+
269: <span class="ruby-ivar">@refcount</span> = <span class="ruby-value">1</span>
|
118
|
+
270: <span class="ruby-keyword kw">end</span>
|
119
|
+
</pre>
|
120
|
+
</div>
|
121
|
+
</div>
|
122
|
+
</div>
|
123
|
+
<div class="sectiontitle">Public Instance methods</div>
|
124
|
+
<div class="method">
|
125
|
+
<div class="title">
|
126
|
+
<a name="M000297"></a><b>disconnect</b>(check_error_response = false)
|
127
|
+
</div>
|
128
|
+
<div class="sourcecode">
|
129
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000297_source')" id="l_M000297_source">show source</a> ]</p>
|
130
|
+
<div id="M000297_source" class="dyn-source">
|
131
|
+
<pre>
|
132
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 272</span>
|
133
|
+
272: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnect</span>(<span class="ruby-identifier">check_error_response</span> = <span class="ruby-keyword kw">false</span>)
|
134
|
+
273: <span class="ruby-comment cmt"># TODO: implement check_error_response support</span>
|
135
|
+
274: <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@client</span>
|
136
|
+
275: <span class="ruby-keyword kw">end</span>
|
137
|
+
</pre>
|
138
|
+
</div>
|
139
|
+
</div>
|
140
|
+
</div>
|
141
|
+
<div class="method">
|
142
|
+
<div class="title">
|
143
|
+
<a name="M000298"></a><b>ref</b>()
|
144
|
+
</div>
|
145
|
+
<div class="sourcecode">
|
146
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000298_source')" id="l_M000298_source">show source</a> ]</p>
|
147
|
+
<div id="M000298_source" class="dyn-source">
|
148
|
+
<pre>
|
149
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 277</span>
|
150
|
+
277: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ref</span>
|
151
|
+
278: <span class="ruby-ivar">@refcount</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
152
|
+
279: <span class="ruby-keyword kw">end</span>
|
153
|
+
</pre>
|
154
|
+
</div>
|
155
|
+
</div>
|
156
|
+
</div>
|
157
|
+
<div class="method">
|
158
|
+
<div class="title">
|
159
|
+
<a name="M000300"></a><b>synchronize</b>() {|| ...}
|
160
|
+
</div>
|
161
|
+
<div class="sourcecode">
|
162
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000300_source')" id="l_M000300_source">show source</a> ]</p>
|
163
|
+
<div id="M000300_source" class="dyn-source">
|
164
|
+
<pre>
|
165
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 288</span>
|
166
|
+
288: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">synchronize</span>
|
167
|
+
289: <span class="ruby-ivar">@mutex</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
|
168
|
+
290: <span class="ruby-keyword kw">yield</span>
|
169
|
+
291: <span class="ruby-keyword kw">end</span>
|
170
|
+
292: <span class="ruby-keyword kw">end</span>
|
171
|
+
</pre>
|
172
|
+
</div>
|
173
|
+
</div>
|
174
|
+
</div>
|
175
|
+
<div class="method">
|
176
|
+
<div class="title">
|
177
|
+
<a name="M000299"></a><b>unref</b>()
|
178
|
+
</div>
|
179
|
+
<div class="sourcecode">
|
180
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000299_source')" id="l_M000299_source">show source</a> ]</p>
|
181
|
+
<div id="M000299_source" class="dyn-source">
|
182
|
+
<pre>
|
183
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/analytics_logger.rb, line 281</span>
|
184
|
+
281: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unref</span>
|
185
|
+
282: <span class="ruby-ivar">@refcount</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
|
186
|
+
283: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@refcount</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
187
|
+
284: <span class="ruby-identifier">disconnect</span>
|
188
|
+
285: <span class="ruby-keyword kw">end</span>
|
189
|
+
286: <span class="ruby-keyword kw">end</span>
|
190
|
+
</pre>
|
191
|
+
</div>
|
192
|
+
</div>
|
193
|
+
</div>
|
194
|
+
</div>
|
195
|
+
|
196
|
+
</div>
|
197
|
+
|
198
|
+
</body>
|
199
|
+
</html>
|