別のインスタンスのprotectedなメソッドの呼び出し

メモ。

class Foo
  protected
  def foo
    puts "foo"
  end

  public
  def bar
    Foo.new.foo
  end
end

# Foo.new.foo #=> protected method `foo' called for #<Foo:0xb77818bc> (NoMethodError)
Foo.new.bar #=> foo
class Foo
  protected
  def foo
    puts "foo"
  end
end

class Bar < Foo
  def bar
    Foo.new.foo
  end
end

# Foo.new.foo #=> protected method `foo' called for #<Foo:0x7ff51a0a7708> (NoMethodError)
Bar.new.bar #=> foo