From: "Eric I." Date: 2008-08-23T00:56:11+09:00 Subject: Re: temporarily redefine the 'puts' command? On Aug 22, 10:57 am, aidy wrote: > Is it possible to temporarily redefine the 'puts' command? > > I have a gem that unnecessarily writes to the console, which effects > the Rspec Story Runner logging, > > I do not want to manual comment out the puts as I use this gem on > numerous machines Hi Aidy, Here's some code, which should work for you. Of course you'll have to answer the questions as where to put the methods puts_on and puts_off (or whatever you decide to name them). ==== # replaces Kernel#puts w/ do-nothing method def puts_off Kernel.module_eval %q{ def puts(*args) end } end # restores Kernel#puts to its original definition def puts_on Kernel.module_eval %q{ def puts(*args) $stdout.puts(*args) end } end puts "You can see me." puts_off puts "But I'm hidden." puts_on puts "But I'm viewable once again." ==== Eric ==== Interested in hands-on, on-site Ruby or Ruby on Rails training? See http://LearnRuby.com for information about a well-reviewed courses.