From: Nathaniel Talbott Date: 2003-07-18T02:30:27+09:00 Subject: Re: What's the point? Jim Freeze [mailto:jim@freeze.org] wrote: > Hmm, I think 'x' has the same visibility as 'fred'. > > irb > irb(main):001:0> class C > irb(main):002:1> def fred > irb(main):003:2> def x > irb(main):004:3> puts "x" > irb(main):005:3> end > irb(main):006:2> end > irb(main):007:1> end > => nil > irb(main):008:0> c=C.new > => # > irb(main):009:0> c.fred > => nil > irb(main):010:0> c.x > x True, but it doesn't exist until fred is called: irb(main):001:0> class C irb(main):002:1> def fred irb(main):003:2> def x irb(main):004:3> puts "x" irb(main):005:3> end irb(main):006:2> end irb(main):007:1> end => nil irb(main):008:0> c = C.new => # irb(main):009:0> c.x NoMethodError: undefined method `x' for # from (irb):9 irb(main):010:0> c.fred => nil irb(main):011:0> c.x x => nil This means you could do something, er, interesting, like this: irb(main):001:0> class C irb(main):002:1> def initialize irb(main):003:2> def m irb(main):004:3> puts "m" irb(main):005:3> end irb(main):006:2> end irb(main):007:1> end => nil irb(main):008:0> C.instance_methods => [] irb(main):009:0> c = C.new => # irb(main):010:0> c.m m => nil Why would you want to do that? I'm not exactly sure... Nathaniel <:((><