From: Love U Ruby Date: 2013-03-16T19:30:40+09:00 Subject: Re: confusion with singleton method call Why the `singleton` methods can't be defined on `Fixnum`,`Bignum`,`Float`,`Symbol` class objects, but ` FalseClass` and `TrueClass` can have? C:\>ruby -v ruby 2.0.0p0 (2013-02-24) [i386-mingw32] C:\>irb --simple-prompt DL is deprecated, please use Fiddle 11111111111.class #=> Bignum # class << 11111111111 ; end #TypeError: can't define singleton # from (irb):2 # from C:/Ruby200/bin/irb:12:in `
' 1111.class #=> Fixnum class << 1111 ; end #TypeError: can't define singleton # from (irb):4 # from C:/Ruby200/bin/irb:12:in `
' 11.11.class #=> Float class << 11.11 ; end #TypeError: can't define singleton # from (irb):6 # from C:/Ruby200/bin/irb:12:in `
' :name.class #=> Symbol class << :name ; end #TypeError: can't define singleton # from (irb):8 # from C:/Ruby200/bin/irb:12:in `
' `true` and `false` object also has fixed `object_id`. Why are then they allowed to have `singleton` methods on them? C:\>irb --simple-prompt DL is deprecated, please use Fiddle def true.test ; end #=> nil class << true def show p "How possible?" end end #=> nil true.show #"How possible?" #=> "How possible?" true.object_id #=> 2 true.object_id #=> 2 class << false def show p "How possible?" end end #=> nil false.show #"How possible?" #=> "How possible?" false.object_id #=> 0 false.object_id #=> 0 -- Posted via http://www.ruby-forum.com/.