Sha256: 120ba13890d33bbf92c8ec0045611a4da904a55db7730e56ac6e132eda152362

Contents?: true

Size: 723 Bytes

Versions: 142

Compression:

Stored size: 723 Bytes

Contents

require 'digest/md5'
require 'fileutils'
require 'pathname'

module Sprockets
  module Cache
    # A simple file system cache store.
    #
    #     environment.cache = Sprockets::Cache::FileStore.new("/tmp")
    #
    class FileStore
      def initialize(root)
        @root = Pathname.new(root)
      end

      # Lookup value in cache
      def [](key)
        pathname = @root.join(key)
        pathname.exist? ? pathname.open('rb') { |f| Marshal.load(f) } : nil
      end

      # Save value to cache
      def []=(key, value)
        # Ensure directory exists
        FileUtils.mkdir_p @root.join(key).dirname

        @root.join(key).open('w') { |f| Marshal.dump(value, f)}
        value
      end
    end
  end
end

Version data entries

142 entries across 117 versions & 21 rubygems

Version Path
sprockets-2.12.5 lib/sprockets/cache/file_store.rb
arcabouco-0.2.13 vendor/bundle/gems/sprockets-2.12.4/lib/sprockets/cache/file_store.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/sprockets-2.12.4/lib/sprockets/cache/file_store.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/sprockets-2.12.3/lib/sprockets/cache/file_store.rb
sprockets-2.12.4 lib/sprockets/cache/file_store.rb
active_mailer-0.0.10 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/sprockets-2.2.2/lib/sprockets/cache/file_store.rb
judge-2.0.5 vendor/bundle/ruby/2.1.0/gems/sprockets-2.2.2/lib/sprockets/cache/file_store.rb
sprockets-2.12.3 lib/sprockets/cache/file_store.rb
sprockets-2.11.3 lib/sprockets/cache/file_store.rb
sprockets-2.10.2 lib/sprockets/cache/file_store.rb
sprockets-2.9.4 lib/sprockets/cache/file_store.rb
sprockets-2.8.3 lib/sprockets/cache/file_store.rb
sprockets-2.7.1 lib/sprockets/cache/file_store.rb
sprockets-2.6.1 lib/sprockets/cache/file_store.rb
sprockets-2.5.1 lib/sprockets/cache/file_store.rb
sprockets-2.4.6 lib/sprockets/cache/file_store.rb
sprockets-2.3.3 lib/sprockets/cache/file_store.rb
sprockets-2.2.3 lib/sprockets/cache/file_store.rb
sprockets-2.1.4 lib/sprockets/cache/file_store.rb
sprockets-2.12.2 lib/sprockets/cache/file_store.rb