Sha256: c294f94744785386258ea136dd122ffc29f002d112f032165bdc18963237af4d
Contents?: true
Size: 1.88 KB
Versions: 5
Compression:
Stored size: 1.88 KB
Contents
# encoding: UTF-8 require 'sinatra/base' module Spontaneous module Rack module Front def self.front_app ::Rack::Builder.app do use AroundFront use Reloader if Site.config.reload_classes run Server.new end end def self.application app = ::Rack::Builder.new do # use ::Rack::CommonLogger, STDERR #unless server.name =~ /CGI/ # use ::Rack::ShowExceptions use Spontaneous::Rack::Static, :root => Spontaneous.revision_dir / "public", :urls => %w[/], :try => ['.html', 'index.html', '/index.html'] Spontaneous.instance.front_controllers.each do |namespace, controller_class| map namespace do run controller_class end end if Spontaneous.instance # Make all the files available under plugin_name/public/** # available under the URL /plugin_name/** # Only used in preview mode Spontaneous.instance.plugins.each do |plugin| map "/#{plugin.name}" do run ::Rack::File.new(plugin.paths.expanded(:public)) end end if Spontaneous.instance map "/rev" do run Spontaneous::Rack::CacheableFile.new(Spontaneous.revision_dir / "rev") end map "/media" do run Spontaneous::Rack::CacheableFile.new(Spontaneous.media_dir) end map "/" do run Spontaneous::Rack::Front.front_app end end end class Server < Sinatra::Base include Spontaneous::Rack::Public def call!(env) @env = env @response = ::Sinatra::Response.new @request = ::Sinatra::Request.new(env) @params = indifferent_params(@request.params) render_path(@request.path_info) end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems