Forwarded solution from Paolo Bonzini: > Date: March 2, 2008 8:26:21 AM EST > Subject: Re: Hello, world? (#158) > > Hi, I write privately because when the 48 hours have passed I'll > probably be asleep. Here's my solution, inspired by the recent thread > on monkeypatching. It makes all messages printed more happy and > interesting by capitalizing them and adding an exclamation mark at the > end. > > It's a pity that Kernel#puts reimplements $stdout.puts instead of just > delegating it. Of course, I fixed that with another monkeypatch. > > class IO > alias_method :orig_puts, :puts > def puts *args > args = [""] if args.length == 0 > args.each do |x| > if x.class == Array > puts *x > else > x = x.gsub(/[^!]$/) { |final| final + "!" } > x = x.gsub(/\w+/) { |w| w.capitalize } > orig_puts x > end > end > end > end > > class << self > def puts *args > $stdout.puts *args > end > end > > puts "hello, world"