aboutsummaryrefslogtreecommitdiff
path: root/config.ru
diff options
context:
space:
mode:
Diffstat (limited to 'config.ru')
-rw-r--r--config.ru35
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')
+