Class: Moneta::Adapters::MongoDB
- Inherits:
-
Object
- Object
- Moneta::Adapters::MongoDB
- Includes:
- Defaults
- Defined in:
- lib/moneta/adapters/mongodb.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #clear ⇒ Object
- #delete(key) ⇒ Object
-
#initialize(options = {}) ⇒ MongoDB
constructor
A new instance of MongoDB.
- #key?(key) ⇒ Boolean
- #store(key, value) ⇒ Object
Methods included from Defaults
Constructor Details
#initialize(options = {}) ⇒ MongoDB
Returns a new instance of MongoDB.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/moneta/adapters/mongodb.rb', line 16 def initialize( = {}) collection = .delete(:collection) || 'cache' if uri = .delete(:uri) db_name = URI.parse(uri).path.sub('/','') db_name ||= .delete :db conn = Mongo::Connection.from_uri uri, else = { :host => ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost', :port => ENV['MONGO_RUBY_DRIVER_PORT'] || Mongo::Connection::DEFAULT_PORT, :db => 'cache' }.update() host = .delete :host port = .delete :port db_name = .delete :db conn = Mongo::Connection.new(host, port, ) end db = conn.db db_name @cache = db.collection collection end |
Instance Method Details
#[](key) ⇒ Object
44 45 46 47 |
# File 'lib/moneta/adapters/mongodb.rb', line 44 def [](key) res = @cache.find_one('_id' => key_for(key)) res ? res['data'] : nil end |
#clear ⇒ Object
64 65 66 |
# File 'lib/moneta/adapters/mongodb.rb', line 64 def clear(*) @cache.remove end |
#delete(key) ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/moneta/adapters/mongodb.rb', line 49 def delete(key, *) string_key = key_for(key) value = self[key] @cache.remove('_id' => string_key) if value value end |
#key?(key) ⇒ Boolean
40 41 42 |
# File 'lib/moneta/adapters/mongodb.rb', line 40 def key?(key, *) !!self[key] end |
#store(key, value) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/moneta/adapters/mongodb.rb', line 57 def store(key, value, *) key = key_for(key) @cache.update({ '_id' => key }, { '_id' => key, 'data' => value }, { :upsert => true }) end |