diff options
Diffstat (limited to 'config.ru')
-rw-r--r-- | config.ru | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/config.ru b/config.ru new file mode 100644 index 00000000..060867f3 --- /dev/null +++ b/config.ru @@ -0,0 +1,35 @@ +require 'rubygems' +require 'bundler/setup' +require 'rack' + +# The project root directory +$root = ::File.dirname(__FILE__) + +# Common Rack Middleware +use Rack::ShowStatus # Nice looking 404s and other messages +use Rack::ShowExceptions # Nice looking errors + +# +# From Rack::DirectoryIndex: +# https://github.com/craigmarksmith/rack-directory-index/ +# +module Rack + class DirectoryIndex + def initialize(app) + @app = app + end + def call(env) + index_path = ::File.join($root, 'public', Rack::Request.new(env).path.split('/'), 'index.html') + if ::File.exists?(index_path) + return [200, {"Content-Type" => "text/html"}, [::File.read(index_path)]] + else + @app.call(env) + end + end + end +end + +use Rack::DirectoryIndex + +run Rack::Directory.new($root + '/public') + |