Ready first version of reusable apps dispatching.

This commit is contained in:
Wlodek Bzyl 2009-06-02 00:01:53 +02:00
parent aeb39757c7
commit 3291a5d8ce
2 changed files with 47 additions and 5 deletions

View File

@ -130,6 +130,48 @@ Or, if subclassing `Sinatra::Base`, include helpers manually:
# ... # ...
end end
## Dispatching reusable Sinatra applications
With the latest version of Sinatra it is possible to build
reusable Sinatra applications. This means that multiple Sinatra applications
can now be run in isolation and co-exist peacefully with other Rack
based applications. Subclassing `Sinatra::Base` creates such a
reusable application.
The `example` directory contains two reusable Sinatra applications:
*rsummer*, *rwinter* and a rackup file `rconfig.ru` which
dispatches these applications to `/summer` and `/rsummer` sub URI.
require 'rsummer/summer'
require 'rwinter/winter'
map '/summer' do
run Sinatra::Summer.new
end
map '/winter' do
run Sinatra::Winter.new
end
This rackup file could be used to deploy to virtual host's root.
<VirtualHost *:80>
ServerName hitch.local
DocumentRoot /srv/www/hitch.local
</VirtualHost>
Creating required by Passenger directories:
mkdir /srv/www/hitch.local/{public,tmp}
and moving `config.ru` into `/srv/www/hitch.local`.
With everything in place, after restarting Apache2 the applications
are accessible from the
http://hitch.local/summer http://hitch.local/winter
respectively.
## Miscellaneous stuff ## Miscellaneous stuff

View File

@ -6,7 +6,7 @@ Gem::Specification.new do |s|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Wlodek Bzyl"] s.authors = ["Wlodek Bzyl"]
s.date = %q{2009-06-01} s.date = %q{2009-06-02}
s.description = %q{This Sinatra extensions provides following helper methods: s.description = %q{This Sinatra extensions provides following helper methods:
- image_tag - image_tag
- stylesheet_link_tag - stylesheet_link_tag
@ -28,17 +28,17 @@ Gem::Specification.new do |s|
"examples/rsummer/public/stylesheets/src/background.png", "examples/rsummer/public/stylesheets/src/background.png",
"examples/rsummer/summer.rb", "examples/rsummer/summer.rb",
"examples/rsummer/tmp/always_restart.txt", "examples/rsummer/tmp/always_restart.txt",
"examples/rsummer/views/app.erb", "examples/rsummer/views/index.erb",
"examples/rsummer/views/layout.erb", "examples/rsummer/views/layout.erb",
"examples/rwinter/config.ru", "examples/rwinter/config.ru",
"examples/rwinter/mapp.rb",
"examples/rwinter/public/images/tatry2.jpg", "examples/rwinter/public/images/tatry2.jpg",
"examples/rwinter/public/javascripts/mapp.js", "examples/rwinter/public/javascripts/mapp.js",
"examples/rwinter/public/stylesheets/mapp.css", "examples/rwinter/public/stylesheets/mapp.css",
"examples/rwinter/public/stylesheets/src/background.png", "examples/rwinter/public/stylesheets/src/background.png",
"examples/rwinter/tmp/always_restart.txt", "examples/rwinter/tmp/always_restart.txt",
"examples/rwinter/views/index.erb",
"examples/rwinter/views/layout.erb", "examples/rwinter/views/layout.erb",
"examples/rwinter/views/mapp.erb", "examples/rwinter/winter.rb",
"examples/summer/config.ru", "examples/summer/config.ru",
"examples/summer/public/images/tatry1.jpg", "examples/summer/public/images/tatry1.jpg",
"examples/summer/public/javascripts/app.js", "examples/summer/public/javascripts/app.js",
@ -73,7 +73,7 @@ Gem::Specification.new do |s|
"test/sinatra_static_assets_test.rb", "test/sinatra_static_assets_test.rb",
"examples/summer/summer.rb", "examples/summer/summer.rb",
"examples/rsummer/summer.rb", "examples/rsummer/summer.rb",
"examples/rwinter/mapp.rb", "examples/rwinter/winter.rb",
"examples/winter/app2.rb" "examples/winter/app2.rb"
] ]