Class: Rango::Middlewares::Static
- Inherits:
-
Object
- Object
- Rango::Middlewares::Static
- Defined in:
- lib/rango/rack/middlewares/static.rb
Constant Summary collapse
- FILE_METHODS =
%w(GET HEAD).freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Static
constructor
A new instance of Static.
Constructor Details
#initialize(app) ⇒ Static
Returns a new instance of Static.
12 13 14 15 |
# File 'lib/rango/rack/middlewares/static.rb', line 12 def initialize(app) @app = app @file_server = ::Rack::File.new(Rango.media_root) end |
Instance Method Details
#call(env) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rango/rack/middlewares/static.rb', line 18 def call(env) path = env['PATH_INFO'].chomp('/') method = env['REQUEST_METHOD'] prefix = Rango::Middlewares::Basic.media_prefix.chomp("/") prefix_regexp = Regexp.new(%r[^#{prefix}/]) if path.match(prefix_regexp) && FILE_METHODS.include?(method) if file_exist?(path) return @file_server.call(env) # else # cached_path = directory_exist?(path) ? "#{path}/index" : path # cached_path += ::ActionController::Base.page_cache_extension # # if file_exist?(cached_path) # env['PATH_INFO'] = cached_path # return @file_server.call(env) # end end end @app.call(env) end |