# File lib/ruote/storage/hash_storage.rb, line 52 def put (doc, opts={}) i = @h.size synchronize do pre = get(doc['type'], doc['_id']) #if pre && ( ! opts[:update_rev]) && pre['_rev'] != doc['_rev'] if pre && pre['_rev'] != doc['_rev'] return pre end if pre.nil? && doc['_rev'] return true end doc = if opts[:update_rev] doc['_rev'] = pre ? pre['_rev'] : -1 doc else doc.merge('_rev' => doc['_rev'] || -1) end doc['put_at'] = Ruote.now_to_utc_s doc['_rev'] = doc['_rev'] + 1 @h[doc['type']][doc['_id']] = Rufus::Json.dup(doc) nil end end