class Mongoo::IdentityMap

Public Class Methods

flush!() click to toggle source
# File lib/mongoo/identity_map.rb, line 56
def flush!
  if store
    Thread.current[:mongoo][:identity_map][:store] = {}
    true
  end
end
off!() click to toggle source
# File lib/mongoo/identity_map.rb, line 14
def off!
  @on = false
  if Thread.current[:mongoo]
    Thread.current[:mongoo][:identity_map] = nil
  end; true
end
off?() click to toggle source
# File lib/mongoo/identity_map.rb, line 21
def off?
  @on == false
end
on!() click to toggle source
# File lib/mongoo/identity_map.rb, line 6
def on!
  @on = true
end
on?() click to toggle source
# File lib/mongoo/identity_map.rb, line 10
def on?
  @on == true
end
read(id) click to toggle source
# File lib/mongoo/identity_map.rb, line 40
def read(id)
  if store
    if id.is_a?(BSON::ObjectId)
      store[id.to_s]
    elsif id.is_a?(Hash)
      store[(id[:_id] || id["_id"]).to_s]
    end
  end
end
simple_query?(query, opts) click to toggle source
# File lib/mongoo/identity_map.rb, line 32
def simple_query?(query, opts)
  return false if query.nil?
  return false unless opts.blank?
  return true if query.is_a?(BSON::ObjectId)
  return true if [[:_id], ["_id"]].include?(query.keys)
  false
end
store() click to toggle source
# File lib/mongoo/identity_map.rb, line 25
def store
  return nil unless on?
  Thread.current[:mongoo] ||= {}
  Thread.current[:mongoo][:identity_map] ||= {}
  Thread.current[:mongoo][:identity_map][:store] ||= {}
end
write(doc) click to toggle source
# File lib/mongoo/identity_map.rb, line 50
def write(doc)
  if store && !store.has_key?(doc.id.to_s)
    store[doc.id.to_s] = doc
  end
end