>>>>> "M" == Minkoo Seo <minkoo.seo@gmail.com> writes:
M> Unfortunately, Marshal::dump does not allow me to add such instance
M> variables and raises an error if such one exists.
Use #marshal_dump, #marshal_load
moulon% cat b.rb
#!/usr/bin/ruby
require 'logger'
class A
attr_reader :a, :logger
def initialize
@a = 12
@logger = Logger.new(STDOUT)
end
def bar
@logger.info("info")
end
def marshal_dump
@a
end
def marshal_load(x)
@a = x
@logger = Logger.new(STDOUT)
end
end
a = A.new
b = Marshal.load(Marshal.dump(a))
p b.a, b.logger.class
moulon%
moulon% ./b.rb
12
Logger
moulon%
--
Guy Decoux