Sha256: 1a06b3c8066c52a8941466aa51a03302ada9cf1d2b413711bd771aebdf7c3a38

Contents?: true

Size: 596 Bytes

Versions: 4

Compression:

Stored size: 596 Bytes

Contents

module DataMapper
  class Property
    class Object < Property
      primitive ::Object

      # @api semipublic
      def dump(value)
        return value if value.nil?

        if @type
          @type.dump(value, self)
        else
          [ Marshal.dump(value) ].pack('m')
        end
      end

      # @api semipublic
      def load(value)
        if @type
          return @type.load(value, self)
        end

        case value
          when ::String
            Marshal.load(value.unpack('m').first)
          when ::Object
            value
          end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dm-core-1.0.0 lib/dm-core/property/object.rb
dm-core-1.0.0.rc3 lib/dm-core/property/object.rb
dm-core-1.0.0.rc2 lib/dm-core/property/object.rb
dm-core-1.0.0.rc1 lib/dm-core/property/object.rb