thin 0.5.3-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of thin might be problematic. Click here for more details.

Files changed (117) hide show
  1. data/CHANGELOG +40 -0
  2. data/COPYING +18 -0
  3. data/README +60 -0
  4. data/Rakefile +11 -0
  5. data/benchmark/simple.rb +48 -0
  6. data/bin/thin +123 -0
  7. data/doc/benchmarks.txt +86 -0
  8. data/doc/rdoc/classes/Process.html +181 -0
  9. data/doc/rdoc/classes/Rack.html +156 -0
  10. data/doc/rdoc/classes/Rack/Adapter.html +155 -0
  11. data/doc/rdoc/classes/Rack/Adapter/Rails.html +289 -0
  12. data/doc/rdoc/classes/Rack/Adapter/Rails/CGIWrapper.html +359 -0
  13. data/doc/rdoc/classes/Rack/Handler.html +155 -0
  14. data/doc/rdoc/classes/Rack/Handler/Thin.html +175 -0
  15. data/doc/rdoc/classes/Thin.html +164 -0
  16. data/doc/rdoc/classes/Thin/Cluster.html +399 -0
  17. data/doc/rdoc/classes/Thin/Connection.html +223 -0
  18. data/doc/rdoc/classes/Thin/Daemonizable.html +260 -0
  19. data/doc/rdoc/classes/Thin/Daemonizable/ClassMethods.html +197 -0
  20. data/doc/rdoc/classes/Thin/Headers.html +238 -0
  21. data/doc/rdoc/classes/Thin/InvalidRequest.html +144 -0
  22. data/doc/rdoc/classes/Thin/Logging.html +201 -0
  23. data/doc/rdoc/classes/Thin/Request.html +231 -0
  24. data/doc/rdoc/classes/Thin/Response.html +271 -0
  25. data/doc/rdoc/classes/Thin/Server.html +295 -0
  26. data/doc/rdoc/classes/Thin/StopServer.html +143 -0
  27. data/doc/rdoc/created.rid +1 -0
  28. data/doc/rdoc/files/README.html +226 -0
  29. data/doc/rdoc/files/bin/thin.html +245 -0
  30. data/doc/rdoc/files/lib/rack/adapter/rails_rb.html +146 -0
  31. data/doc/rdoc/files/lib/rack/handler/thin_rb.html +146 -0
  32. data/doc/rdoc/files/lib/thin/cluster_rb.html +146 -0
  33. data/doc/rdoc/files/lib/thin/connection_rb.html +145 -0
  34. data/doc/rdoc/files/lib/thin/daemonizing_rb.html +146 -0
  35. data/doc/rdoc/files/lib/thin/headers_rb.html +146 -0
  36. data/doc/rdoc/files/lib/thin/logging_rb.html +146 -0
  37. data/doc/rdoc/files/lib/thin/request_rb.html +145 -0
  38. data/doc/rdoc/files/lib/thin/response_rb.html +145 -0
  39. data/doc/rdoc/files/lib/thin/server_rb.html +145 -0
  40. data/doc/rdoc/files/lib/thin/statuses_rb.html +145 -0
  41. data/doc/rdoc/files/lib/thin/version_rb.html +145 -0
  42. data/doc/rdoc/files/lib/thin_rb.html +152 -0
  43. data/doc/rdoc/index.html +10 -0
  44. data/doc/rdoc/logo.gif +0 -0
  45. data/doc/rdoc/rdoc-style.css +55 -0
  46. data/example/config.ru +9 -0
  47. data/example/thin.god +72 -0
  48. data/ext/thin_parser/common.rl +54 -0
  49. data/ext/thin_parser/ext_help.h +14 -0
  50. data/ext/thin_parser/extconf.rb +6 -0
  51. data/ext/thin_parser/parser.c +1199 -0
  52. data/ext/thin_parser/parser.h +49 -0
  53. data/ext/thin_parser/parser.rl +143 -0
  54. data/ext/thin_parser/thin.c +424 -0
  55. data/lib/rack/adapter/rails.rb +155 -0
  56. data/lib/rack/handler/thin.rb +13 -0
  57. data/lib/thin.rb +36 -0
  58. data/lib/thin/cluster.rb +106 -0
  59. data/lib/thin/connection.rb +46 -0
  60. data/lib/thin/daemonizing.rb +112 -0
  61. data/lib/thin/headers.rb +37 -0
  62. data/lib/thin/logging.rb +23 -0
  63. data/lib/thin/request.rb +72 -0
  64. data/lib/thin/response.rb +48 -0
  65. data/lib/thin/server.rb +80 -0
  66. data/lib/thin/statuses.rb +43 -0
  67. data/lib/thin/version.rb +11 -0
  68. data/lib/thin_parser.so +0 -0
  69. data/spec/cluster_spec.rb +58 -0
  70. data/spec/daemonizing_spec.rb +93 -0
  71. data/spec/headers_spec.rb +35 -0
  72. data/spec/rack_rails_spec.rb +92 -0
  73. data/spec/rails_app/app/controllers/application.rb +10 -0
  74. data/spec/rails_app/app/controllers/simple_controller.rb +19 -0
  75. data/spec/rails_app/app/helpers/application_helper.rb +3 -0
  76. data/spec/rails_app/app/views/simple/index.html.erb +15 -0
  77. data/spec/rails_app/config/boot.rb +109 -0
  78. data/spec/rails_app/config/environment.rb +64 -0
  79. data/spec/rails_app/config/environments/development.rb +18 -0
  80. data/spec/rails_app/config/environments/production.rb +19 -0
  81. data/spec/rails_app/config/environments/test.rb +22 -0
  82. data/spec/rails_app/config/initializers/inflections.rb +10 -0
  83. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  84. data/spec/rails_app/config/routes.rb +35 -0
  85. data/spec/rails_app/public/404.html +30 -0
  86. data/spec/rails_app/public/422.html +30 -0
  87. data/spec/rails_app/public/500.html +30 -0
  88. data/spec/rails_app/public/dispatch.cgi +10 -0
  89. data/spec/rails_app/public/dispatch.fcgi +24 -0
  90. data/spec/rails_app/public/dispatch.rb +10 -0
  91. data/spec/rails_app/public/favicon.ico +0 -0
  92. data/spec/rails_app/public/images/rails.png +0 -0
  93. data/spec/rails_app/public/index.html +277 -0
  94. data/spec/rails_app/public/javascripts/application.js +2 -0
  95. data/spec/rails_app/public/javascripts/controls.js +963 -0
  96. data/spec/rails_app/public/javascripts/dragdrop.js +972 -0
  97. data/spec/rails_app/public/javascripts/effects.js +1120 -0
  98. data/spec/rails_app/public/javascripts/prototype.js +4225 -0
  99. data/spec/rails_app/public/robots.txt +5 -0
  100. data/spec/rails_app/script/about +3 -0
  101. data/spec/rails_app/script/console +3 -0
  102. data/spec/rails_app/script/destroy +3 -0
  103. data/spec/rails_app/script/generate +3 -0
  104. data/spec/rails_app/script/performance/benchmarker +3 -0
  105. data/spec/rails_app/script/performance/profiler +3 -0
  106. data/spec/rails_app/script/performance/request +3 -0
  107. data/spec/rails_app/script/plugin +3 -0
  108. data/spec/rails_app/script/process/inspector +3 -0
  109. data/spec/rails_app/script/process/reaper +3 -0
  110. data/spec/rails_app/script/process/spawner +3 -0
  111. data/spec/rails_app/script/runner +3 -0
  112. data/spec/rails_app/script/server +3 -0
  113. data/spec/request_spec.rb +258 -0
  114. data/spec/response_spec.rb +56 -0
  115. data/spec/server_spec.rb +75 -0
  116. data/spec/spec_helper.rb +127 -0
  117. metadata +219 -0
@@ -0,0 +1,156 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <title>
6
+ thin &raquo; Module: Rack
7
+ </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
+ <script language="JavaScript" type="text/javascript">
11
+ // <![CDATA[
12
+
13
+ function toggleSource( id )
14
+ {
15
+ var elem
16
+ var link
17
+
18
+ if( document.getElementById )
19
+ {
20
+ elem = document.getElementById( id )
21
+ link = document.getElementById( "l_" + id )
22
+ }
23
+ else if ( document.all )
24
+ {
25
+ elem = eval( "document.all." + id )
26
+ link = eval( "document.all.l_" + id )
27
+ }
28
+ else
29
+ return false;
30
+
31
+ if( elem.style.display == "block" )
32
+ {
33
+ elem.style.display = "none"
34
+ link.innerHTML = "show source"
35
+ }
36
+ else
37
+ {
38
+ elem.style.display = "block"
39
+ link.innerHTML = "hide source"
40
+ }
41
+ }
42
+
43
+ function openCode( url )
44
+ {
45
+ window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
46
+ }
47
+ // ]]>
48
+ </script>
49
+ </head>
50
+ <body>
51
+ <ul id="menu">
52
+ <li><a href="/thin/">about</a></li>
53
+ <li><a href="/thin/download/">download</a></li>
54
+ <li><a href="/thin/usage/">usage</a></li>
55
+ <li><a href="/thin/doc/">doc</a></li>
56
+ <li><a href="http://groups.google.com/group/thin-ruby/">community</a></li>
57
+ </ul>
58
+ <div id="sidebar">
59
+ <h2>Files</h2>
60
+ <ul class="list">
61
+ <li><a href="../files/README.html" value="File: README">README</a></li>
62
+ <li><a href="../files/lib/rack/adapter/rails_rb.html" value="File: rails.rb">lib/rack/adapter/rails.rb</a></li>
63
+ <li><a href="../files/lib/rack/handler/thin_rb.html" value="File: thin.rb">lib/rack/handler/thin.rb</a></li>
64
+ <li><a href="../files/lib/thin/cluster_rb.html" value="File: cluster.rb">lib/thin/cluster.rb</a></li>
65
+ <li><a href="../files/lib/thin/connection_rb.html" value="File: connection.rb">lib/thin/connection.rb</a></li>
66
+ <li><a href="../files/lib/thin/daemonizing_rb.html" value="File: daemonizing.rb">lib/thin/daemonizing.rb</a></li>
67
+ <li><a href="../files/lib/thin/headers_rb.html" value="File: headers.rb">lib/thin/headers.rb</a></li>
68
+ <li><a href="../files/lib/thin/logging_rb.html" value="File: logging.rb">lib/thin/logging.rb</a></li>
69
+ <li><a href="../files/lib/thin/request_rb.html" value="File: request.rb">lib/thin/request.rb</a></li>
70
+ <li><a href="../files/lib/thin/response_rb.html" value="File: response.rb">lib/thin/response.rb</a></li>
71
+ <li><a href="../files/lib/thin/server_rb.html" value="File: server.rb">lib/thin/server.rb</a></li>
72
+ <li><a href="../files/lib/thin/statuses_rb.html" value="File: statuses.rb">lib/thin/statuses.rb</a></li>
73
+ <li><a href="../files/lib/thin/version_rb.html" value="File: version.rb">lib/thin/version.rb</a></li>
74
+ <li><a href="../files/lib/thin_rb.html" value="File: thin.rb">lib/thin.rb</a></li>
75
+ <li><a href="../files/bin/thin.html" value="File: thin">bin/thin</a></li>
76
+ </ul>
77
+
78
+ <h2>Classes</h2>
79
+ <ul class="list">
80
+ <li><a href="../classes/Rack.html" title="Module: Rack">Rack</a></li>
81
+ <li><a href="../classes/Rack/Adapter.html" title="Module: Rack::Adapter">Rack::Adapter</a></li>
82
+ <li><a href="../classes/Rack/Adapter/Rails.html" title="Class: Rack::Adapter::Rails">Rack::Adapter::Rails</a></li>
83
+ <li><a href="../classes/Rack/Adapter/Rails/CGIWrapper.html" title="Class: Rack::Adapter::Rails::CGIWrapper">Rack::Adapter::Rails::CGIWrapper</a></li>
84
+ <li><a href="../classes/Rack/Handler.html" title="Module: Rack::Handler">Rack::Handler</a></li>
85
+ <li><a href="../classes/Rack/Handler/Thin.html" title="Class: Rack::Handler::Thin">Rack::Handler::Thin</a></li>
86
+ <li><a href="../classes/Thin.html" title="Module: Thin">Thin</a></li>
87
+ <li><a href="../classes/Thin/Daemonizable.html" title="Module: Thin::Daemonizable">Thin::Daemonizable</a></li>
88
+ <li><a href="../classes/Thin/Daemonizable/ClassMethods.html" title="Module: Thin::Daemonizable::ClassMethods">Thin::Daemonizable::ClassMethods</a></li>
89
+ <li><a href="../classes/Thin/VERSION.html" title="Module: Thin::VERSION">Thin::VERSION</a></li>
90
+ <li><a href="../classes/Thin/Logging.html" title="Module: Thin::Logging">Thin::Logging</a></li>
91
+ <li><a href="../classes/Thin/InvalidRequest.html" title="Class: Thin::InvalidRequest">Thin::InvalidRequest</a></li>
92
+ <li><a href="../classes/Thin/StopServer.html" title="Class: Thin::StopServer">Thin::StopServer</a></li>
93
+ <li><a href="../classes/Thin/Response.html" title="Class: Thin::Response">Thin::Response</a></li>
94
+ <li><a href="../classes/Thin/Headers.html" title="Class: Thin::Headers">Thin::Headers</a></li>
95
+ <li><a href="../classes/Thin/Server.html" title="Class: Thin::Server">Thin::Server</a></li>
96
+ <li><a href="../classes/Thin/Request.html" title="Class: Thin::Request">Thin::Request</a></li>
97
+ <li><a href="../classes/Thin/Connection.html" title="Class: Thin::Connection">Thin::Connection</a></li>
98
+ <li><a href="../classes/Thin/Cluster.html" title="Class: Thin::Cluster">Thin::Cluster</a></li>
99
+ <li><a href="../classes/Process.html" title="Module: Process">Process</a></li>
100
+ </ul>
101
+ </div>
102
+ <div id="container">
103
+ <div id="header">
104
+ <a href="/thin/" title="Home">
105
+ <img id="logo" src="../logo.gif" />
106
+ </a>
107
+ <h2 id="tag_line">A fast and very simple Ruby web server</h2>
108
+ </div>
109
+
110
+ <div id="content">
111
+ <h2>Module: Rack</h2>
112
+
113
+
114
+ <div id="Rack" class="page_shade">
115
+ <div class="page">
116
+ <h3>Module Rack</h3>
117
+
118
+ <span class="path">(in files
119
+ <a href="../files/lib/rack/adapter/rails_rb.html">lib/rack/adapter/rails.rb</a>
120
+ <a href="../files/lib/rack/handler/thin_rb.html">lib/rack/handler/thin.rb</a>
121
+ <a href="../files/lib/thin_rb.html">lib/thin.rb</a>
122
+ )</span>
123
+
124
+ <p>
125
+ <a href="Rack/Adapter.html">Adapter</a> to run a Rails app with any
126
+ supported <a href="Rack.html">Rack</a> handler. By default it will try to
127
+ load the Rails application in the current directory in the development
128
+ environment. Options:
129
+ </p>
130
+ <pre>
131
+ root: Root directory of the Rails app
132
+ env: Rails environment to run in (development, production or test)
133
+ </pre>
134
+ <p>
135
+ Based on <a href="http://fuzed.rubyforge.org">fuzed.rubyforge.org</a>/
136
+ Rails adapter
137
+ </p>
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ </div>
146
+ </div>
147
+
148
+
149
+ </div>
150
+ </div>
151
+ <div id="footer">
152
+ <hr />
153
+ &copy; <a href="http://macournoyer.com">Marc-Andr&eacute; Cournoyer</a>
154
+ </div>
155
+ </body>
156
+ </html>
@@ -0,0 +1,155 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <title>
6
+ thin &raquo; Module: Rack::Adapter
7
+ </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
+ <script language="JavaScript" type="text/javascript">
11
+ // <![CDATA[
12
+
13
+ function toggleSource( id )
14
+ {
15
+ var elem
16
+ var link
17
+
18
+ if( document.getElementById )
19
+ {
20
+ elem = document.getElementById( id )
21
+ link = document.getElementById( "l_" + id )
22
+ }
23
+ else if ( document.all )
24
+ {
25
+ elem = eval( "document.all." + id )
26
+ link = eval( "document.all.l_" + id )
27
+ }
28
+ else
29
+ return false;
30
+
31
+ if( elem.style.display == "block" )
32
+ {
33
+ elem.style.display = "none"
34
+ link.innerHTML = "show source"
35
+ }
36
+ else
37
+ {
38
+ elem.style.display = "block"
39
+ link.innerHTML = "hide source"
40
+ }
41
+ }
42
+
43
+ function openCode( url )
44
+ {
45
+ window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
46
+ }
47
+ // ]]>
48
+ </script>
49
+ </head>
50
+ <body>
51
+ <ul id="menu">
52
+ <li><a href="/thin/">about</a></li>
53
+ <li><a href="/thin/download/">download</a></li>
54
+ <li><a href="/thin/usage/">usage</a></li>
55
+ <li><a href="/thin/doc/">doc</a></li>
56
+ <li><a href="http://groups.google.com/group/thin-ruby/">community</a></li>
57
+ </ul>
58
+ <div id="sidebar">
59
+ <h2>Files</h2>
60
+ <ul class="list">
61
+ <li><a href="../../files/README.html" value="File: README">README</a></li>
62
+ <li><a href="../../files/lib/rack/adapter/rails_rb.html" value="File: rails.rb">lib/rack/adapter/rails.rb</a></li>
63
+ <li><a href="../../files/lib/rack/handler/thin_rb.html" value="File: thin.rb">lib/rack/handler/thin.rb</a></li>
64
+ <li><a href="../../files/lib/thin/cluster_rb.html" value="File: cluster.rb">lib/thin/cluster.rb</a></li>
65
+ <li><a href="../../files/lib/thin/connection_rb.html" value="File: connection.rb">lib/thin/connection.rb</a></li>
66
+ <li><a href="../../files/lib/thin/daemonizing_rb.html" value="File: daemonizing.rb">lib/thin/daemonizing.rb</a></li>
67
+ <li><a href="../../files/lib/thin/headers_rb.html" value="File: headers.rb">lib/thin/headers.rb</a></li>
68
+ <li><a href="../../files/lib/thin/logging_rb.html" value="File: logging.rb">lib/thin/logging.rb</a></li>
69
+ <li><a href="../../files/lib/thin/request_rb.html" value="File: request.rb">lib/thin/request.rb</a></li>
70
+ <li><a href="../../files/lib/thin/response_rb.html" value="File: response.rb">lib/thin/response.rb</a></li>
71
+ <li><a href="../../files/lib/thin/server_rb.html" value="File: server.rb">lib/thin/server.rb</a></li>
72
+ <li><a href="../../files/lib/thin/statuses_rb.html" value="File: statuses.rb">lib/thin/statuses.rb</a></li>
73
+ <li><a href="../../files/lib/thin/version_rb.html" value="File: version.rb">lib/thin/version.rb</a></li>
74
+ <li><a href="../../files/lib/thin_rb.html" value="File: thin.rb">lib/thin.rb</a></li>
75
+ <li><a href="../../files/bin/thin.html" value="File: thin">bin/thin</a></li>
76
+ </ul>
77
+
78
+ <h2>Classes</h2>
79
+ <ul class="list">
80
+ <li><a href="../../classes/Rack.html" title="Module: Rack">Rack</a></li>
81
+ <li><a href="../../classes/Rack/Adapter.html" title="Module: Rack::Adapter">Rack::Adapter</a></li>
82
+ <li><a href="../../classes/Rack/Adapter/Rails.html" title="Class: Rack::Adapter::Rails">Rack::Adapter::Rails</a></li>
83
+ <li><a href="../../classes/Rack/Adapter/Rails/CGIWrapper.html" title="Class: Rack::Adapter::Rails::CGIWrapper">Rack::Adapter::Rails::CGIWrapper</a></li>
84
+ <li><a href="../../classes/Rack/Handler.html" title="Module: Rack::Handler">Rack::Handler</a></li>
85
+ <li><a href="../../classes/Rack/Handler/Thin.html" title="Class: Rack::Handler::Thin">Rack::Handler::Thin</a></li>
86
+ <li><a href="../../classes/Thin.html" title="Module: Thin">Thin</a></li>
87
+ <li><a href="../../classes/Thin/Daemonizable.html" title="Module: Thin::Daemonizable">Thin::Daemonizable</a></li>
88
+ <li><a href="../../classes/Thin/Daemonizable/ClassMethods.html" title="Module: Thin::Daemonizable::ClassMethods">Thin::Daemonizable::ClassMethods</a></li>
89
+ <li><a href="../../classes/Thin/VERSION.html" title="Module: Thin::VERSION">Thin::VERSION</a></li>
90
+ <li><a href="../../classes/Thin/Logging.html" title="Module: Thin::Logging">Thin::Logging</a></li>
91
+ <li><a href="../../classes/Thin/InvalidRequest.html" title="Class: Thin::InvalidRequest">Thin::InvalidRequest</a></li>
92
+ <li><a href="../../classes/Thin/StopServer.html" title="Class: Thin::StopServer">Thin::StopServer</a></li>
93
+ <li><a href="../../classes/Thin/Response.html" title="Class: Thin::Response">Thin::Response</a></li>
94
+ <li><a href="../../classes/Thin/Headers.html" title="Class: Thin::Headers">Thin::Headers</a></li>
95
+ <li><a href="../../classes/Thin/Server.html" title="Class: Thin::Server">Thin::Server</a></li>
96
+ <li><a href="../../classes/Thin/Request.html" title="Class: Thin::Request">Thin::Request</a></li>
97
+ <li><a href="../../classes/Thin/Connection.html" title="Class: Thin::Connection">Thin::Connection</a></li>
98
+ <li><a href="../../classes/Thin/Cluster.html" title="Class: Thin::Cluster">Thin::Cluster</a></li>
99
+ <li><a href="../../classes/Process.html" title="Module: Process">Process</a></li>
100
+ </ul>
101
+ </div>
102
+ <div id="container">
103
+ <div id="header">
104
+ <a href="/thin/" title="Home">
105
+ <img id="logo" src="../../logo.gif" />
106
+ </a>
107
+ <h2 id="tag_line">A fast and very simple Ruby web server</h2>
108
+ </div>
109
+
110
+ <div id="content">
111
+ <h2>Module: Rack::Adapter</h2>
112
+
113
+
114
+ <div id="Rack::Adapter" class="page_shade">
115
+ <div class="page">
116
+ <h3>Module Rack::Adapter</h3>
117
+
118
+ <span class="path">(in files
119
+ <a href="../../files/lib/rack/adapter/rails_rb.html">lib/rack/adapter/rails.rb</a>
120
+ <a href="../../files/lib/thin_rb.html">lib/thin.rb</a>
121
+ )</span>
122
+
123
+ <p>
124
+ <a href="Rack/Adapter.html">Adapter</a> to run a Rails app with any
125
+ supported <a href="Rack.html">Rack</a> handler. By default it will try to
126
+ load the Rails application in the current directory in the development
127
+ environment. Options:
128
+ </p>
129
+ <pre>
130
+ root: Root directory of the Rails app
131
+ env: Rails environment to run in (development, production or test)
132
+ </pre>
133
+ <p>
134
+ Based on <a href="http://fuzed.rubyforge.org">fuzed.rubyforge.org</a>/
135
+ Rails adapter
136
+ </p>
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+ </div>
145
+ </div>
146
+
147
+
148
+ </div>
149
+ </div>
150
+ <div id="footer">
151
+ <hr />
152
+ &copy; <a href="http://macournoyer.com">Marc-Andr&eacute; Cournoyer</a>
153
+ </div>
154
+ </body>
155
+ </html>
@@ -0,0 +1,289 @@
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
+ <html>
4
+ <head>
5
+ <title>
6
+ thin &raquo; Class: Rack::Adapter::Rails
7
+ </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
+ <script language="JavaScript" type="text/javascript">
11
+ // <![CDATA[
12
+
13
+ function toggleSource( id )
14
+ {
15
+ var elem
16
+ var link
17
+
18
+ if( document.getElementById )
19
+ {
20
+ elem = document.getElementById( id )
21
+ link = document.getElementById( "l_" + id )
22
+ }
23
+ else if ( document.all )
24
+ {
25
+ elem = eval( "document.all." + id )
26
+ link = eval( "document.all.l_" + id )
27
+ }
28
+ else
29
+ return false;
30
+
31
+ if( elem.style.display == "block" )
32
+ {
33
+ elem.style.display = "none"
34
+ link.innerHTML = "show source"
35
+ }
36
+ else
37
+ {
38
+ elem.style.display = "block"
39
+ link.innerHTML = "hide source"
40
+ }
41
+ }
42
+
43
+ function openCode( url )
44
+ {
45
+ window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
46
+ }
47
+ // ]]>
48
+ </script>
49
+ </head>
50
+ <body>
51
+ <ul id="menu">
52
+ <li><a href="/thin/">about</a></li>
53
+ <li><a href="/thin/download/">download</a></li>
54
+ <li><a href="/thin/usage/">usage</a></li>
55
+ <li><a href="/thin/doc/">doc</a></li>
56
+ <li><a href="http://groups.google.com/group/thin-ruby/">community</a></li>
57
+ </ul>
58
+ <div id="sidebar">
59
+ <h2>Files</h2>
60
+ <ul class="list">
61
+ <li><a href="../../../files/README.html" value="File: README">README</a></li>
62
+ <li><a href="../../../files/lib/rack/adapter/rails_rb.html" value="File: rails.rb">lib/rack/adapter/rails.rb</a></li>
63
+ <li><a href="../../../files/lib/rack/handler/thin_rb.html" value="File: thin.rb">lib/rack/handler/thin.rb</a></li>
64
+ <li><a href="../../../files/lib/thin/cluster_rb.html" value="File: cluster.rb">lib/thin/cluster.rb</a></li>
65
+ <li><a href="../../../files/lib/thin/connection_rb.html" value="File: connection.rb">lib/thin/connection.rb</a></li>
66
+ <li><a href="../../../files/lib/thin/daemonizing_rb.html" value="File: daemonizing.rb">lib/thin/daemonizing.rb</a></li>
67
+ <li><a href="../../../files/lib/thin/headers_rb.html" value="File: headers.rb">lib/thin/headers.rb</a></li>
68
+ <li><a href="../../../files/lib/thin/logging_rb.html" value="File: logging.rb">lib/thin/logging.rb</a></li>
69
+ <li><a href="../../../files/lib/thin/request_rb.html" value="File: request.rb">lib/thin/request.rb</a></li>
70
+ <li><a href="../../../files/lib/thin/response_rb.html" value="File: response.rb">lib/thin/response.rb</a></li>
71
+ <li><a href="../../../files/lib/thin/server_rb.html" value="File: server.rb">lib/thin/server.rb</a></li>
72
+ <li><a href="../../../files/lib/thin/statuses_rb.html" value="File: statuses.rb">lib/thin/statuses.rb</a></li>
73
+ <li><a href="../../../files/lib/thin/version_rb.html" value="File: version.rb">lib/thin/version.rb</a></li>
74
+ <li><a href="../../../files/lib/thin_rb.html" value="File: thin.rb">lib/thin.rb</a></li>
75
+ <li><a href="../../../files/bin/thin.html" value="File: thin">bin/thin</a></li>
76
+ </ul>
77
+
78
+ <h2>Classes</h2>
79
+ <ul class="list">
80
+ <li><a href="../../../classes/Rack.html" title="Module: Rack">Rack</a></li>
81
+ <li><a href="../../../classes/Rack/Adapter.html" title="Module: Rack::Adapter">Rack::Adapter</a></li>
82
+ <li><a href="../../../classes/Rack/Adapter/Rails.html" title="Class: Rack::Adapter::Rails">Rack::Adapter::Rails</a></li>
83
+ <li><a href="../../../classes/Rack/Adapter/Rails/CGIWrapper.html" title="Class: Rack::Adapter::Rails::CGIWrapper">Rack::Adapter::Rails::CGIWrapper</a></li>
84
+ <li><a href="../../../classes/Rack/Handler.html" title="Module: Rack::Handler">Rack::Handler</a></li>
85
+ <li><a href="../../../classes/Rack/Handler/Thin.html" title="Class: Rack::Handler::Thin">Rack::Handler::Thin</a></li>
86
+ <li><a href="../../../classes/Thin.html" title="Module: Thin">Thin</a></li>
87
+ <li><a href="../../../classes/Thin/Daemonizable.html" title="Module: Thin::Daemonizable">Thin::Daemonizable</a></li>
88
+ <li><a href="../../../classes/Thin/Daemonizable/ClassMethods.html" title="Module: Thin::Daemonizable::ClassMethods">Thin::Daemonizable::ClassMethods</a></li>
89
+ <li><a href="../../../classes/Thin/VERSION.html" title="Module: Thin::VERSION">Thin::VERSION</a></li>
90
+ <li><a href="../../../classes/Thin/Logging.html" title="Module: Thin::Logging">Thin::Logging</a></li>
91
+ <li><a href="../../../classes/Thin/InvalidRequest.html" title="Class: Thin::InvalidRequest">Thin::InvalidRequest</a></li>
92
+ <li><a href="../../../classes/Thin/StopServer.html" title="Class: Thin::StopServer">Thin::StopServer</a></li>
93
+ <li><a href="../../../classes/Thin/Response.html" title="Class: Thin::Response">Thin::Response</a></li>
94
+ <li><a href="../../../classes/Thin/Headers.html" title="Class: Thin::Headers">Thin::Headers</a></li>
95
+ <li><a href="../../../classes/Thin/Server.html" title="Class: Thin::Server">Thin::Server</a></li>
96
+ <li><a href="../../../classes/Thin/Request.html" title="Class: Thin::Request">Thin::Request</a></li>
97
+ <li><a href="../../../classes/Thin/Connection.html" title="Class: Thin::Connection">Thin::Connection</a></li>
98
+ <li><a href="../../../classes/Thin/Cluster.html" title="Class: Thin::Cluster">Thin::Cluster</a></li>
99
+ <li><a href="../../../classes/Process.html" title="Module: Process">Process</a></li>
100
+ </ul>
101
+ </div>
102
+ <div id="container">
103
+ <div id="header">
104
+ <a href="/thin/" title="Home">
105
+ <img id="logo" src="../../../logo.gif" />
106
+ </a>
107
+ <h2 id="tag_line">A fast and very simple Ruby web server</h2>
108
+ </div>
109
+
110
+ <div id="content">
111
+ <h2>Class: Rack::Adapter::Rails</h2>
112
+
113
+
114
+ <div id="Rack::Adapter::Rails" class="page_shade">
115
+ <div class="page">
116
+ <h3>Class Rack::Adapter::Rails &lt; Object</h3>
117
+
118
+ <span class="path">(in files
119
+ <a href="../../../files/lib/rack/adapter/rails_rb.html">lib/rack/adapter/rails.rb</a>
120
+ )</span>
121
+
122
+ <p>
123
+ <a href="Rack/Adapter.html">Adapter</a> to run a Rails app with any
124
+ supported <a href="Rack.html">Rack</a> handler. By default it will try to
125
+ load the Rails application in the current directory in the development
126
+ environment. Options:
127
+ </p>
128
+ <pre>
129
+ root: Root directory of the Rails app
130
+ env: Rails environment to run in (development, production or test)
131
+ </pre>
132
+ <p>
133
+ Based on <a href="http://fuzed.rubyforge.org">fuzed.rubyforge.org</a>/
134
+ Rails adapter
135
+ </p>
136
+
137
+
138
+
139
+
140
+
141
+ <h2 class="ruled">Methods</h2>
142
+ <h4 class="ruled">
143
+ <span class="method-type" title="Public Class method">Public Class</span>
144
+ <strong><a name="M000005" href="#M000005" title="Permalink to Public Class method: new">new(options={})</a></strong>
145
+ </h4>
146
+
147
+
148
+ <div class="sourcecode">
149
+ <p class="source-link">[ <a href="javascript:toggleSource('M000005_source')" id="l_M000005_source">show source</a> ]</p>
150
+ <div id="M000005_source" class="dyn-source">
151
+ <pre>
152
+ <span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 16</span>
153
+ 16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>={})
154
+ 17: <span class="ruby-ivar">@root</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:root</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
155
+ 18: <span class="ruby-ivar">@env</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:environment</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'development'</span>
156
+ 19: <span class="ruby-ivar">@prefix</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:prefix</span>]
157
+ 20:
158
+ 21: <span class="ruby-identifier">load_application</span>
159
+ 22:
160
+ 23: <span class="ruby-ivar">@file_server</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RAILS_ROOT</span>, <span class="ruby-value str">&quot;public&quot;</span>))
161
+ 24: <span class="ruby-keyword kw">end</span>
162
+ </pre>
163
+ </div>
164
+ </div>
165
+ <h4 class="ruled">
166
+ <span class="method-type" title="Public Instance method">Public Instance</span>
167
+ <strong><a name="M000010" href="#M000010" title="Permalink to Public Instance method: call">call(env)</a></strong>
168
+ </h4>
169
+
170
+
171
+ <div class="sourcecode">
172
+ <p class="source-link">[ <a href="javascript:toggleSource('M000010_source')" id="l_M000010_source">show source</a> ]</p>
173
+ <div id="M000010_source" class="dyn-source">
174
+ <pre>
175
+ <span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 57</span>
176
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">call</span>(<span class="ruby-identifier">env</span>)
177
+ 58: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">env</span>[<span class="ruby-value str">'PATH_INFO'</span>].<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'/'</span>)
178
+ 59: <span class="ruby-identifier">cached_path</span> = (<span class="ruby-identifier">path</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-value str">'index'</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">path</span>) <span class="ruby-operator">+</span> <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">page_cache_extension</span>
179
+ 60:
180
+ 61: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file_exist?</span>(<span class="ruby-identifier">path</span>) <span class="ruby-comment cmt"># Serve the file if it's there</span>
181
+ 62: <span class="ruby-identifier">serve_file</span>(<span class="ruby-identifier">env</span>)
182
+ 63: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">file_exist?</span>(<span class="ruby-identifier">cached_path</span>) <span class="ruby-comment cmt"># Serve the page cache if it's there</span>
183
+ 64: <span class="ruby-identifier">env</span>[<span class="ruby-value str">'PATH_INFO'</span>] = <span class="ruby-identifier">cached_path</span>
184
+ 65: <span class="ruby-identifier">serve_file</span>(<span class="ruby-identifier">env</span>)
185
+ 66: <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># No static file, let Rails handle it</span>
186
+ 67: <span class="ruby-identifier">serve_rails</span>(<span class="ruby-identifier">env</span>)
187
+ 68: <span class="ruby-keyword kw">end</span>
188
+ 69: <span class="ruby-keyword kw">end</span>
189
+ </pre>
190
+ </div>
191
+ </div>
192
+ <h4 class="ruled">
193
+ <span class="method-type" title="Public Instance method">Public Instance</span>
194
+ <strong><a name="M000007" href="#M000007" title="Permalink to Public Instance method: file_exist?">file_exist?(path)</a></strong>
195
+ </h4>
196
+
197
+ <p>
198
+ TODO refactor this in File#can_serve?(path) ??
199
+ </p>
200
+
201
+ <div class="sourcecode">
202
+ <p class="source-link">[ <a href="javascript:toggleSource('M000007_source')" id="l_M000007_source">show source</a> ]</p>
203
+ <div id="M000007_source" class="dyn-source">
204
+ <pre>
205
+ <span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 36</span>
206
+ 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">file_exist?</span>(<span class="ruby-identifier">path</span>)
207
+ 37: <span class="ruby-identifier">full_path</span> = <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@file_server</span>.<span class="ruby-identifier">root</span>, <span class="ruby-constant">Utils</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">path</span>))
208
+ 38: <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span>(<span class="ruby-identifier">full_path</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">readable?</span>(<span class="ruby-identifier">full_path</span>)
209
+ 39: <span class="ruby-keyword kw">end</span>
210
+ </pre>
211
+ </div>
212
+ </div>
213
+ <h4 class="ruled">
214
+ <span class="method-type" title="Public Instance method">Public Instance</span>
215
+ <strong><a name="M000006" href="#M000006" title="Permalink to Public Instance method: load_application">load_application()</a></strong>
216
+ </h4>
217
+
218
+
219
+ <div class="sourcecode">
220
+ <p class="source-link">[ <a href="javascript:toggleSource('M000006_source')" id="l_M000006_source">show source</a> ]</p>
221
+ <div id="M000006_source" class="dyn-source">
222
+ <pre>
223
+ <span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 26</span>
224
+ 26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_application</span>
225
+ 27: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'RAILS_ENV'</span>] = <span class="ruby-ivar">@env</span>
226
+ 28:
227
+ 29: <span class="ruby-identifier">require</span> <span class="ruby-node">&quot;#{@root}/config/environment&quot;</span>
228
+ 30: <span class="ruby-identifier">require</span> <span class="ruby-value str">'dispatcher'</span>
229
+ 31:
230
+ 32: <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">AbstractRequest</span>.<span class="ruby-identifier">relative_url_root</span> = <span class="ruby-ivar">@prefix</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@prefix</span>
231
+ 33: <span class="ruby-keyword kw">end</span>
232
+ </pre>
233
+ </div>
234
+ </div>
235
+ <h4 class="ruled">
236
+ <span class="method-type" title="Public Instance method">Public Instance</span>
237
+ <strong><a name="M000008" href="#M000008" title="Permalink to Public Instance method: serve_file">serve_file(env)</a></strong>
238
+ </h4>
239
+
240
+
241
+ <div class="sourcecode">
242
+ <p class="source-link">[ <a href="javascript:toggleSource('M000008_source')" id="l_M000008_source">show source</a> ]</p>
243
+ <div id="M000008_source" class="dyn-source">
244
+ <pre>
245
+ <span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 41</span>
246
+ 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">serve_file</span>(<span class="ruby-identifier">env</span>)
247
+ 42: <span class="ruby-ivar">@file_server</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">env</span>)
248
+ 43: <span class="ruby-keyword kw">end</span>
249
+ </pre>
250
+ </div>
251
+ </div>
252
+ <h4 class="ruled">
253
+ <span class="method-type" title="Public Instance method">Public Instance</span>
254
+ <strong><a name="M000009" href="#M000009" title="Permalink to Public Instance method: serve_rails">serve_rails(env)</a></strong>
255
+ </h4>
256
+
257
+
258
+ <div class="sourcecode">
259
+ <p class="source-link">[ <a href="javascript:toggleSource('M000009_source')" id="l_M000009_source">show source</a> ]</p>
260
+ <div id="M000009_source" class="dyn-source">
261
+ <pre>
262
+ <span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 45</span>
263
+ 45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">serve_rails</span>(<span class="ruby-identifier">env</span>)
264
+ 46: <span class="ruby-identifier">request</span> = <span class="ruby-constant">Request</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">env</span>)
265
+ 47: <span class="ruby-identifier">response</span> = <span class="ruby-constant">Response</span>.<span class="ruby-identifier">new</span>
266
+ 48:
267
+ 49: <span class="ruby-identifier">session_options</span> = <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">CgiRequest</span><span class="ruby-operator">::</span><span class="ruby-constant">DEFAULT_SESSION_OPTIONS</span>
268
+ 50: <span class="ruby-identifier">cgi</span> = <span class="ruby-constant">CGIWrapper</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>)
269
+ 51:
270
+ 52: <span class="ruby-constant">Dispatcher</span>.<span class="ruby-identifier">dispatch</span>(<span class="ruby-identifier">cgi</span>, <span class="ruby-identifier">session_options</span>, <span class="ruby-identifier">response</span>)
271
+ 53:
272
+ 54: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">finish</span>
273
+ 55: <span class="ruby-keyword kw">end</span>
274
+ </pre>
275
+ </div>
276
+ </div>
277
+
278
+ </div>
279
+ </div>
280
+
281
+
282
+ </div>
283
+ </div>
284
+ <div id="footer">
285
+ <hr />
286
+ &copy; <a href="http://macournoyer.com">Marc-Andr&eacute; Cournoyer</a>
287
+ </div>
288
+ </body>
289
+ </html>