Sha256: e4bfd597b309b861ab91c5b7081c2a93c0148ad64641f6b2b601b11d26ef5314
Contents?: true
Size: 888 Bytes
Versions: 4
Compression:
Stored size: 888 Bytes
Contents
module DataMapper module Resource class PersistenceState # a persisted/unmodified resource class Clean < Persisted def set(subject, value) if not_modified?(subject, value) self else # assign to persistence_state so that if Dirty#set calls # a Relationship#set, which modifies a Property, the same # Dirty state instance will be reused. state = resource.persistence_state = Dirty.new(resource) state.set(subject, value) end end def delete Deleted.new(resource) end def commit self end def rollback self end private def not_modified?(subject, value) subject.loaded?(resource) && subject.get!(resource).eql?(value) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems