Hi,

At Sat, 28 Aug 2004 19:08:11 +0900,
George Ogata wrote in [ruby-core:03328]:
> That is, #define_method makes private methods when sent from outside,
> but makes public methods when called on `self'.  Actually, it outputs
> the latter in irb, but not in naked ruby.

The scope in class block is public by default, but private in
top-level.  And #define_method defines the method with the
current visibility.

  class C; end
  public
  C.send(:define_method, :f){}
  p C.public_instance_methods.include?('f')

prints true.

I'm not sure this should be modified.

-- 
Nobu Nakada