On Mar 17, 2007, at 5:10 PM, hurcan solter wrote:
> Although I am a seasoned C/C++ programmer(+10 years), I am relatively
> new to the ruby (about 2 days) despite having some reservations(ruby
> debugger should be theslowest thing in the world) i am otherwise very
> impressed with the language, I intend to use Ruby for some code
> generation task ,Everything was going well until i hit that roadblock
>
> class REXML::Element
> include TSort
> def initialize
> @dependencies=[]
> end
> def tsort_each_node(&block)
> @elements.each(&block)
> end
> def tsort_each_child(node, &block)
> @dependencies.each(&block) if @dependencies.size>0
> end
> end
Just a guess but I suspect your problem is that you've effectively
thrown away the initialize method for REXML::Element and replaced it
with your own. I think you want:
alias __original_initialize initialize
def initialize(*args, &block)
__original_initialize(*args, &block)
@dependencies = []
end
This way you make sure the original version of initialize
executes as well as your new code.
Gary Wright