# 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