[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

irb practice. Autoloading files

Andreas S

2/12/2008 9:17:00 AM


I often found my self retyping a lot of lines when experimenting or testing=
in irb after making some changes. I suppose I should be able to avoid it w=
ith a better planning, but...

Anyhow, I wrote a function in my .irbrc that reloads the listed file and it=
s dependencies so that I can work on my text editor (btw, I'm using vim) an=
d have irb automatically rerun my script after I made my changes (in the sp=
irit of Zen test's autotest). Something like this:

def auto_load main, *dependencies
Thread.new do
main_mtime =3D File.mtime main; load main
dep_mtime =3D {}
dependencies.each {|f| dep_mtime[f] =3D File.mtime f; load f }
loop do
change =3D false
dependencies.each do |f|
if (t =3D File.mtime f) > dep_mtime[f]
change =3D true; dep_mtime[f] =3D t; load f
end
end
if (t =3D File.mtime main) > main_mtime or change
main_mtime =3D t; load main
end
sleep 1
end.run
end

It's rather crude, perhaps even a clumsy irb practice. I thought maybe othe=
r people have the same need and probably with a better solution. Does anybo=
dy have a suggestion for a better solution or a better practice when experi=
menting or testing with irb? Is there a ruby gem that would be helpful?

You may say "what's wrong with writing in test.rb and retyping load 'test.r=
b' after making changes?". Well, it's kind of nice to automate that, plus i=
f the change is in one of the 'require'd files, I need to re'load' that.

-andre

_________________________________________________________________
Connect and share in new ways with Windows Live.
http://www.windowslive.com/share.html?ocid=3DTXT_TAGHM_Wave2_share...
08=

2 Answers

7stud --

2/12/2008 12:08:00 PM

0

Andreas S wrote:
> I often found my self retyping a lot of lines when experimenting or
> testing in irb after making some changes.

So why not just never use irb? Instead, open up vim to my_tests.rb and
write all the practice code you want. It will still be there after you
run the program.
--
Posted via http://www.ruby-....

Fredrik

3/11/2008 5:43:00 AM

0

> You may say "what's wrong with writing in test.rb and retyping load 'test.rb' after making changes?". Well, it's kind of nice to automate that, plus if the change is in one of the 'require'd files, I need to re'load' that.
>

Thanks a lot for this code! I started thinking the same as you - why
do I have to manually reload the file I changed? (yes, irb has a
history that can be accessed by pressing the up arrow key or searched
by Ctrl-R, but it is none the less manual labor). Perhaps there is a
more beatiful solution to this, but until I find that I will use your
solution! Thanks!

Best regards,
Fredrik