Sha256: 6e69ea10f52531e86781b3b3e199d5f1a7b2de301e8768d25b4ef6f42abbbff2

Contents?: true

Size: 674 Bytes

Versions: 4

Compression:

Stored size: 674 Bytes

Contents

module DataMapper
  class Property
    class Object < Property
      load_as ::Object
      dump_as ::Object

      # @api semipublic
      def dump(value)
        instance_of?(Object) ? marshal(value) : value
      end

      # @api semipublic
      def load(value)
        typecast(instance_of?(Object) ? unmarshal(value) : value)
      end

      # @api semipublic
      def marshal(value)
        [Marshal.dump(value)].pack('m') unless value.nil?
      end

      # @api semipublic
      def unmarshal(value)
        Marshal.load(value.unpack1('m')) unless value.nil?
      end

      # @api private
      def to_child_key
        self.class
      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/property/object.rb
sbf-dm-core-1.4.0 lib/dm-core/property/object.rb
sbf-dm-core-1.3.0 lib/dm-core/property/object.rb
sbf-dm-core-1.3.0.beta lib/dm-core/property/object.rb