[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: Output lines to stdout for debug

Andrew Walrond

9/13/2003 2:14:00 PM

Thanks - perfect!

----- Original Message -----
From: "mark" <msparshatt@yahoo.co.uk>
To: "ruby-talk ML" <ruby-talk@ruby-lang.org>
Sent: Wednesday, September 03, 2003 2:11 PM
Subject: Re: Output lines to stdout for debug


> On Wednesday 03 Sep 2003 11:06 am, Andrew Walrond wrote:
> > Is there an easy way of getting each line of a ruby script to be written
to
> > stdout before being executed?
> > I currently use a wrapper function which takes the command as a string
and
> > puts()'s then eval()'s it, but thats very ugly.
> >
> > Any suggestions?
> >
>
> The following function will do the trick
>
> def trace_program(file)
> lines = File.readlines(file)
> set_trace_func proc do |event, file, line, *extra|
> puts lines[line - 1] if event == "line"
> end
> end
>
> This reads the file into an array then sets up a system hook to get the
line
> number of each line before it's executed, and prints the line from the
array.
>
> Then you do something like
>
> trace_program(__FILE__)
>
> puts "x"
> puts "y"
> puts "z"
>
> which outputs
> puts "x"
> x
> puts "y"
> y
> puts "z"
> z
>
> Though there is probably a more Rubyist way to do this.
>
> > Andrew Walrond
>
> Best Regards
>
> Mark Sparshatt
>