<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<font size="-1"><font face="Arial">I've used Ruby for 3 years now and
this just confused me suddenly about private methods:<br>
<br>
class Foo<br>
  <br>
  def hello<br>
    self.p()<br>
  end<br>
  <br>
  private<br>
  <br>
    def p<br>
      puts 'world'<br>
    end<br>
end<br>
<br>
a = Foo.new<br>
a.hello<br>
<br>
This throws an exception which I'm not expecting!<br>
foo.rb:4:in `hello': private method `p' called for #<Foo:0x2911c>
(NoMethodError)<br>
    from foo.rb:15<br>
<br>
However if I remove the "self." so the "self." is implied it works! I'm
I going mad?<br>
<br>
</font></font><font size="-1"><font face="Arial">class Foo<br>
  <br>
  def hello<br>
    p()<br>
  end<br>
  <br>
  private<br>
  <br>
    def p<br>
      puts 'world'<br>
    end<br>
end<br>
<br>
a = Foo.new<br>
a.hello<br>
<br>
My version of ruby is: ruby 1.8.6 (2008-03-03 patchlevel 114)
[universal-darwin9.0]<br>
<br>
</font></font>
</body>
</html>