Module: Dynamoid::IdentityMap

Extended by:
ActiveSupport::Concern
Included in:
Components
Defined in:
lib/dynamoid/identity_map.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.clearObject


7
8
9
# File 'lib/dynamoid/identity_map.rb', line 7

def self.clear
  Dynamoid.included_models.each { |m| m.identity_map.clear }
end

Instance Method Details

#deleteObject


77
78
79
80
81
82
# File 'lib/dynamoid/identity_map.rb', line 77

def delete
  return super if self.class.identity_map_off?

  identity_map.delete(identity_map_key)
  super
end

#identity_mapObject


62
63
64
# File 'lib/dynamoid/identity_map.rb', line 62

def identity_map
  self.class.identity_map
end

#identity_map_keyObject


85
86
87
88
89
# File 'lib/dynamoid/identity_map.rb', line 85

def identity_map_key
  key = hash_key.to_s
  key += "::#{range_value}" if self.class.range_key
  key
end

#save(*args) ⇒ Object


67
68
69
70
71
72
73
74
# File 'lib/dynamoid/identity_map.rb', line 67

def save(*args)
  return super if self.class.identity_map_off?

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