REXML inheritance confusion (simple q?)

So I created my own subclass of REXML::Document. Like this:

#begin example
class MyDoc < REXML::Document
   def initialize ()
     @tree = super("<docc></docc>")
     puts @tree.class
     @name = tree.root.add_element("test")
end
#end example

The above results in "undefined method `root' for nil:NilClass (NoMethodError)"

Also trying 'super.new("<docc></docc>")' doesnt work.

I can get it working by writing @tree = REXML::Document("<docc></docc>"), but then my nice class will only be a container, not a subclass.

How can I actually get it working? Ie. get my very own subclass of REXML::Document with my very own initialize.

Yes, its a foggy day and inheritance seems to escape me...

Csmr

Casimir wrote:

So I created my own subclass of REXML::Document. Like this:

#begin example
class MyDoc < REXML::Document
   def initialize ()
     @tree = super("<docc></docc>")
     puts @tree.class
     @name = tree.root.add_element("test")
end
#end example

The above results in "undefined method `root' for nil:NilClass
(NoMethodError)"

Also trying 'super.new("<docc></docc>")' doesnt work.

I can get it working by writing @tree =
REXML::Document("<docc></docc>"), but then my nice class will only be a
container, not a subclass.

How can I actually get it working? Ie. get my very own subclass of
REXML::Document with my very own initialize.

Yes, its a foggy day and inheritance seems to escape me...

Csmr

try this:

-----BEGIN PROGRAM-----
require 'rexml/document'

xml =<<END_DOC
  <docc></docc>
END_DOC

class MyDoc < REXML::Document
   def initialize (fnm)
    super(fnm)
     puts "from initialize: #{self.class}"
     @name = self.root.add_element("test")
end
end

m_doc = MyDoc.new(xml)
puts m_doc.root
-----END PROGRAM-----

···

--
Posted via http://www.ruby-forum.com/\.