Sha256: c3208ea6e7bf430b8c1b2e467180fd0d0887b54f19c757f02935d9c96e22bfc8

Contents?: true

Size: 787 Bytes

Versions: 10

Compression:

Stored size: 787 Bytes

Contents

module DataMapper
  module Resource
    class State

      # a not-persisted/unmodifiable resource
      class Immutable < State
        def get(subject, *args)
          unless subject.loaded?(resource) || subject.kind_of?(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 # class Immutable
    end # class State
  end # module Resource
end # module DataMapper

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
dm-core-1.1.0 lib/dm-core/resource/state/immutable.rb
dm-core-1.1.0.rc3 lib/dm-core/resource/state/immutable.rb
dm-core-1.1.0.rc2 lib/dm-core/resource/state/immutable.rb
dm-core-1.1.0.rc1 lib/dm-core/resource/state/immutable.rb
dm-core-1.0.2 lib/dm-core/resource/state/immutable.rb
dm-core-1.0.1 lib/dm-core/resource/state/immutable.rb
dm-core-1.0.0 lib/dm-core/resource/state/immutable.rb
dm-core-1.0.0.rc3 lib/dm-core/resource/state/immutable.rb
dm-core-1.0.0.rc2 lib/dm-core/resource/state/immutable.rb
dm-core-1.0.0.rc1 lib/dm-core/resource/state/immutable.rb