From: Zach Dennis Date: 2005-07-18T07:11:48+09:00 Subject: Re: alias of some methods does not work gga wrote: > irb(main):006:0> module Kernel > irb(main):007:1> alias :_methods :methods > irb(main):008:1> end > > is all OK. > > Yet: > irb(main):001:0> module Kernel > irb(main):002:1> alias :_instance_methods :instance_methods > irb(main):003:1> end > NameError: undefined method `instance_methods' for module `Kernel' > from (irb):2 > from :0 > irb(main):004:0> Kernel.instance_methods > => ["freeze", "__id__", "singleton_methods", ...] > > Is this by design or a bug? Why can't I alias any of the following: > # alias :_constants :constants > # alias :_instance_methods :instance_methods > # alias :_public_instance_methods :public_instance_methods > # alias :_protected_instance_methods :protected_instance_methods > # alias :_private_instance_methods :private_instance_methods > ? Because those don't belong to Kernel. They belong to the class Module... irb(main):015:0> class Module irb(main):016:1> alias :meths :instance_methods irb(main):017:1> end => nil irb(main):018:0> Module.meths => ["send", "name", "class_eval", "object_id", "...etc.... Zach