passenger 3.0.2 → 3.0.3
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 +29 -0
- data/build/agents.rb +1 -0
- data/build/apache2.rb +2 -1
- data/build/cxx_tests.rb +7 -0
- data/build/rpm.rb +17 -22
- data/doc/cxxapi/Constants_8h_source.html +1 -1
- data/doc/cxxapi/Exceptions_8h_source.html +18 -4
- data/doc/cxxapi/Logging_8h_source.html +332 -262
- data/doc/cxxapi/annotated.html +1 -0
- data/doc/cxxapi/classes.html +4 -4
- data/doc/cxxapi/group__Exceptions.html +2 -0
- data/doc/cxxapi/hierarchy.html +1 -0
- data/doc/cxxapi/inherit__graph__35.map +1 -3
- data/doc/cxxapi/inherit__graph__35.md5 +1 -1
- data/doc/cxxapi/inherit__graph__35.png +0 -0
- data/doc/cxxapi/inherit__graph__36.map +3 -1
- data/doc/cxxapi/inherit__graph__36.md5 +1 -1
- data/doc/cxxapi/inherit__graph__36.png +0 -0
- data/doc/cxxapi/inherit__graph__37.map +1 -1
- data/doc/cxxapi/inherit__graph__37.md5 +1 -1
- data/doc/cxxapi/inherit__graph__37.png +0 -0
- data/doc/cxxapi/inherit__graph__38.map +1 -1
- data/doc/cxxapi/inherit__graph__38.md5 +1 -1
- data/doc/cxxapi/inherit__graph__38.png +0 -0
- data/doc/cxxapi/inherit__graph__39.map +1 -1
- data/doc/cxxapi/inherit__graph__39.md5 +1 -1
- data/doc/cxxapi/inherit__graph__39.png +0 -0
- data/doc/cxxapi/inherit__graph__40.map +1 -1
- data/doc/cxxapi/inherit__graph__40.md5 +1 -1
- data/doc/cxxapi/inherit__graph__40.png +0 -0
- data/doc/cxxapi/inherits.html +9 -6
- data/doc/cxxapi/namespacePassenger.html +2 -0
- data/doc/cxxapi/tree.html +2 -0
- 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 +368 -0
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +299 -0
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +206 -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 +1972 -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 +259 -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 +1543 -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 +194 -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 +280 -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 +127 -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 +136 -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 +139 -0
- data/doc/rdoc/fr_file_index.html +108 -0
- data/doc/rdoc/fr_method_index.html +439 -0
- data/doc/rdoc/index.html +26 -0
- data/doc/rdoc/rdoc-style.css +187 -0
- data/ext/apache2/Configuration.cpp +41 -0
- data/ext/apache2/Configuration.hpp +19 -0
- data/ext/apache2/Hooks.cpp +67 -5
- data/ext/common/Constants.h +1 -1
- data/ext/common/Exceptions.h +14 -0
- data/ext/common/Logging.h +76 -6
- data/ext/common/LoggingAgent/FilterSupport.h +1317 -0
- data/ext/common/LoggingAgent/LoggingServer.h +93 -4
- data/ext/common/LoggingAgent/RemoteSender.h +5 -5
- data/ext/common/Utils/StrIntUtils.cpp +12 -1
- data/ext/common/Utils/StrIntUtils.h +2 -1
- data/ext/common/Utils/StringMap.h +100 -0
- data/ext/nginx/Configuration.c +0 -1
- data/ext/nginx/ContentHandler.c +33 -7
- data/lib/phusion_passenger.rb +2 -2
- data/lib/phusion_passenger/abstract_request_handler.rb +5 -0
- data/lib/phusion_passenger/analytics_logger.rb +77 -11
- data/lib/phusion_passenger/dependencies.rb +11 -1
- data/lib/phusion_passenger/platform_info.rb +1 -1
- data/lib/phusion_passenger/utils.rb +9 -1
- data/test/cxx/FilterSupportTest.cpp +276 -0
- data/test/cxx/LoggingTest.cpp +28 -0
- data/test/cxx/StringMapTest.cpp +70 -0
- data/test/integration_tests/cgi_environment_spec.rb +10 -0
- metadata +170 -8
- data/ext/common/libboost_oxt/aggregate.cpp +0 -10
- data/ext/common/libpassenger_common/aggregate.cpp +0 -15
@@ -0,0 +1,260 @@
|
|
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::HostsFileParser</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::HostsFileParser</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/hosts_file_parser_rb.html">lib/phusion_passenger/utils/hosts_file_parser.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
|
+
A /etc/hosts parser. Also supports writing groups of data to the file.
|
80
|
+
</p>
|
81
|
+
</div>
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
<div class="sectiontitle">Methods</div>
|
86
|
+
<ul>
|
87
|
+
<li><a href="#M000275">add_group_data</a></li>
|
88
|
+
<li><a href="#M000269">flush_dns_cache!</a></li>
|
89
|
+
<li><a href="#M000272">host_count</a></li>
|
90
|
+
<li><a href="#M000271">ip_count</a></li>
|
91
|
+
<li><a href="#M000270">new</a></li>
|
92
|
+
<li><a href="#M000273">resolve</a></li>
|
93
|
+
<li><a href="#M000274">resolves_to_localhost?</a></li>
|
94
|
+
<li><a href="#M000276">write</a></li>
|
95
|
+
</ul>
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
<div class="sectiontitle">Public Class methods</div>
|
103
|
+
<div class="method">
|
104
|
+
<div class="title">
|
105
|
+
<a name="M000269"></a><b>flush_dns_cache!</b>()
|
106
|
+
</div>
|
107
|
+
<div class="sourcecode">
|
108
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000269_source')" id="l_M000269_source">show source</a> ]</p>
|
109
|
+
<div id="M000269_source" class="dyn-source">
|
110
|
+
<pre>
|
111
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/hosts_file_parser.rb, line 30</span>
|
112
|
+
30: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">flush_dns_cache!</span>
|
113
|
+
31: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">RUBY_PLATFORM</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/darwin/</span>
|
114
|
+
32: <span class="ruby-identifier">system</span>(<span class="ruby-value str">"dscacheutil -flushcache"</span>)
|
115
|
+
33: <span class="ruby-keyword kw">end</span>
|
116
|
+
34: <span class="ruby-keyword kw">end</span>
|
117
|
+
</pre>
|
118
|
+
</div>
|
119
|
+
</div>
|
120
|
+
</div>
|
121
|
+
<div class="method">
|
122
|
+
<div class="title">
|
123
|
+
<a name="M000270"></a><b>new</b>(filename_or_io = "/etc/hosts")
|
124
|
+
</div>
|
125
|
+
<div class="sourcecode">
|
126
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000270_source')" id="l_M000270_source">show source</a> ]</p>
|
127
|
+
<div id="M000270_source" class="dyn-source">
|
128
|
+
<pre>
|
129
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/hosts_file_parser.rb, line 36</span>
|
130
|
+
36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">filename_or_io</span> = <span class="ruby-value str">"/etc/hosts"</span>)
|
131
|
+
37: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filename_or_io</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:readline</span>)
|
132
|
+
38: <span class="ruby-identifier">read_and_parse</span>(<span class="ruby-identifier">filename_or_io</span>)
|
133
|
+
39: <span class="ruby-keyword kw">else</span>
|
134
|
+
40: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename_or_io</span>, <span class="ruby-value str">"rb"</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
135
|
+
41: <span class="ruby-identifier">read_and_parse</span>(<span class="ruby-identifier">f</span>)
|
136
|
+
42: <span class="ruby-keyword kw">end</span>
|
137
|
+
43: <span class="ruby-keyword kw">end</span>
|
138
|
+
44: <span class="ruby-keyword kw">end</span>
|
139
|
+
</pre>
|
140
|
+
</div>
|
141
|
+
</div>
|
142
|
+
</div>
|
143
|
+
<div class="sectiontitle">Public Instance methods</div>
|
144
|
+
<div class="method">
|
145
|
+
<div class="title">
|
146
|
+
<a name="M000275"></a><b>add_group_data</b>(marker, data)
|
147
|
+
</div>
|
148
|
+
<div class="sourcecode">
|
149
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000275_source')" id="l_M000275_source">show source</a> ]</p>
|
150
|
+
<div id="M000275_source" class="dyn-source">
|
151
|
+
<pre>
|
152
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/hosts_file_parser.rb, line 67</span>
|
153
|
+
67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_group_data</span>(<span class="ruby-identifier">marker</span>, <span class="ruby-identifier">data</span>)
|
154
|
+
68: <span class="ruby-identifier">begin_index</span> = <span class="ruby-identifier">find_line</span>(<span class="ruby-value">0</span>, <span class="ruby-node">"###### BEGIN #{marker} ######"</span>)
|
155
|
+
69: <span class="ruby-identifier">end_index</span> = <span class="ruby-identifier">find_line</span>(<span class="ruby-identifier">begin_index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>, <span class="ruby-node">"###### END #{marker} ######"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">begin_index</span>
|
156
|
+
70: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">begin_index</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">end_index</span>
|
157
|
+
71: <span class="ruby-ivar">@lines</span>[<span class="ruby-identifier">begin_index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">end_index</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>] = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">"\n"</span>)
|
158
|
+
72: <span class="ruby-keyword kw">else</span>
|
159
|
+
73: <span class="ruby-ivar">@lines</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"###### BEGIN #{marker} ######"</span>
|
160
|
+
74: <span class="ruby-ivar">@lines</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">data</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">"\n"</span>))
|
161
|
+
75: <span class="ruby-ivar">@lines</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"###### END #{marker} ######"</span>
|
162
|
+
76: <span class="ruby-keyword kw">end</span>
|
163
|
+
77: <span class="ruby-keyword kw">end</span>
|
164
|
+
</pre>
|
165
|
+
</div>
|
166
|
+
</div>
|
167
|
+
</div>
|
168
|
+
<div class="method">
|
169
|
+
<div class="title">
|
170
|
+
<a name="M000272"></a><b>host_count</b>()
|
171
|
+
</div>
|
172
|
+
<div class="sourcecode">
|
173
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000272_source')" id="l_M000272_source">show source</a> ]</p>
|
174
|
+
<div id="M000272_source" class="dyn-source">
|
175
|
+
<pre>
|
176
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/hosts_file_parser.rb, line 50</span>
|
177
|
+
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host_count</span>
|
178
|
+
51: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@host_names</span>.<span class="ruby-identifier">size</span>
|
179
|
+
52: <span class="ruby-keyword kw">end</span>
|
180
|
+
</pre>
|
181
|
+
</div>
|
182
|
+
</div>
|
183
|
+
</div>
|
184
|
+
<div class="method">
|
185
|
+
<div class="title">
|
186
|
+
<a name="M000271"></a><b>ip_count</b>()
|
187
|
+
</div>
|
188
|
+
<div class="sourcecode">
|
189
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000271_source')" id="l_M000271_source">show source</a> ]</p>
|
190
|
+
<div id="M000271_source" class="dyn-source">
|
191
|
+
<pre>
|
192
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/hosts_file_parser.rb, line 46</span>
|
193
|
+
46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ip_count</span>
|
194
|
+
47: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ips</span>.<span class="ruby-identifier">size</span>
|
195
|
+
48: <span class="ruby-keyword kw">end</span>
|
196
|
+
</pre>
|
197
|
+
</div>
|
198
|
+
</div>
|
199
|
+
</div>
|
200
|
+
<div class="method">
|
201
|
+
<div class="title">
|
202
|
+
<a name="M000273"></a><b>resolve</b>(host_name)
|
203
|
+
</div>
|
204
|
+
<div class="sourcecode">
|
205
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000273_source')" id="l_M000273_source">show source</a> ]</p>
|
206
|
+
<div id="M000273_source" class="dyn-source">
|
207
|
+
<pre>
|
208
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/hosts_file_parser.rb, line 54</span>
|
209
|
+
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">host_name</span>)
|
210
|
+
55: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">host_name</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"localhost"</span>
|
211
|
+
56: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">"127.0.0.1"</span>
|
212
|
+
57: <span class="ruby-keyword kw">else</span>
|
213
|
+
58: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@host_names</span>[<span class="ruby-identifier">host_name</span>.<span class="ruby-identifier">downcase</span>]
|
214
|
+
59: <span class="ruby-keyword kw">end</span>
|
215
|
+
60: <span class="ruby-keyword kw">end</span>
|
216
|
+
</pre>
|
217
|
+
</div>
|
218
|
+
</div>
|
219
|
+
</div>
|
220
|
+
<div class="method">
|
221
|
+
<div class="title">
|
222
|
+
<a name="M000274"></a><b>resolves_to_localhost?</b>(hostname)
|
223
|
+
</div>
|
224
|
+
<div class="sourcecode">
|
225
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000274_source')" id="l_M000274_source">show source</a> ]</p>
|
226
|
+
<div id="M000274_source" class="dyn-source">
|
227
|
+
<pre>
|
228
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/hosts_file_parser.rb, line 62</span>
|
229
|
+
62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolves_to_localhost?</span>(<span class="ruby-identifier">hostname</span>)
|
230
|
+
63: <span class="ruby-identifier">ip</span> = <span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">hostname</span>)
|
231
|
+
64: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ip</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"127.0.0.1"</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">ip</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"::1"</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">ip</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"0.0.0.0"</span>
|
232
|
+
65: <span class="ruby-keyword kw">end</span>
|
233
|
+
</pre>
|
234
|
+
</div>
|
235
|
+
</div>
|
236
|
+
</div>
|
237
|
+
<div class="method">
|
238
|
+
<div class="title">
|
239
|
+
<a name="M000276"></a><b>write</b>(io)
|
240
|
+
</div>
|
241
|
+
<div class="sourcecode">
|
242
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000276_source')" id="l_M000276_source">show source</a> ]</p>
|
243
|
+
<div id="M000276_source" class="dyn-source">
|
244
|
+
<pre>
|
245
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils/hosts_file_parser.rb, line 79</span>
|
246
|
+
79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">io</span>)
|
247
|
+
80: <span class="ruby-ivar">@lines</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
248
|
+
81: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">puts</span>(<span class="ruby-identifier">line</span>)
|
249
|
+
82: <span class="ruby-keyword kw">end</span>
|
250
|
+
83: <span class="ruby-keyword kw">end</span>
|
251
|
+
</pre>
|
252
|
+
</div>
|
253
|
+
</div>
|
254
|
+
</div>
|
255
|
+
</div>
|
256
|
+
|
257
|
+
</div>
|
258
|
+
|
259
|
+
</body>
|
260
|
+
</html>
|
@@ -0,0 +1,194 @@
|
|
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::PseudoIO</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::PseudoIO</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_rb.html">lib/phusion_passenger/utils.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
|
+
Wraps another <a href="../../IO.html">IO</a> object. Everything written to
|
80
|
+
the <a href="PseudoIO.html">PseudoIO</a> will not only be immediately
|
81
|
+
forwarded to the underlying <a href="../../IO.html">IO</a> object but will
|
82
|
+
also be captured in a buffer. The contents of the buffer can be retrieved
|
83
|
+
by calling #done!.
|
84
|
+
</p>
|
85
|
+
</div>
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
<div class="sectiontitle">Methods</div>
|
90
|
+
<ul>
|
91
|
+
<li><a href="#M000243">done!</a></li>
|
92
|
+
<li><a href="#M000245">method_missing</a></li>
|
93
|
+
<li><a href="#M000242">new</a></li>
|
94
|
+
<li><a href="#M000246">respond_to?</a></li>
|
95
|
+
<li><a href="#M000244">to_io</a></li>
|
96
|
+
</ul>
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
<div class="sectiontitle">Public Class methods</div>
|
104
|
+
<div class="method">
|
105
|
+
<div class="title">
|
106
|
+
<a name="M000242"></a><b>new</b>(sink)
|
107
|
+
</div>
|
108
|
+
<div class="sourcecode">
|
109
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000242_source')" id="l_M000242_source">show source</a> ]</p>
|
110
|
+
<div id="M000242_source" class="dyn-source">
|
111
|
+
<pre>
|
112
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 519</span>
|
113
|
+
519: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">sink</span>)
|
114
|
+
520: <span class="ruby-ivar">@sink</span> = <span class="ruby-identifier">sink</span> <span class="ruby-operator">||</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-value str">"/dev/null"</span>, <span class="ruby-value str">"w"</span>)
|
115
|
+
521: <span class="ruby-ivar">@buffer</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
|
116
|
+
522: <span class="ruby-keyword kw">end</span>
|
117
|
+
</pre>
|
118
|
+
</div>
|
119
|
+
</div>
|
120
|
+
</div>
|
121
|
+
<div class="sectiontitle">Public Instance methods</div>
|
122
|
+
<div class="method">
|
123
|
+
<div class="title">
|
124
|
+
<a name="M000243"></a><b>done!</b>()
|
125
|
+
</div>
|
126
|
+
<div class="sourcecode">
|
127
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000243_source')" id="l_M000243_source">show source</a> ]</p>
|
128
|
+
<div id="M000243_source" class="dyn-source">
|
129
|
+
<pre>
|
130
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 524</span>
|
131
|
+
524: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">done!</span>
|
132
|
+
525: <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@buffer</span>.<span class="ruby-identifier">string</span>
|
133
|
+
526: <span class="ruby-ivar">@buffer</span> = <span class="ruby-keyword kw">nil</span>
|
134
|
+
527: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
|
135
|
+
528: <span class="ruby-keyword kw">end</span>
|
136
|
+
</pre>
|
137
|
+
</div>
|
138
|
+
</div>
|
139
|
+
</div>
|
140
|
+
<div class="method">
|
141
|
+
<div class="title">
|
142
|
+
<a name="M000245"></a><b>method_missing</b>(*args, &block)
|
143
|
+
</div>
|
144
|
+
<div class="sourcecode">
|
145
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000245_source')" id="l_M000245_source">show source</a> ]</p>
|
146
|
+
<div id="M000245_source" class="dyn-source">
|
147
|
+
<pre>
|
148
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 534</span>
|
149
|
+
534: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
150
|
+
535: <span class="ruby-ivar">@buffer</span>.<span class="ruby-identifier">send</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@buffer</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">:reopen</span>
|
151
|
+
536: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@sink</span>.<span class="ruby-identifier">send</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
152
|
+
537: <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="M000246"></a><b>respond_to?</b>(symbol, include_private = false)
|
160
|
+
</div>
|
161
|
+
<div class="sourcecode">
|
162
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000246_source')" id="l_M000246_source">show source</a> ]</p>
|
163
|
+
<div id="M000246_source" class="dyn-source">
|
164
|
+
<pre>
|
165
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 539</span>
|
166
|
+
539: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">symbol</span>, <span class="ruby-identifier">include_private</span> = <span class="ruby-keyword kw">false</span>)
|
167
|
+
540: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@sink</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">symbol</span>, <span class="ruby-identifier">include_private</span>)
|
168
|
+
541: <span class="ruby-keyword kw">end</span>
|
169
|
+
</pre>
|
170
|
+
</div>
|
171
|
+
</div>
|
172
|
+
</div>
|
173
|
+
<div class="method">
|
174
|
+
<div class="title">
|
175
|
+
<a name="M000244"></a><b>to_io</b>()
|
176
|
+
</div>
|
177
|
+
<div class="sourcecode">
|
178
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000244_source')" id="l_M000244_source">show source</a> ]</p>
|
179
|
+
<div id="M000244_source" class="dyn-source">
|
180
|
+
<pre>
|
181
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 530</span>
|
182
|
+
530: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_io</span>
|
183
|
+
531: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
|
184
|
+
532: <span class="ruby-keyword kw">end</span>
|
185
|
+
</pre>
|
186
|
+
</div>
|
187
|
+
</div>
|
188
|
+
</div>
|
189
|
+
</div>
|
190
|
+
|
191
|
+
</div>
|
192
|
+
|
193
|
+
</body>
|
194
|
+
</html>
|