Sha256: 78e714f0cc6b8f0e31c31b1055c724ef6dec8e4cec81461a953869a01b8a30e9

Contents?: true

Size: 1.04 KB

Versions: 181

Compression:

Stored size: 1.04 KB

Contents

require "rack/cache"
require "rack/cache/context"
require "active_support/cache"

module ActionDispatch
  class RailsMetaStore < Rack::Cache::MetaStore
    def self.resolve(uri)
      new
    end

    def initialize(store = Rails.cache)
      @store = store
    end

    def read(key)
      if data = @store.read(key)
        Marshal.load(data)
      else
        []
      end
    end

    def write(key, value)
      @store.write(key, Marshal.dump(value))
    end

    ::Rack::Cache::MetaStore::RAILS = self
  end

  class RailsEntityStore < Rack::Cache::EntityStore
    def self.resolve(uri)
      new
    end

    def initialize(store = Rails.cache)
      @store = store
    end

    def exist?(key)
      @store.exist?(key)
    end

    def open(key)
      @store.read(key)
    end

    def read(key)
      body = open(key)
      body.join if body
    end

    def write(body)
      buf = []
      key, size = slurp(body) { |part| buf << part }
      @store.write(key, buf)
      [key, size]
    end

    ::Rack::Cache::EntityStore::RAILS = self
  end
end

Version data entries

181 entries across 176 versions & 12 rubygems

Version Path
actionpack-4.2.11.3 lib/action_dispatch/http/rack_cache.rb
actionpack-4.2.11.2 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.7 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.7.rc1 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.6.2 lib/action_dispatch/http/rack_cache.rb
actionpack-5.0.7.2 lib/action_dispatch/http/rack_cache.rb
actionpack-4.2.11.1 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.6.1 lib/action_dispatch/http/rack_cache.rb
actionpack-5.0.7.1 lib/action_dispatch/http/rack_cache.rb
actionpack-4.2.11 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.6 lib/action_dispatch/http/rack_cache.rb
actionpack-5.0.7 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.5 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.5.rc1 lib/action_dispatch/http/rack_cache.rb
actionpack-4.2.10 lib/action_dispatch/http/rack_cache.rb
actionpack-4.2.10.rc1 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.4 lib/action_dispatch/http/rack_cache.rb
actionpack-5.0.6 lib/action_dispatch/http/rack_cache.rb
actionpack-5.1.4.rc1 lib/action_dispatch/http/rack_cache.rb
actionpack-5.0.6.rc1 lib/action_dispatch/http/rack_cache.rb