Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 58f3674ffb
Fetching contributors…

Cannot retrieve contributors at this time

file 31 lines (25 sloc) 0.582 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
require 'adapter'
require 'mongo'

module Adapter
  module Mongo
    def read(key)
      if doc = client.find_one('_id' => key_for(key))
        decode(doc)
      end
    end

    def write(key, value)
      client.save({'_id' => key_for(key)}.merge(encode(value)), {:safe => options[:safe]})
    end

    def delete(key)
      read(key).tap { client.remove({'_id' => key_for(key)}, {:safe => options[:safe]}) }
    end

    def clear
      client.remove
    end

    def decode(value)
      value.delete('_id')
      value
    end
  end
end

Adapter.define(:mongo, Adapter::Mongo)
Something went wrong with that request. Please try again.