Singleton methods are contained in this singleton class object:
class Object def define_singleton_alias(new_name, old_name) singleton_class.class_eval do alias_method new_name, old_name end end end rob = 'Rob' bob = 'Bob' bob.define_singleton_alias :add_cuteness, :+ bob.add_cuteness 'by'
Object#define_singleton_method basically does something like this:
def define_singleton_method(name, &block) singleton_class.class_eval do define_method name, &block end end
source share