Sha256: 075222069f96314898512ab804771dcdec746c18dd5d84949d1bfc2cef697168
Contents?: true
Size: 974 Bytes
Versions: 7
Compression:
Stored size: 974 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 # class Clean end # class PersistenceState end # module Resource end # module DataMapper
Version data entries
7 entries across 7 versions & 3 rubygems