From: Luis Lavena Date: 2008-11-16T00:16:53+09:00 Subject: Re: Ruby equivalent for Lua first-class functions? On Nov 15, 12:12 pm, Dolazy wrote: > I think one of Lua's nice features is that all functions are first- > class functions. That makes it possible to override behavior like > this: > > -- Sample stolen from Wikipedia > local oldprint = print           -- Store current print function as > oldprint > print = function(s)              -- Redefine print function >   if s == "foo" then >     oldprint("bar") >   else >     oldprint(s) >   end > end > > How would you write the above sample using Ruby? > > Grtz, > Francis module Kernel alias_method :old_print, :print def my_print(*args) old_print "bar" end alias_method :print, :my_print end irb(main):017:0> print "hey" bar => nil There are several approaches to achieve the same, that's the beauty or the curse of Ruby :-) As more complex example, you can check how rubygems replace 'require' functionality to be able to pick code outside the default $LOAD_PATH. HTH, -- Luis Lavena