diff options
Diffstat (limited to 'config/middlewares')
| -rw-r--r-- | config/middlewares/cachesettings.rb | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/config/middlewares/cachesettings.rb b/config/middlewares/cachesettings.rb new file mode 100644 index 000000000..8a122891f --- /dev/null +++ b/config/middlewares/cachesettings.rb @@ -0,0 +1,20 @@ +class CacheSettings +  def initialize app, pat +    @app = app +    @pat = pat +  end + +  def call env +    res = @app.call(env) +    path = env["REQUEST_PATH"] +    @pat.each do |pattern,data| +      if path =~ pattern +        res[1]["Cache-Control"] = data[:cache_control] if data.has_key?(:cache_control) +        res[1]["Expires"] = (Time.now + data[:expires]).utc.rfc2822 if data.has_key?(:expires) +        res[1]["X-Custom-Cache-Control"] = "yes" if Rails.env.development? +        return res +      end +    end +    res +  end +end | 
