From: Jano Svitok Date: 2007-04-18T00:19:23+09:00 Subject: How to redefine puts in .rbw files (I'm ccing ruby-talk so that you might get more answers) From http://rubyforge.org/tracker/?func=detail&atid=715&aid=9018&group_id=167 Date: 2007-04-17 17:09 Sender: M Jessick What is the ruby-ish way to protect any stray "puts" calls leftover in a .rb fle that you want to run as .rbw? For example, I develop in in a .rb file, then run it .rbw. If I leave in a puts call it throws. Rather than go through and comment them all out (or worse, wrap them all in begin rescue end blocks ;), I would prefer them to be ignored through some magic. Is there a slick ruby way to do this? e.g.: overload puts and call the system puts within the overload within a begin rescue end. For example: begin puts "puts call that used to be ignored but now raises an exception in rubyw.exe since sometime in 2006" rescue SystemCallError end would solve the problem, but if I was smart enough to do this everywhere, I would probably know how to do this most conveniently in ruby ;) Try: module Kernel alias_method :orig_puts, :puts def puts(*args) orig_puts *args if $stdout end end (not tested) Jano