def initialize(options = {})
self.default_expires = options.delete(:expires)
collection = options.delete(:collection) || 'moneta'
db = options.delete(:db) || 'moneta'
@expires_field = options.delete(:expires_field) || 'expiresAt'
@value_field = options.delete(:value_field) || 'value'
@type_field = options.delete(:type_field) || 'type'
@backend = options[:backend] ||
begin
host = options.delete(:host) || '127.0.0.1'
port = options.delete(:port) || ::Mongo::MongoClient::DEFAULT_PORT
user = options.delete(:user)
password = options.delete(:password)
::Mongo::MongoClient.new(host, port, options)
end
db = @backend.db(db)
db.authenticate(user, password, true) if user && password
@collection = db.collection(collection)
if @backend.server_version >= '2.2'
@collection.ensure_index([[@expires_field, ::Mongo::ASCENDING]], :expireAfterSeconds => 0)
else
warn 'Moneta::Adapters::Mongo - You are using MongoDB version < 2.2, expired documents will not be deleted'
end
end