Add -N or --no-default-middleware option.
authorLin Jen-Shin <godfat@godfat.org>
Tue, 29 Jan 2013 03:21:19 +0000 (11:21 +0800)
committerEric Wong <normalperson@yhbt.net>
Tue, 29 Jan 2013 04:02:57 +0000 (04:02 +0000)
commitc43113e350aabb78c30ba64884328458db85c901
treeb906baab34fd1321b0aeded709a185ba7abc4bfb
parentfdd7c851e5664c1e629a904e21d147a9dfc950d7
Add -N or --no-default-middleware option.

This would prevent Unicorn from adding default middleware,
as if RACK_ENV were always none. (not development nor deployment)

This should also be applied to `rainbows' and `zbatery' as well.

One of the reasons to add this is to avoid conflicting
RAILS_ENV and RACK_ENV. It would be helpful in the case
where a Rails application and Rack application are composed
together, while we want Rails app runs under development
and Rack app runs under none (if we don't want those default
middleware), and we don't really want to make RAILS_ENV
set to development and RACK_ENV to none because it might be
confusing. Note that Rails would also look into RACK_ENV.

Another reason for this is that only `rackup' would be
inserting those default middleware. Both `thin' and `puma'
would not do this, nor does Rack::Handler.get.run which is
used in Sinatra.

So using this option would make it work differently from
`rackup' but somehow more similar to `thin' or `puma'.

Discussion thread on the mailing list:
http://rubyforge.org/pipermail/mongrel-unicorn/2013-January/001675.html

Signed-off-by: Eric Wong <normalperson@yhbt.net>
bin/unicorn
lib/unicorn.rb