Ruby Forum Ruby > Marshal/Serialization Question

Posted by Bryan Richardson (btrichardson)
on 19.08.2008 23:42
Hello all,

I'm trying to Marshal some Ruby objects to file and I have a question
about parent classes.  Say I have the following:

class Device
  @@id         = 0
  @@id_map     = Hash.new
  @@device_map = Hash.new

  def initialize(*args)
    id               = @@id += 1
    @@id_map[self]   = id
    @@device_map[id] = self
  end

  def self.id(device)
    return @@id_map[device]
  end

  def self.device(id)
    return @@device_map[id]
  end
end

class Foo < Device
  def initialize
    super
  end
end

Now, if I create a Foo class, dump it to file and then load it again
using Marshal, should I be able to use the id and device methods in the
parent class or will the class variables not be dumped and loaded?

--
Thanks!
Bryan
Posted by Robert Klemme (Guest)
on 20.08.2008 07:30
(Received via mailing list)
On 19.08.2008 23:38, Bryan Richardson wrote:
>   def initialize(*args)
>     return @@device_map[id]
> using Marshal, should I be able to use the id and device methods in the
> parent class or will the class variables not be dumped and loaded?

Try it out.  I'd say, most likely they are not dumped as classes are not
serialized IIRC.  Class variables are evil anyway... :-)

Kind regards

  robert