module Croesus::IdentityMap::ClassMethods

Public Instance Methods

get(id, options = nil) click to toggle source
Calls superclass method
# File lib/croesus/identity_map.rb, line 64
def get(id, options = nil)
  get_from_identity_map(id) || super
end
load(id, attrs) click to toggle source
Calls superclass method
# File lib/croesus/identity_map.rb, line 73
def load(id, attrs)
  if IdentityMap.enabled? && instance = IdentityMap.repository[id]
    instance
  else
    super.tap { |doc| doc.add_to_identity_map }
  end
end

Private Instance Methods

get_from_identity_map(id) click to toggle source
# File lib/croesus/identity_map.rb, line 68
def get_from_identity_map(id)
  IdentityMap.repository[id] if IdentityMap.enabled?
end