class Sprockets::Cache::MongoDBStore
A simple MongoDB
cache store.
environment.cache = Sprockets::Cache::MongoDBStore.new($mongo)
Public Class Methods
new(mongo_conn, db_name = 'sprockets')
click to toggle source
# File lib/sprockets-cache-mongodb/mongodb_store.rb, line 9 def initialize(mongo_conn, db_name = 'sprockets') @mongo = ::Mongo::Grid.new( mongo_conn.db(db_name) ) end
Public Instance Methods
[](key)
click to toggle source
Lookup value in cache
# File lib/sprockets-cache-mongodb/mongodb_store.rb, line 14 def [](key) sanitized_key = sanitize_key(key) return unless @mongo.exist?(:filename => sanitized_key) object = @mongo.get sanitized_key data = object.read Marshal.load data if data end
[]=(key, value)
click to toggle source
Save value to cache
# File lib/sprockets-cache-mongodb/mongodb_store.rb, line 23 def []=(key, value) @mongo.put Marshal.dump(value), :_id => sanitize_key(key), :filename => sanitize_key(key), :content_type => "application/x-ruby-marshal" value end
Private Instance Methods
sanitize_key(key)
click to toggle source
# File lib/sprockets-cache-mongodb/mongodb_store.rb, line 33 def sanitize_key(key) ::Digest::SHA1.hexdigest key end