module Dynamoid::IdentityMap

Public Class Methods

clear() click to toggle source
# File lib/dynamoid/identity_map.rb, line 5
def self.clear
  models.each { |m| m.identity_map.clear }
end
models() click to toggle source
# File lib/dynamoid/identity_map.rb, line 9
def self.models
  Dynamoid::Config.included_models
end

Public Instance Methods

delete() click to toggle source
Calls superclass method
# File lib/dynamoid/identity_map.rb, line 80
def delete
  return super if self.class.identity_map_off?

  identity_map.delete(identity_map_key)
  super
end
identity_map() click to toggle source
# File lib/dynamoid/identity_map.rb, line 67
def identity_map
  self.class.identity_map
end
identity_map_key() click to toggle source
# File lib/dynamoid/identity_map.rb, line 88
def identity_map_key
  key = hash_key.to_s
  if self.class.range_key
    key += "::#{range_value}"
  end
  key
end
save(*args) click to toggle source
Calls superclass method
# File lib/dynamoid/identity_map.rb, line 71
def save(*args)
  return super if self.class.identity_map_off?

  if result = super
    identity_map[identity_map_key] = self
  end
  result
end