# File lib/ruote/storage/hash_storage.rb, line 58
    def put(doc, opts={})

      synchronize do

        pre = get(doc['type'], doc['_id'])

        if pre && pre['_rev'] != doc['_rev']
          return pre
        end

        if pre.nil? && doc['_rev']
          return true
        end

        doc = if opts[:update_rev]
          doc.merge!('_rev' => pre ? pre['_rev'] : -1)
        else
          doc.merge('_rev' => doc['_rev'] || -1)
        end

        doc['put_at'] = Ruote.now_to_utc_s
        doc['_rev'] = doc['_rev'] + 1
        doc = Ruote.keys_to_s(doc)

        @h[doc['type']][doc['_id']] = Rufus::Json.dup(doc)

        nil
      end

    #rescue => e
    #  puts "=" * 80
    #  File.open('doc.json', 'wb') do |f|
    #    f.puts Rufus::Json.pretty_encode(doc)
    #  end
    #  raise e
    end