Sha256: c9194507c02b64d2164c662359de5846bdf908787cbaa4c5fb755a6b53ca6427
Contents?: true
Size: 1.1 KB
Versions: 3
Compression:
Stored size: 1.1 KB
Contents
module Frank module Middleware class Statik def initialize(app, options={}) @app = app frank_root = File.expand_path(File.dirname(File.dirname(__FILE__))) + '/templates' root = options[:root] || Dir.pwd @frank_server = Rack::File.new(frank_root) @static_server = Rack::File.new(root) end # handles serving from __frank__ # looks for static access, if not found, # passes request to frank def call(env) path = env['PATH_INFO'].dup if path.include? '__frank__' env['PATH_INFO'].gsub!('/__frank__', '') result = @frank_server.call(env) else env['PATH_INFO'] << '/' unless path.match(/(\.\w+|\/)$/) env['PATH_INFO'] << 'index.html' if path[-1..-1] == '/' result = @static_server.call(env) end # return if static assets found # else reset the path and pass to frank if result[0] == 200 || result[0] == 304 result else env['PATH_INFO'] = path @app.call(env) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
frank-1.0.12 | lib/frank/middleware/statik.rb |
frank-1.0.11 | lib/frank/middleware/statik.rb |
frank-1.0.10 | lib/frank/middleware/statik.rb |