Class: Object

Inherits:
BasicObject
Defined in:
lib/cuboid/ruby/object.rb

Overview

Overloads the Object class providing a #deep_clone method.

Author:

Instance Method Summary collapse

Instance Method Details

#deep_cloneObject

Deep-clones self using a Marshal dump-load.

Returns:

  • (Object)

    Duplicate of self.



10
11
12
# File 'lib/cuboid/ruby/object.rb', line 10

def deep_clone
    Marshal.load( Marshal.dump( self ) )
end

#rpc_cloneObject



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/cuboid/ruby/object.rb', line 14

def rpc_clone
    if self.class.respond_to?( :from_rpc_data )
        self.class.from_rpc_data(
            Cuboid::RPC::Serializer.serializer.load(
                Cuboid::RPC::Serializer.serializer.dump( to_rpc_data )
            )
        )
    else
        Cuboid::RPC::Serializer.serializer.load(
            Cuboid::RPC::Serializer.serializer.dump( self )
        )
    end
end

#to_rpc_data_or_selfObject



28
29
30
# File 'lib/cuboid/ruby/object.rb', line 28

def to_rpc_data_or_self
    respond_to?( :to_rpc_data ) ? to_rpc_data : self
end