[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Fwd: Hello, world? (#158

Matthew Moss

3/3/2008 2:54:00 AM

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"