From: Minero Aoki Date: 2000-11-11T14:59:57+09:00 Subject: [ruby-talk:6267] Re: aliasing class methods Hi David, In mail "[ruby-talk:6264] aliasing class methods" David Alan Black wrote: > Hello -- > > Is there more compact way to alias class methods than this > (i.e., without the necessity of "class << self ... end")? This is a little "illegal" way, but usable: class T def T.a puts 'a called' end instance_eval "alias b a" end T.a #-> a called T.b #-> a called And we can make this code more compact by the following way: class Module def alias_class_method( new, old ) instance_eval "alias #{new.id2name} #{old.id2name}" # or "instance_eval { alias_method new, old }" end end class T alias_class_method :c, :a end T.c #-> a called > In a related vein: what functionality does alias_method add to alias? > I've been playing with both, and in cases where either works, both > seem to work (even if with slightly different syntax). In a word, "alias" is required to aliasing global variables. "alias_method" is required to using in method. Minero Aoki