29 lines
543 B
Ruby
29 lines
543 B
Ruby
|
require 'rack/cache'
|
||
|
|
||
|
module Locomotive
|
||
|
module Middlewares
|
||
|
class Cache
|
||
|
|
||
|
def initialize(app, opts = {}, &block)
|
||
|
url_format = Locomotive::Dragonfly.app.configuration[:url_format]
|
||
|
|
||
|
base_format = url_format.split('/:').first
|
||
|
|
||
|
@regexp = %r{^#{base_format}/}
|
||
|
@app = app
|
||
|
@context = ::Rack::Cache.new(app, opts, &block)
|
||
|
end
|
||
|
|
||
|
def call(env)
|
||
|
if env['PATH_INFO'] =~ @regexp
|
||
|
@context.call(env)
|
||
|
else
|
||
|
@app.call(env)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
end
|
||
|
end
|