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 rescue '/images/dynamic'

        @app      = app
        @regexp   = %r{^#{base_format}/}
        @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