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