class SequelMapper::DirtyMap
Attributes
storage[R]
Public Class Methods
new(storage)
click to toggle source
# File lib/sequel_mapper/dirty_map.rb, line 3 def initialize(storage) @storage = storage end
Public Instance Methods
dirty?(record)
click to toggle source
# File lib/sequel_mapper/dirty_map.rb, line 15 def dirty?(record) record_as_loaded = storage.fetch(hash_key(record), :not_found) record != record_as_loaded end
load(record)
click to toggle source
# File lib/sequel_mapper/dirty_map.rb, line 10 def load(record) storage.store(hash_key(record), deep_clone(record)) record end
Private Instance Methods
deep_clone(record)
click to toggle source
# File lib/sequel_mapper/dirty_map.rb, line 27 def deep_clone(record) Marshal.load(Marshal.dump(record)) end
hash_key(record)
click to toggle source
# File lib/sequel_mapper/dirty_map.rb, line 23 def hash_key(record) deep_clone([record.namespace, record.identity]) end