README.md in rack-cgi-0.4.2 vs README.md in rack-cgi-0.4.3
- old
+ new
@@ -5,17 +5,16 @@
Usage
-----
Here is an example for using Rack::CGI
-```ruby
-# config.ru
+ # config.ru
-use Rack::CGI, cgi_path: 'cgi', index: 'index.cgi', Rack::CGI::Executable => '', /\.php$/ => '/usr/bin/php-cgi'
-use Rack::Static, urls: ['/'], root: 'cgi'
-run proc{ [404, {"CONTENT-TYPE" => "text/plain"}, ['404 Not Found']] }
-```
+ use Rack::CGI, cgi_path: 'cgi', index: 'index.cgi', Rack::CGI::Executable => '', /\.php$/ => '/usr/bin/php-cgi'
+ use Rack::Static, urls: ['/'], root: 'cgi'
+ run proc{ [404, {"CONTENT-TYPE" => "text/plain"}, ['404 Not Found']] }
+
How to
-----
### Document Root
@@ -26,24 +25,24 @@
When user access directory, Rack::CGI will use index script instand of.
If you not special index, Rack::CGI will not have a default value, and it's not works.
You can special index as follow:
-```ruby
-use Rack::CGI, index: 'index.php'
-# or special multiple, Rack::CGI will try each by order
-use Rack::CGI, index: ['index.php', 'index.cgi']
-```
+ use Rack::CGI, index: 'index.php'
+
+ # or special multiple, Rack::CGI will try each by order
+ use Rack::CGI, index: ['index.php', 'index.cgi']
+
### Rules
When Rack::CGI found a script file in disk, it will try to find a rule to deal it.
You can special multiple rules, in follow format:
-```ruby
-use Rack::CGI, match1 => deal1, match2 => deal2, match3 => deal3 ...
-```
+
+ use Rack::CGI, match1 => deal1, match2 => deal2, match3 => deal3 ...
+
`match` can be Rack::CGI::Executable or Regexp.
Rack::CGI::Executable match all script that is executable.
Regexp will try to match script full path.
If none rules match, Rack::CGI will do nothing. Such as if you spacial Rack::CGI::Executable => "",
@@ -59,44 +58,44 @@
In some programs(such as phpBB), when you visit a dir without ending '/'. (Such as 'http://wps-community.org/forum')
All relative resource will cannot accessed. In this case, we have to redirect 'http://wps-community.org/forum' to
'http://wps-community.org/forum/' to avoid this problem.
You can use following code to open this feature.
-```ruby
-use Rack::CGI, ..., dir_redirect: true, ...
-```
+
+ use Rack::CGI, ..., dir_redirect: true, ...
+
### Use Rack::CGI in Rails project
Originally I intended to write a project named rails-cgi.
But it's so trouble, and run Rack app in rails is not very complex.
So I give up rails-cgi.
-1. Create a cgi controller
-```bash
-$ rails g controller cgi
-```
-2. Create a Rack Application in CgiController
-```ruby
-# You can changed arguments as you want
-CGI = Rack::Builder.new do
- use Rack::CGI, cgi_path: 'cgi', index: ['index.cgi', 'index.php'], Rack::CGI::Executable => '', /\.php$/ => '/usr/bin/php-cgi'
- use Rack::Static, urls: ['/'], root: 'cgi'
- run proc{ |env| raise ActionController::RoutingError, env['PATH_INFO'] + " not found!" }
-end
-```
-3. Call Rack App in rails controller
-```ruby
-# add an action to controller
-def cgi
- [self.status, self.response.headers, self.response_body] = CGI.call env
-end
-# of course, you can add decoration code here, such as call rails layout
-```
-4. Add route
-```ruby
-# add follow to config/routes.rb
-get '/cgi-bin/*path' => 'cgi#cgi'
-```
+Create a cgi controller
+
+ $ rails g controller cgi
+
+Create a Rack Application in CgiController
+
+ # You can changed arguments as you want
+ CGI = Rack::Builder.new do
+ use Rack::CGI, cgi_path: 'cgi', index: ['index.cgi', 'index.php'], Rack::CGI::Executable => '', /\.php$/ => '/usr/bin/php-cgi'
+ use Rack::Static, urls: ['/'], root: 'cgi'
+ run proc{ |env| raise ActionController::RoutingError, env['PATH_INFO'] + " not found!" }
+ end
+
+Call Rack App in rails controller
+
+ # add an action to controller
+ def cgi
+ [self.status, self.response.headers, self.response_body] = CGI.call env
+ end
+ # of course, you can add decoration code here, such as call rails layout
+
+Add route
+
+ # add follow to config/routes.rb
+ get '/cgi-bin/*path' => 'cgi#cgi'
+
TODO
----
POST Request support