Sha256: 1d2e6f6fe297b8d18c6ab56c05ddd636dc2a7eb0164e6c72cb240be3f67b2cbe

Contents?: true

Size: 736 Bytes

Versions: 4

Compression:

Stored size: 736 Bytes

Contents

module DataMapper
  module Resource
    class PersistenceState
      # a not-persisted/unmodifiable resource
      class Immutable < PersistenceState
        def get(subject, *args)
          unless subject.loaded?(resource) || subject.is_a?(Associations::Relationship)
            raise ImmutableError, 'Immutable resource cannot be lazy loaded'
          end

          super
        end

        def set(_subject, _value)
          raise ImmutableError, 'Immutable resource cannot be modified'
        end

        def delete
          raise ImmutableError, 'Immutable resource cannot be deleted'
        end

        def commit
          self
        end

        def rollback
          self
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sbf-dm-core-1.5.0 lib/dm-core/resource/persistence_state/immutable.rb
sbf-dm-core-1.4.0 lib/dm-core/resource/persistence_state/immutable.rb
sbf-dm-core-1.3.0 lib/dm-core/resource/persistence_state/immutable.rb
sbf-dm-core-1.3.0.beta lib/dm-core/resource/persistence_state/immutable.rb