Norman Elton wrote:
> I know I can use marshal_dump and marshal_load, but then I've got to do
> all the serialization myself. The Marshal class does a good job of this,
> I just want to clean things up a bit before the Marshal code takes over.
No, you don't need to make the serialization with
marshal_load/marshal_dump, here an example
vgs% cat b.rb
#!/usr/bin/ruby
require 'socket'
class A
def initialize
@a = UDPSocket.new
@b = {1 => 2}
@c = [3, 4]
end
def marshal_dump
[@b, @c]
end
def marshal_load(x)
@a = UDPSocket.new
@b, @c = x
end
end
p Marshal.load(Marshal.dump(A.new))
vgs%
vgs% ./b.rb
#<A:0xb7ca06cc @c=[3, 4], @b={1=>2}, @a=#<UDPSocket:0xb7ca0668>>
vgs%
Guy Decoux