From: Trans Date: 2007-06-19T02:48:30+09:00 Subject: Means of Optional Expression Have a look at this. Note that I'm not bothering to implement the #shuffle method as it is not the point --it's just an foo example. module Kernel def express(name) extend self.class.const_get(name.to_s.capitalize) end end class Array module Random def shuffle [] # ... end def shuffle! replace(shuffle) end # ... end end a = [1,2,3] a.shuffle #=> NoMethodError a.express(:Random) a.shuffle #=> [] T.